Уважаемые читатели сайта Ajaxs.ru

Очень рад что вы зашли на мой сайт. Надеюсь, Вы сможете найти здесь для себя полезную информацию. Зарегистрировавшись на сайте вы получаете ряд преимуществ:
1. При комментировании Вам не нужно вводить имя и капчу с картинки
2. Вы можете получать уведомления на Email к интерисующим вас урокам
3. Вы можете редактировать свои комментарии

Вход на сайт


Забыли пароль



Восстановление пароля


Войти на сайт

Зарегистрироваться

Главная / Уроки по PHP / Просмотр урока

     

Создание сайтов


Вам нужен небольшой сайт или просто хотите доработать уже существующий? | Подробнее

Создание профиля зарегистрированного пользователя

Этот урок хотелось бы посвятить созданию личного профиля для зарегистрированных пользователей (дополнение к уроку Создание регистрации пользователей на сайте). Теперь пользователи смогут добавить свой аватар, изменить имя и фамилию, добавить место проживания и день рождения. Для этого в таблицу users добавим несколько полей:

Пример

Теперь создадим страницу профиля profile.php и добавим на странице index.php ссылку на нее

echo "<br><a href='profile.php?id=$id_user'>Мой профиль</a>";
Теперь код самой страницы profile.php
<?php
include_once("bd.php");
$resultat = mysql_query("SELECT * FROM users  WHERE id='$_GET[id]'");
$array = mysql_fetch_array($resultat);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01  Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">
<html> <head> <title>Профиль <?php echo $login; ?></title> </head> <body> <h4>Профиль <?php echo $login; ?></h4>   <?php if(isset($login) AND isset($password)){ if($array['avatar'] == ''){ $avatar = "noAvatar.jpg"; }else{ } echo "<img src='avatars/".$avatar."'> <br><br>"; echo "<strong>".$array['name_user']." ".$array['lastname']."</strong><br>"; switch ($array['birthdate_month']){//Превращаем номер месяца в название case "1" : $month = "Января"; break; case "2" : $month = "Февраля"; break; case "3" : $month = "Марта"; break; case "4" : $month = "Апреля"; break; case "5" : $month = "Мая"; break; case "6" : $month = "Июня"; break; case "7" : $month = "Июля"; break; case "8" : $month = "Августа"; break; case "9" : $month = "Сентября"; break; case "10" : $month = "Октября"; break; case "11" : $month = "Ноября"; break; case "12" : $month = "Декабря"; break; } echo "Дата регистрации: ".$array['reg_date']." <br>"; echo "Пол: ".$array['sex']." <br>"; echo "День рождения: ".$array['birthdate_day']." ".$month." ".$array['birthdate_year']." <br>"; echo "Страна: ".$array['country']." <br>"; echo "Город: ".$array['city']." <br>"; if($_GET['id'] == $id_user){//Редактировать профиль может только хозяин echo "<a href='edit.php'>Редактировать профиль</a>"; } }else{ print <<<HERE <table> Вход: <br> <br>   <form action="login.php" method="POST"> <tr> <td>Логин:</td> <td><input type="text" name="login" ></td> </tr>   <tr> <td>Пароль:</td> <td><input type="password" name="password" ></td> </tr>   <tr> <td colspan="2"><input type="submit" value="OK" name="submit" ></td> </tr> </form> </table> <a href="registration.php">Регистрация</a><a href="password.php">Восстановление пароля</a> HERE; } ?> </body> </html>

Естественно перейдя на эту страницу, мы увидим стандартную аватарку noAvatar.jpg и возможно имя и фамилию, если пользователь при регистрации указал их, остальные пункты будут пусты. В самом конце этой страницы есть ссылка на страницу редактирование профиля edit.php. Код этой страницы очень легок и состоит из форм для ввода данных. Из-за довольно большого объема приводить здесь полностью я его не буду, а приведу лишь часть, полностью взять его можно будет в исходных файлах.

<form action='save_edit.php' method='post'  enctype='multipart/form-data'>
<input type="file" name="fupload" size='8'>
<input type='submit' name='submit' value='Изменить'>
</form>

Все остальные формы аналогичны и будут ссылаться на один обработчик save_edit.php, который и будет вносить изменения в базу данных. Он также имеет достаточно большой код, и здесь я его тоже приводить не буду, а лишь немного расскажу, что в нем происходит (полностью код вы также с можете в исходных файлах). Первым делом мы создаем аватарку, если пользователь ее загрузил конечно, в противном случае оставляем стандартную. Если это так, то первым делом мы загружаем в папку avatars (кстати, создайте эту папку и поставьте ей права на запись 755) предварительно проверив с разрешенными расширениями. Затем создается новое изображение форматом зависящее от выбранного режима: $rezim = 1 создается квадратная картинка, $rezim = 2 картинка пропорциональная исходной. Также надо задать ширину создаваемого изображения $w и качество $quality. Созданное изображение мы сохраняем в формате jpg с помощью функции imagejpeg и генерируем для него случайное имя. Теперь нужно удалить старое изображение и обновить в базе данных на новое. На этом с изображениями все.

Все остальные пункты данного файла предназначены для обновления личных данных о пользователя и представляют собой простые запросы к базе данных для обновления полей. Предварительно перед обновлением проверяется существование входящих переменных и их безопасность с помощью stripslashes и htmlspecialchars. Если обновление происходит успешно, то мы сразу перенаправляем пользователя на страницу профиля.
Теперь сделаем так чтобы вошедший пользователь смог видеть всех остальных зарегистрированных пользователей. Для этого  создадим страницу user.php, которая в цикле будет выводить всех пользователей.

$resultat = mysql_query("SELECT * FROM users");
$array = mysql_fetch_array($resultat);
 
do{
if($array['avatar'] == ''){
$avatar = "noAvatar.jpg";
}else{
$avatar = $array['avatar'];
}
printf("$array[login]<br><a  href='profile.php?id=$array[id]'>
<img  src='avatars/".$avatar."'></a><br><br>");
}
while($array = mysql_fetch_array($resultat));

На этой странице будет отображаться аватары пользователей и их логин. При клике по картинке вы сможете просмотреть более подробную информацию о нем.

Автор: Евгений Бочкарев и Дмитрий Данилов Урок добавлен: 11 Марта 2011 в 16:10 Просмотров: 51139

Условия копирования материалов сайта

Все комментарии

Посмотреть предыдущие комментарии (94)

#95 федя 18-04-2014 в 14:59
почему исходники не скачиваются ?
#96 Юра 07-05-2014 в 15:28
У меня почему то не выводится надпись echo "<br><a href='profile.php?id=$id_user'>Мой профиль</a>";
Я не понимаю? вроде все сделал верно а тут такое…
#97 Дима 19-05-2014 в 14:31
Благодарю за очень полезную статью!!!
#98 Толик 26-07-2014 в 19:14
Здравствуйте! Подскажите пжл, а как сделать так чтобы при изменении профиля отправлять данные только одной кнопкой? А то неудобно как то каждые по одному отправлять. Заранее спасибо!
#99 ku228ku 06-11-2014 в 20:17
Здравствуйте как сделать чтобы при изменении профиля отправлять данные только одной кнопкой?
#100 Воа 31-05-2015 в 18:48
А где в исходнике файл bd.php
#101 MikeSeleznev 14-08-2015 в 09:25
Здравствуйте. Ссылка <a href='profile.php?id=$id_user'>Мой профиль</a> работает, но когда я её подключаю в меню сайта в список <ul> (разворачивающийся список реализованый через css) она перестает работать и запускает файл просто profile.php, не выбирая из базы нужный профиль. Что делать, помогите пожалуйста
#102 MikeSeleznev 15-08-2015 в 18:58
всё работает. мой список <ul> был подключен немного неправильно. из отдельно вынесенного php файлика.

#103 Алексей 03-03-2016 в 15:03
Добрый день. Как реализовать вывод возраст пользователя, то есть не дату рождения, а именно сколько лет.
#104 Роберт 13-03-2016 в 16:09
Не могу вывести id пользователя . При использовании

$result = mysql_query("SELECT id FROM users WHERE login='$login' AND password='$password'");
echo $result;

выдаёт: Resource id #6. Что я делаю не так ?
Добавить новый комментарий

Автор:

Текст сообщения:

Если в комментарии присутствует код, пожалуйста вставляете его между тегами [code][/code]

cap

Код с картинки:


Получать уведомления о новых комментариях по Email могут только зарегистрированные пользователи.

41001346159934
R314489888859
Уроки
Для начинающих
Интересное
Файлы
Полезное
Опрос

Много ли среди программистов девушек?

Последние комментарии
Ссылки