Подумайте, может ли кто-нибудь помочь мне. Я пытаюсь установить переменную сеанса из таблицы базы данных. По сути, что мне нужно сделать, это когда кто-то входит в систему, он берет значение из столбца «user_group» таблицы пользователя для пользователя, который вошел в систему и назначил его переменной сеанса. На данный момент он просто передает имя пользователя, которое вручную вводится пользователем при входе в систему.Установка переменной сеанса
Это мой текущий код для login.php. Я пробовал разные вещи и смотрел здесь для советов, но не имел никакой удачи.
<?php
session_start();
$host = "localhost";
$user = "root";
$pass = "";
$db = "california";
mysql_connect($host, $user, $pass);
mysql_select_db($db);
\t $username = $_POST['name'];
\t $password = md5 ($_POST['password']);
\t // check to make sure both fields are entered
if ($username == '' || $password == '')
{
header("Location:login-fail.htm");
}
else
\t $sql = "SELECT * FROM users WHERE name='".$username."' AND password='".$password.
\t "' LIMIT 1";
\t $res = mysql_query($sql);
\t if (mysql_num_rows($res) == 1) {
\t $_SESSION['logged_in']= $username;
\t \t header("Location:login-success.htm");
\t \t exit();
\t } else {
\t \t header("Location:login-fail.htm");
\t \t exit();
\t }
?>
Назначить значение из '$ res' вместо' $ username' – Blinkydamo
Кроме того, вы должны использовать что-то вроде функций 'mysqli' вместо' mysql'. – SaidbakR
что sємsєм сказал, плюс: у вас есть дыры в безопасности. ваш код широко открыт для SQL-инъекций - представьте, что кто-то разместил имя пользователя '' DROP TABLE users; - ', вам следует избегать вашего параметра или даже лучше: использовать параметризованные запросы - и' md5' не является безопасным хэшем в течение некоторого времени, он может быть взломан - PHP предоставляет функции 'password_hash()' для создания безопасных хэшей и 'password_verify()' для проверки паролей на эти хэши. –