Дополнительные переменные из сессии

199
09 июня 2017, 12:18

Собственно код

 <?php
if(isset($_SESSION["session_username"])){
// echo "Session is set"; // for testing purposes
}
if(isset($_POST["login"])){
if(!empty($_POST['username']) && !empty($_POST['password'])) {
    $username=$_POST['username'];
    $password=$_POST['password'];
    $query =mysqli_query($con,"SELECT * FROM doctors WHERE username='".$username."' AND password='".$password."'");
    $numrows=mysqli_num_rows($query);
    if($numrows!=0)
    {
    while($row=mysqli_fetch_assoc($query))
    {
    $dbusername=$row['username'];
    $dbpassword=$row['password'];
    }
    if($username == $dbusername && $password == $dbpassword)
    {
    $_SESSION['session_username']=$username;
    /* Redirect browser */
echo "<html><head><META HTTP-EQUIV='Refresh' content ='1; URL=index.php'></head></html>";  }
    } else {
 $message =  "Неправильный логин или пароль. Попробуйте ещё раз";
    }
} else {
    $message = "Все поля необходимо заполнить";
}
}
?>

Как видите этот код берет необходимые поля из таблицы doctors сравнивает с полями логин и пароль если всё верно пропускает дальше. Тут в $_SESSION['session_username'] записывается только одна переменная т е переменная содержащая данные столбца username. Как сделать чтоб например в $_SESSION['session_uid'] записывалась переменная с данными столбца uid которая есть в таблице doctors

Answer 1
 <?php
session_start();
if(isset($_SESSION['uid'])) echo $_SESSION['uid'];//Проверка в сессии
$db_config = require 'db.php';//подключаем конфиг
if(isset($_POST['login']))
{
    //Если оба поля заполнены
    if(!empty($_POST['username']) && !empty($_POST['password'])) 
    {
        //Получаем данные с формы
        $username = $_POST['username'];
        $password = $_POST['password'];
        //Подключение к БД
        $con = mysqli_connect($db_config['host'], $db_config['user'], $db_config['password'], $db_config['dbname']); 
        //Запрос максимум одной записи
        $query = mysqli_query($con,"SELECT * FROM users WHERE username='".$username."' AND password='".$password."' limit 1");
        //Если найдено получаем строку с БД
        $row = mysqli_fetch_assoc($query);
        $dbusername = $row['username'];
        $dbpassword = $row['password'];
        //Проверка данных с формы
        if($username == $dbusername && $password == $dbpassword)
        {
            $_SESSION['session_username'] = $username;
            $_SESSION['uid'] = $row['id'];
            //Делайте редирект с помощью header, можно прописать и code response для браузера
            header('Location: http://google.ru');
        }
        //Если данные не верны
        else 
        {
            $message =  "Неправильный логин или пароль. Попробуйте ещё раз";
            echo $message;//Не забываем отобразить сообщение
        }
    } 
    //Если форма отправлена, но какое-то из полей пустое
    else 
    {
        $message = "Все поля необходимо заполнить";
        echo $message;
    }
}
?>
READ ALSO
Выполнение задания через n времени

Выполнение задания через n времени

Всем приветПишу небольшой сайт и так получилось что мне нужно сделать так

209
Возможные уязвимости сайта

Возможные уязвимости сайта

Здравствуйте! Хотел узнать экспертное мнение, какие уязвимости могут быть у сайта, который полностью построен на ajax запросах методом POST(что-то...

174
Пустые поля из формы

Пустые поля из формы

Ситуация такаяЕсть многостраничная форма, еле как в интернете нашла

188
&ldquo;new.domain.com&rdquo; is unknown host

“new.domain.com” is unknown host

Помогите, кто сталкивался

204