<MyRusakov.ru />

WordPress 4. Пример создания блога

WordPress 4. Пример создания блога

Видеокурс "WordPress 4. Пример создания блога" научит Вас создавать любые сайты на самой популярной CMS - WordPress.

В курсе Вы узнаете абсолютно всё, что необходимо для успешного создания любых сайтов на WordPress, а также увидите пример создания реального блога.

После создания блога он размещается в Интернете, опять же на Ваших глазах. Таким образом, приобретя данный курс, Вы, не обладая никакими знаниями по созданию сайтов, уже сможете их делать, а также выкладывать в Интернет.

Курс очень простой и проходится за один вечер, а знания останутся с Вами навсегда.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Форум сайта MyRusakov.ru

Вывод когда зарегестрирован
18.12.2011 22:03:43 Вывод когда зарегестрирован Сообщение #1
Nikitoz01

Nikitoz01

Продвинутый

Продвинутый

Дата регистрации:
06.10.2011 20:01:29

Сообщений: 40

Михаил, подскажите пожалуйста как сделать вывод когда зарегестрировался пользователь напримере как у вас.
Профиль Ответить
18.12.2011 22:13:33 Вывод когда зарегестрирован Сообщение #2
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Допустим, авторизация у Вас - это запись в сессию логин и хеша паролей. Далее при выводе на страницу Вы ставите IF, где проверяете, если эти данные верны (то есть у пользователя в сессии логин и пароль соответствуют действительности), то выводите информацию для авторизованного пользователя, иначе не выводите.
Профиль Ответить
19.12.2011 14:31:29 Вывод когда зарегестрирован Сообщение #3
Nikitoz01

Nikitoz01

Продвинутый

Продвинутый

Дата регистрации:
06.10.2011 20:01:29

Сообщений: 40

Михаил я это уже сделал я не правильно наверное вам объяснил ситуацию я хочу вывести дату регистрации на сайте.Подскажите как это реализовать.
Профиль Ответить
19.12.2011 17:18:24 Вывод когда зарегестрирован Сообщение #4
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Добавить новое поле в таблицу с пользователями. В это поле записывать дату регистрации, можно прямо значение функции time().
Профиль Ответить
19.12.2011 21:44:15 Вывод когда зарегестрирован Сообщение #5
Nikitoz01

Nikitoz01

Продвинутый

Продвинутый

Дата регистрации:
06.10.2011 20:01:29

Сообщений: 40

Михаил добавил в таблицу users поле date но теперь возник вопрос писать нужно в скрипте обработчике переменную date и записывать в базу данных?
если нет поправте меня.
<?php
$date = time();
//в этой части идёт обработка полученных из reg.php
include ("bd.php";// подключени к базе данных

// проверка на существование пользователя с таким же логином
$result = mysql_query("SELECT id FROM users WHERE login='$login'",$db);
$myrow = mysql_fetch_array($result);
if (!empty($myrow['id'])) {

exit ("Извините, введённый вами логин уже зарегистрирован. Введите другой логин."; //останавливаем выполнение сценариев

}

// если такого нет, то сохраняем данные
$result2 = mysql_query ("INSERT INTO users (date) VALUES('$date')";
// Проверяем, есть ли ошибки
if ($result2=='TRUE')
{
echo "Вы успешно зарегистрированы! Теперь вы можете зайти на сайт. <a href='index.php'>Главная страница</a>";
}

else {
exit ("Ошибка! Вы не зарегистрированы."; //останавливаем выполнение сценариев
?>
Профиль Ответить
19.12.2011 21:46:43 Вывод когда зарегестрирован Сообщение #6
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Да, можно и через PHP добавить дату регистрации.
Профиль Ответить
19.12.2011 23:00:50 Вывод когда зарегестрирован Сообщение #7
Nikitoz01

Nikitoz01

Продвинутый

Продвинутый

Дата регистрации:
06.10.2011 20:01:29

Сообщений: 40

Михаил сделал всё но выводит время только вот так 0000-00-00
не знаю из-за чего это
вот код обработчика:
<?php
$date = time();
if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} } //заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную
if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
//заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную
if (isset($_POST['code'])) { $code = $_POST['code']; if ($code == '') { unset($code);} } //заносим введенный пользователем защитный код в переменную $code, если он пустой, то уничтожаем переменную
if (isset($_POST['email'])) { $email = $_POST['email']; if ($email == '') { unset($email);} }
if (isset($_POST['infa'])) { $infa = $_POST['infa']; if ($infa == '') { unset($infa);} }
if (empty($login) or empty($password)or empty($code) or empty($email) or empty($infa)) //если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт
{
exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!"; //останавливаем выполнение сценариев

}



function generate_code() //запускаем функцию, генерирующую код
{

$hours = date("H"; // час
$minuts = substr(date("H", 0 , 1);// минута
$mouns = date("m"; // месяц
$year_day = date("z"; // день в году

$str = $hours . $minuts . $mouns . $year_day; //создаем строку
$str = md5(md5($str)); //дважды шифруем в md5
$str = strrev($str);// реверс строки
$str = substr($str, 3, 6); // извлекаем 6 символов, начиная с 3
// Вам конечно же можно постваить другие значения, так как, если взломщики узнают, каким именно способом это все генерируется, то в защите не будет смысла.


$array_mix = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
srand ((float)microtime()*1000000);
shuffle ($array_mix);
//Тщательно перемешиваем, соль, сахар по вкусу!!!
return implode("", $array_mix);
}

function chec_code($code) //проверяем код
{
$code = trim($code);//удаляем пробелы

$array_mix = preg_split ('//', generate_code(), -1, PREG_SPLIT_NO_EMPTY);
$m_code = preg_split ('//', $code, -1, PREG_SPLIT_NO_EMPTY);

$result = array_intersect ($array_mix, $m_code);
if (strlen(generate_code())!=strlen($code))
{
return FALSE;
}
if (sizeof($result) == sizeof($array_mix))
{
return TRUE;
}
else
{
return FALSE;
}
}

// после сравнения проверяем, пускать ли пользователя дальше или, он сделал ошибку, и остановить скрипт
if (!chec_code($_POST['code']))
{
exit ("Вы ввели неверно код с картинки."; //останавливаем выполнение сценариев
}


//если логин и пароль введены,то обрабатываем их, чтобы теги и скрипты не работали, мало ли что люди могут ввести
$login = stripslashes($login);
$login = htmlspecialchars($login);

$password = stripslashes($password);
$password = htmlspecialchars($password);
$email = stripslashes($email);
$infa = stripslashes($infa);
//удаляем лишние пробелы
$login = trim($login);
$password = trim($password);
$email = trim($email);

// дописываем новое********************************************

//добавляем проверку на длину логина и пароля
if (strlen($login) < 3 or strlen($login) > 15) {

exit ("Логин должен состоять не менее чем из 3 символов и не более чем из 15."; //останавливаем выполнение сценариев

}
if (strlen($password) < 3 or strlen($password) > 15) {

exit ("Пароль должен состоять не менее чем из 3 символов и не более чем из 15."; //останавливаем выполнение сценариев

}

if (empty($_FILES['fupload']['name']))
{
//если переменной не существует (пользователь не отправил изображение),то присваиваем ему заранее приготовленную картинку с надписью "нет аватара"
$avatar = "avatars/net-avatara.jpg"; //можете нарисовать net-avatara.jpg или взять в исходниках
}

else
{
//иначе - загружаем изображение пользователя
$path_to_90_directory = 'avatars/';//папка, куда будет загружаться начальная картинка и ее сжатая копия


if(preg_match('/[.](JPG)|(jpg)|(gif)|(GIF)|(png)|(PNG)$/',$_FILES['fupload']['name']))//проверка формата исходного изображения
{

$filename = $_FILES['fupload']['name'];
$source = $_FILES['fupload']['tmp_name'];
$target = $path_to_90_directory . $filename;
move_uploaded_file($source, $target);//загрузка оригинала в папку $path_to_90_directory

if(preg_match('/[.](GIF)|(gif)$/', $filename)) {
$im = imagecreatefromgif($path_to_90_directory.$filename) ; //если оригинал был в формате gif, то создаем изображение в этом же формате. Необходимо для последующего сжатия
}
if(preg_match('/[.](PNG)|(png)$/', $filename)) {
$im = imagecreatefrompng($path_to_90_directory.$filename) ;//если оригинал был в формате png, то создаем изображение в этом же формате. Необходимо для последующего сжатия
}

if(preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)$/', $filename)) {
$im = imagecreatefromjpeg($path_to_90_directory.$filename); //если оригинал был в формате jpg, то создаем изображение в этом же формате. Необходимо для последующего сжатия
}

//СОЗДАНИЕ КВАДРАТНОГО ИЗОБРАЖЕНИЯ И ЕГО ПОСЛЕДУЮЩЕЕ СЖАТИЕ ВЗЯТО С САЙТА www.codenet.ru

// Создание квадрата 90x90
// dest - результирующее изображение
// w - ширина изображения
// ratio - коэффициент пропорциональности

$w = 100; // квадратная 90x90. Можно поставить и другой размер.

// создаём исходное изображение на основе
// исходного файла и определяем его размеры
$w_src = imagesx($im); //вычисляем ширину
$h_src = imagesy($im); //вычисляем высоту изображения

// создаём пустую квадратную картинку
// важно именно truecolor!, иначе будем иметь 8-битный результат
$dest = imagecreatetruecolor($w,$w);

// вырезаем квадратную серединку по x, если фото горизонтальное
if ($w_src>$h_src)
imagecopyresampled($dest, $im, 0, 0,
round((max($w_src,$h_src)-min($w_src,$h_src))/2),
0, $w, $w, min($w_src,$h_src), min($w_src,$h_src));

// вырезаем квадратную верхушку по y,
// если фото вертикальное (хотя можно тоже серединку)
if ($w_src<$h_src)
imagecopyresampled($dest, $im, 0, 0, 0, 0, $w, $w,
min($w_src,$h_src), min($w_src,$h_src));

// квадратная картинка масштабируется без вырезок
if ($w_src==$h_src)
imagecopyresampled($dest, $im, 0, 0, 0, 0, $w, $w, $w_src, $w_src);


$dates=time(); //вычисляем время в настоящий момент.
imagejpeg($dest, $path_to_90_directory.$dates.".jpg";//сохраняем изображение формата jpg в нужную папку, именем будет текущее время. Сделано, чтобы у аватаров не было одинаковых имен.

//почему именно jpg? Он занимает очень мало места + уничтожается анимирование gif изображения, которое отвлекает пользователя. Не очень приятно читать его комментарий, когда краем глаза замечаешь какое-то движение.

$avatar = $path_to_90_directory.$dates.".jpg";//заносим в переменную путь до аватара.

$delfull = $path_to_90_directory.$filename;
unlink ($delfull);//удаляем оригинал загруженного изображения, он нам больше не нужен. Задачей было - получить миниатюру.
}
else
{
//в случае несоответствия формата, выдаем соответствующее сообщение

exit ("Аватар должен быть в формате <strong>JPG,GIF или PNG</strong>"; //останавливаем выполнение сценариев

}
//конец процесса загрузки и присвоения переменной $avatar адреса загруженной авы
}

$password = md5($password);//шифруем пароль

$password = strrev($password);// для надежности добавим реверс

$password = $password."b3p6f";
//можно добавить несколько своих символов по вкусу, например, вписав "b3p6f". Если этот пароль будут взламывать метадом подбора у себя на сервере этой же md5,то явно ничего хорошего не выйдет. Но советую ставить другие символы, можно в начале строки или в середине.

//При этом необходимо увеличить длину поля password в базе. Зашифрованный пароль может получится гораздо большего размера.


// дописали новое********************************************

// Далее идет все из первой части статьи,но необходимо дописать изменение в запрос к базе.

// подключаемся к базе
include ("bd.php";// подключение к базе данных

// проверка на существование пользователя с таким же логином
$result = mysql_query("SELECT id FROM users WHERE login='$login'",$db);
$myrow = mysql_fetch_array($result);
if (!empty($myrow['id'])) {

exit ("Извините, введённый вами логин уже зарегистрирован. Введите другой логин."; //останавливаем выполнение сценариев

}

// если такого нет, то сохраняем данные
$result2 = mysql_query ("INSERT INTO users (login,password,avatar,email,infa,date) VALUES('$login','$password','$avatar','$email','$infa','$date')";
// Проверяем, есть ли ошибки
if ($result2=='TRUE')
{
echo "Вы успешно зарегистрированы! Теперь вы можете зайти на сайт. <a href='index.php'>Главная страница</a>";
}

else {
exit ("Ошибка! Вы не зарегистрированы."; //останавливаем выполнение сценариев

}
?>

Страничка пользователя
<?php
// вся процедура работает на сессиях. Именно в ней хранятся данные пользователя, пока он находится на сайте. Очень важно запустить их в самом начале странички!!!
session_start();
include ("bd.php";// файл bd.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь
if (isset($_GET['id'])) {$id =$_GET['id']; } //id "хозяина" странички
else
{ exit("Вы зашил на страницу без параметра!";} //если не указали id, то выдаем ошибку
if (!preg_match("|^[\d]+$|", $id)) {
exit("<p>Неверный формат запроса! Проверьте URL</p>";//если id не число, то выдаем ошибку
}

if (!empty($_SESSION['login']) and !empty($_SESSION['password']))
{
//если существует логин и пароль в сессиях, то проверяем, действительны ли они
$login = $_SESSION['login'];
$password = $_SESSION['password'];
$result2 = mysql_query("SELECT id FROM users WHERE login='$login' AND password='$password'",$db);
$myrow2 = mysql_fetch_array($result2);
if (empty($myrow2['id']))
{
//Если не действительны (может мы удалили этого пользователя из базы за плохое поведение)
exit("Вход на эту страницу разрешен только зарегистрированным пользователям!";
}
}
else {
//Проверяем, зарегистрирован ли вошедший
exit("Вход на эту страницу разрешен только зарегистрированным пользователям!"; }
$result = mysql_query("SELECT * FROM users WHERE id='$id'",$db);
$myrow = mysql_fetch_array($result);//Извлекаем все данные пользователя с данным id
if (empty($myrow['login'])) { exit("Пользователя не существует! Возможно он был удален.";} //если такого не существует
?>
<?php $result2 = mysql_query("SELECT id FROM users WHERE email='$email' AND infa='$infa'",$db); //вытаскиваем емаил и информацию о пользователе из бд
$myrow2 = mysql_fetch_array($result2); ?>
<?php
$result2 = mysql_query ("SELECT id FROM users WHERE date='$date'",$db); // Вытаскиваем время регистрации из бд
?>
<html>
<head>
<title><?php echo $myrow['login']; ?></title>
<style type="text/css">
<!--
a:link {
color: #486215;
text-decoration: none;
}
a:visited {
text-decoration: none;
color: #486215;
}
a:hover {
text-decoration: underline;
color: #486215;
}
a:active {
text-decoration: none;
color: #486215;
}
-->
</style>
</head>
<body>
<h2>Пользователь "<?php echo $myrow['login']; ?>"</h2>
<b>Зарегестрирован <?php echo $myrow['date']; ?></b><br>
<?php
print <<<HERE
|<a href='page.php?id=$myrow2[id]'>Моя страница</a>|<a href='index.php'>Главная страница</a>|<a href='all_users.php'>Список пользователей</a>|<a href='exit.php'>Выход</a><br><br>
<b>Ваш e-mail $myrow[email] </b><br>
<b>ваша информация<br> $myrow[infa] </b><br>
HERE;
//выше вывели меню
if ($myrow['login'] == $login) {
//Если страничка принадлежит вошедшему, то предлагаем изменить данные и выводим личные сообщения

print <<<HERE

<form action='update_user.php' method='post'>
<b>ваша информация<br><textarea cols="25" rows="5" name="infa"> $myrow[infa] </textarea></b><br>
<input type="submit" name="submit" value="изменить"><br>
Ваш логин <strong>$myrow[login]</strong>. Изменить логин:<br>
<input name='login' type='text'>
<input type='submit' name='submit' value='изменить'>
</form>
<br>

<form action='update_user.php' method='post'>
Изменить пароль:<br>
<input name='password' type='password'>
<input type='submit' name='submit' value='изменить'>
</form>
<br>

<form action='update_user.php' method='post' enctype='multipart/form-data'>
Ваш аватар:<br>
<img alt='аватар' src='$myrow[avatar]' align="left"><br><br><br><br><br><br>
Изображение должно быть формата jpg, gif или png. Изменить аватар:<br>
<input type="FILE" name="fupload">
<input type='submit' name='submit' value='изменить'>
</form>
<br>

<h2>Личные сообщения:</h2>

HERE;

$tmp = mysql_query("SELECT * FROM messages WHERE poluchatel='$login' ORDER BY id DESC",$db);
$messages = mysql_fetch_array($tmp);//извлекаем сообщения пользователя, сортируем по идентификатору в обратном порядке, т.е. самые новые сообщения будут вверху

if (!empty($messages['id'])) {
do //выводим все сообщения в цикле
{
$author = $messages['author'];
$result4 = mysql_query("SELECT avatar,id FROM users WHERE login='$author'",$db); //извлекаем аватар автора
$myrow4 = mysql_fetch_array($result4);

if (!empty($myrow4['avatar'])) {//если такового нет, то выводим стандартный(может этого пользователя уже давно удалили)
$avatar = $myrow4['avatar'];
}
else {$avatar = "avatars/net-avatara.jpg";}

printf("
<table>
<tr>
<td><a href='page.php?id=%s'><img alt='аватар' src='%s'></a></td>

<td>Автор: <a href='page.php?id=%s'>%s</a><br>
Дата: %s<br>
Сообщение:<br>
%s<br>
<a href='drop_post.php?id=%s'>Удалить</a>

</td>
</tr>
</table><br>
",$myrow4['id'],$avatar, $myrow4['id'],$author,$messages['date'],$messages['text'],$messages['id']);
//выводим само сообщение
}
while($messages = mysql_fetch_array($tmp));

}
else {
//если сообщений не найдено
echo "Сообщений нет";
}

}

else
{
//если страничка чужая, то выводим только некторые данные и форму для отправки личных сообщений

print <<<HERE
<img alt='аватар' src='$myrow[avatar]'><br>
<form action='post.php' method='post'>
<br>
<h2>Отправить Ваше сообщение:</h2>
<textarea cols='43' rows='4' name='text'></textarea><br>
<input type='hidden' name='poluchatel' value='$myrow[login]'>
<input type='hidden' name='id' value='$myrow[id]'>
<input type='submit' name='submit' value='Отправить'>
</form>
HERE;
}

?>
</body>
</html>

я думаю это из-за $dates=time(); помогите уж очень хочется видеть дату регистрации
если да то на что можно заменить time();
$date=time();
Профиль Ответить
19.12.2011 23:05:01 Вывод когда зарегестрирован Сообщение #8
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Вы какой тип в базе данных взяли? Возьмите int(11).
Профиль Ответить
20.12.2011 15:25:06 Вывод когда зарегестрирован Сообщение #9
Nikitoz01

Nikitoz01

Продвинутый

Продвинутый

Дата регистрации:
06.10.2011 20:01:29

Сообщений: 40

Михаил спасибо выводит время только как сделать или на что заменить time(); чтоб выводил допустим дату как у вас на сайте а то вывел в таком формате 1324380134
Профиль Ответить
20.12.2011 15:26:59 Вывод когда зарегестрирован Сообщение #10
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Функция date("Y-m-d H:i:s", time()); - вот это выведет дату в любом формате. Свой формат я уже поставил в функции.
Профиль Ответить