Как создать определенный URL для пользователя при регистрации? - PullRequest
2 голосов
/ 22 июля 2010

Как я могу сделать это в MySQL?

Когда пользователь создает учетную запись на веб-сайте, я хочу, чтобы для него был создан URL профиля.Например: http://www.domain.com/profile.php?id=111101, URL следующего пользователя может быть: http://www.domain.com/profile.php?id=111102 Нужно ли устанавливать автоматическое увеличение?Некоторые поля, которые я сохраняю при регистрации пользователя:

$sql="INSERT INTO Members (fldFullName, fldEmail, Password, Gender, DOB)
VALUES
('$fname','$email','$pass', '$gender', '$date')";

На данный момент поле для URL: ProfileURL
Спасибо.

Ответы [ 2 ]

1 голос
/ 22 июля 2010

Вы можете создать столбец ID, который будет автоматически увеличиваться.Однако, если вы передадите это в свой URL, вам нужно быть очень осторожным с тем, как вы обрабатываете запрос на заполнение указанного профиля пользователя (например, избегайте этого)

SELECT * FROM Members WHERE ID = '.$id.';

Таким образом, вы можете сделать $ sql = "INSERT INTOЧлены (ID, fldFullName, fldEmail, пароль, пол, DOB) ЗНАЧЕНИЯ ('', '$ fname', '$ email', '$ pass', '$ пол', '$ date') "

Остерегайтесь пользовательского ввода, хотя

0 голосов
/ 22 июля 2010

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

Далее, когда вы создаете файл profile.php, выполните проверку вверху страницы на наличие идентификатора в массиве $ _GET, если он существует, экранируйте его, чтобы предотвратить инъекцию sql, и выполните запрос mysql для извлеките необходимую информацию из записи этого конкретного пользователя. Как то так:

if(isset($_GET['id'])) { //check if id exists in $_GET
    $id = mysql_real_escape_string($_GET['id']); //prevent sql injection
    $resc = mysql_query("SELECT fldFullName, fldEmail, Password, Gender, DOB FROM Members WHERE id='$id' LIMIT 1"); //query the db for record
    if(mysql_num_rows($resc) == 1) { //make sure the user exists
        $user = mysql_fetch_assoc($resc); //convert mysql resource into array that can be used throughout your script
    } else {
        echo "no user with that id";
} else {
    echo "no id provided.";
}

Теперь вся информация вашего пользователя хранится в массиве $user для использования по всей вашей странице.

Тогда, если вы хотите поработать с этим и улучшить результаты SEO, загляните в модуль apache mod_rewrite, который позволит вам переписывать URL, чтобы вы могли иметь URL, похожие на /profile/someusername а не /profile.php?id=1234. Намного лучше!

Вот несколько ресурсов для начала работы с mod_rewrite:

  1. http://articles.sitepoint.com/article/guide-url-rewriting
  2. http://www.workingwith.me.uk/articles/scripting/mod_rewrite
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...