2009-09-29 3 views
0

Я уже написал скрипт для входа и регистрации. Пользователь может войти в свою учетную запись, редактировать свои данные и т. Д. Детали хранятся в таблице пользователей, которая имеет много разных свойств данных, связанных с пользователем.PHP Ссылки на профили пользователей после членства

Мне было интересно, как мне сделать так, чтобы они могли просматривать их профиль, и он показывает все данные, которые они вводят. Например, если кто-то с именем пользователя «bob» зарегистрировал и изменил свои данные, он может щелкнуть ссылку «просмотреть профиль», и он может видеть его публичный профиль пользователя. Я знаю, как извлекать записи и отображать данные, но моя проблема заключается в том, что я не понимаю, как создать профиль для моих пользователей, который можно увидеть другими и/или самими. Я хочу, чтобы эти страницы были динамически созданы для каждого пользователя.

Кроме того, если бы у меня была страница, в которой были получены все недавно зарегистрированные члены, она могла ссылаться на их страницы профиля.

Это очень распространенная вещь на сайтах, и я знаю, что есть CMS, которые уже делают это, как drupal, но я хочу сам написать небольшое управляемое решение. Благодаря!

ответ

1

Сделайте свою страницу 'profile.php'

1) ПАРОЛЯ на эту страницу с помощью Get String. Ссылка будет: ....../profile.php? Id = 3 Чтобы узнать больше о методе получения и отправки формы. И как PHP обрабатывает его ($ _POST & $ _GET) google it.

2) В этой странице «profile.php»

$id=isset($_GET['id'])?$_GET['id']:-1; 
settype($id , "int"); 
if($id<1) 
{ 
    //wrong id, may be redirect 
    header('Location : another-page.php'); 
    die(); 
} 
// use this $id to get information from db and display the information 

3) Если вы хотите динамически сказать человеку, что его профиль ссылка: Предположив у вас есть $ идентификатор этого человека: $ link = '...../profile.php? id ='. $ ID;

Пожалуйста, сначала изучите базовый php. Как файлы cookie, get, post, functions, db handling, сеансы, обработка строк, обработка массивов, глобальные переменные.

0

Ну, просто создайте страницу, скажем userprofile.php, которая получает параметр с именем id (я предполагаю, что у ваших пользователей есть id .. иначе есть имя пользователя). Если страница вызывается без параметра, страница будет использовать текущего пользователя сеанса в качестве идентификатора профиля и сделает все поля редактируемыми, в противном случае, если он передан с именем «userprofile.php? Id = 123», тогда он отобразит нередактируемая версия для других участников. Вы также можете сделать чек, чтобы узнать, совпадает ли пользователь сеанса с тем, чей профиль запрашивается, и в этом случае вы хотите сделать страницу редактируемой.

+0

Я получаю первую часть о создании страницы. У меня есть тот, который динамически размещает информацию в базе данных на основе идентификатора пользователя, и я могу получить информацию таким же образом. Однако я не слишком хорошо разбираюсь в том, как передать страницу так, как вы упомянули. Я догадываюсь, что «123» - это идентификатор пользователя, но я не уверен, как вы могли бы это сделать. Например, если я извлекаю пользователей из базы данных, как бы я гиперссылки их имени автоматически с этим синтаксисом и их идентификатором. Кроме того, это безопасный способ обойти это? – 2009-09-29 16:35:33

0

Вы ищете что-то вроде этого (объединение того, что было выложено и некоторые дополнительные вещи):

$SQL = "SELECT ID, First_Name, Last_Name, User_Name FROM Users" . 
     "WHERE ID = " . $_GET['id']; 

$con = mysql_connect('server', 'user', 'password'); 

$db = mysql_select_db('database_name', $con); 

$result = mysql_query($SQL); 

while ($db_field = mysql_fetch_assoc($result)) { 
     print "User ID: " . $db_field['ID'] . "<BR>"; 
     print "User Name: " . $db_field['User_Name'] . "<BR>"; 
     print "First Name: " . $db_field['First_Name'] . "<BR>"; 
     print "Last Name: " . $db_field['Last_Name'] . "<BR>"; 
} 

Если вы хотите создать ссылку на свою страницу пользователя, что-то вроде этого:

print "<a href=user_profile.php?ID=" . $db_field['ID'] . ">" . $db_field['User_name'] . "</a>"; 

Это идентификатор, который вы передаете из ссылки на странице, например http://servername/page/list.php?ID=123, а затем приведенный выше код возвращает всю необходимую информацию (через инструкцию SELECT) в базе данных. Тогда вы просто заложите информацию, как хотите.

+0

SQL-инъекция неминуема. У вас нет шансов выжить. Сделайте свое время. –

+0

Я не беспокоюсь о SQL-инъекциях здесь. Я пытаюсь передать идею парню о том, как что-то сделать. – 2009-10-02 20:00:43

Смежные вопросы