Вход в PHP и получение информации о пользователе

Вопрос: Как я могу получить информацию о пользователе, когда пользователь успешно зарегистрировался?

Вот мой код login.php

 <? PHP
 if ($ _ SERVER ['REQUEST_METHOD'] == 'POST') {
   $ username = $ _POST ['username'];
   $ password = $ _POST ['password'];
   // mysql connect здесь ...
   // mysql запрос здесь ....
   $ sql = "SELECT * FROM user_accounts WHERE username = '$ username' и password = '$ password'";
   $ result = mysql_query ($ sql);
   $ count = mysql_num_rows ($ result);

   if ($ count == 1) {
     session_register (имя пользователя);
     session_register (пароль);
     header ('location: index.php');
   }
   else {
     $ error = «Неверное имя пользователя или пароль, пожалуйста, попробуйте снова»;
   }

 }
 ?>
 <form method = "post" action = "<? php echo $ _SERVER ['PHP_SELF'];?>">
 <? = $ Ошибка =?>
 Имя пользователя: <input type = "text" name = "username">
 Пароль: <input type = "password" name = "password">
 <input type = "submit" />
 </ Форма>

и вот мой индекс index.php

 <?
   session_start ();
   если (! session_is_registered (имя пользователя)) {
   заголовок ( "место: login.php");
   }
 $ username = session_is_registered (имя пользователя);
   $ password = session_is_registered (пароль);
 echo $ имя пользователя;
   echo $ password;
   ?>

Пример. Это информация о базе данных.

 Идентификатор пользователя -> 001
 Имя пользователя -> admin
 Пароль -> admin

Когда я эхо $ username и $ password получаю результат для username = 1 и для пароля = 1. Я хотел, чтобы результат был username = admin и password = admin.

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

Большое вам спасибо за ваши ответы. знак равно

Related of "Вход в PHP и получение информации о пользователе"

У вас уже есть имя пользователя и пароль из массива POST, вы можете хранить их в сеансе следующим образом:

session_start(); // this will go on top of the page ......... if($count == 1) { session_register(username); session_register(password); $_SESSION['username'] = $_POST['username']; // store username $_SESSION['password'] = $_POST['password']; // store password header('location: index.php'); } else { $error = "Invalid Username or Password Please Try Again"; } 

Позже вы можете получить их как:

 echo $_SESSION['username']; echo $_SESSION['password']; 

Обратите внимание, что вы должны уничтожить их в файле завершения сеанса.

Примечание 2 session_register был DEPRECATED с PHP 5.3.0. Просто используйте $_SESSION массив для хранения ваших значений.

Вы используете старые функции сеанса, и вы используете их неправильно. Позвольте мне показать вам, как это сделать только с массивом $ _SESSION. Обратите внимание, что session_register () и session_is_registered () являются дефрагментированными функциями PHP 5.3, а это значит, что они могут быть удалены позже. Также вы всегда должны избегать ввода, поступающего от пользователя, когда вы хотите использовать его в запросах. Возможно, вы захотите использовать подготовленные операторы, PDO или mysqli.

 <?php // login.php session_start(); if($_SERVER['REQUEST_METHOD'] == 'POST') { // mysql connect function here.... (moved up here) $username = mysql_real_escape_string($_POST['username']); $password = mysql_real_escape_string($_POST['password']); $sql = "SELECT * FROM user_accounts WHERE username = '$username' AND password = '$password'"; $result = mysql_query($sql) or die( "MySQL Error: ".mysql_error() ); $user = mysql_fetch_assoc($result); if($user !== false) { $_SESSION['username'] = $user['username']; $_SESSION['password'] = $user['password']; header('Location: index.php'); } else { $error = "Invalid Username or Password Please Try Again"; } } ?> <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> <?=$error=?> Username : <input type="text" name="username"> Password : <input type="password" name="password"> <input type="submit" /> </form> 

Обратите внимание на mysql_real_escape_string() и использование mysql_real_escape_string() $_SESSION в приведенном выше примере.

 <?php // index.php session_start(); if(!isset($_SESSION['username'])) { header("Location: login.php"); } $username = $_SESSION['username']; $password = $_SESSION['password']; echo $username; echo $password; ?> 

Вы можете использовать isset() вместо session_is_registered() чтобы проверить, установлено ли значение сеанса или нет.

session_is_registered является логическим, поэтому он будет проверять, не установлен ли он.

Вам нужно было бы $username = $_SESSION['username']; а также

 $password= $_SESSION['password']; 

Попытайтесь не использовать имя пользователя и пароль как имена сеансов.

Я обнаружил, что это уже mysql и хранит имя пользователя и пароль mysql в сеансах

Изменить :

Также session_register устарел