2016-06-11 2 views
0

У меня есть регистрационная форма, в которой пользователь вводит свое имя, адрес электронной почты, имя пользователя, пароль и т. Д. Вся эта информация собирается и хранится в моей базе данных. После того, как пользователь нажмет кнопку «Отправить», я хочу, чтобы они были перенаправлены на страницу своего профиля. URL-адрес в их профиле будет выглядеть примерно так: example.php? Id = 33, но как мне это сделать?Создание пользовательской страницы профиля пользователя при регистрации пользователя?

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

+1

_Questions, предлагающие нам рекомендовать или находить книгу, инструмент, библиотеку программного обеспечения, учебное пособие или другие ресурсы за пределами сайта, не относятся к теме для переполнения стека, поскольку они, как правило, привлекают упрямые ответы и спам. Вместо этого опишите проблему и то, что было сделано до сих пор, чтобы ее решить. – Chay22

+0

@ Chay22 Хорошо, я забыл, что я ничего не сказал об учебнике. Как я могу предложить решение для этого? – user2896120

+0

Почему вы не используете $ _SESSION для создания профиля пользователя? Он автоматически управляет всеми вашими пользователями, которые регистрируются. И я думаю, что это лучше, чем другие методы. –

ответ

0

Один из способов сделать редирект, чтобы использовать функцию заголовка PHP для отправки заголовка Расположение в браузере:

header('Location: '.$url); 

Где $ URL будет ваша страница профиля пользователя. Это будет работать, только если вы не отправили предыдущий результат после управления запросом на регистрацию.

+0

Итак, скажем, id = $ id, мы бы поставили заголовок ('Location:' www.example.php? Id = $ id ')? Будет ли это автоматически создавать новую пользовательскую страницу для пользователя? – user2896120

+0

@ user2896120 заголовок не создаст страницу для вас; вы должны иметь типичную страницу профиля, которая является _template_, и вы заполняете данные, имея динамический запрос по значению идентификатора – Matt

+0

. Думаю, я понимаю, о чем вы говорите. Так, например, для основного шаблона у меня будет оператор if/else, получающий идентификатор от url, а затем проверка, чтобы увидеть, находится ли он в базе данных. Если это не в базе данных, я говорю пользователю, что профиль не существует ... если это так, я покажу всю необходимую информацию для этого существующего идентификатора. Я прав? – user2896120

0

Сначала перенаправить пользователя на страницу своего профиля после того как они подписаться:

header('Location: page.php?id='.$ID);

А потом на page.php:

$result = mysqli_query($con, "SELECT * FROM users WHERE ID='".$_GET['id']"'"); 
$row = mysqli_fetch_array($result); 
echo $row['name']; 
echo $row['email']; 

Обратите внимание, что приведенный выше код является уязвимым для SQL Injection Attacks, которые могут привести к информация изменена или удалена из вашей базы данных.

Как можно prevent SQL Injection Attacks? С помощью ПДО с подготовленными операторами:

$stmt = $con->prepare("SELECT * FROM users WHERE ID=:id"); 
$stmt->bindParam(':id', $_GET['id']); 
$stmt->execute(); 
$row = $stmt->fetch(); 
echo $row['name']; 
echo $row['email'); 

Не забудьте заменить $con с переменной базой данных!

+0

Почему вы не готовите вариант 'mysqli'? – DarkBee

+0

@ DarkBee Что значит? –

+0

Пример 'mysqli' открыт для SQL-инъекции. Вы должны [подготовить] (http://php.net/manual/en/mysqli.prepare.php) SQL, как вы делали с примером «PDO» – DarkBee

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