включить идентификатор пользователя в сессию - PullRequest
0 голосов
/ 25 апреля 2020

В настоящее время моя php форма входа в систему будет содержать только acro css имя пользователя в сеансе, я хочу, чтобы это передавалось через идентификатор пользователя (автоматически создается при регистрации пользователя).

Как показано ниже, я включил идентификатор_пользователя, но он не отображается на моей веб-странице, однако имя пользователя.

Просто интересно, кто-нибудь может мне помочь с этим? (Я новичок в PHP)

Процесс входа в систему:

require_once('connection.php');
session_start();
    if(isset($_POST['login']))
    {
       if(empty($_POST['username']) || empty($_POST['PWORD']))
       {
            header("location:login.php?Empty= Please Fill in the Blanks");
       }
       else
       {
            $query="select * from users where username='".$_POST['username']."' and PWORD='".$_POST['PWORD']."'";
            $result=mysqli_query($con,$query);

            if(mysqli_fetch_assoc($result))
            {
                $_SESSION['User']=$_POST['username'];
                $_SESSION['user_id'] = $row['user_id'];
                header("location:../manage_event.php");
            }
            else
            {
                header("location:login.php?Invalid= Please Enter Correct User Name and Password ");
            }
       }
    }
    else
    {
        echo 'Not Working Now Guys';
    }

Сессия на следующей странице:

session_start();

if(isset($_SESSION['User']) || isset($_SESSION['user_id']))
{
    echo ' Welcome ' . $_SESSION['User'].'<br/>';
    echo ' User ID ' . $_SESSION['user_id'].'<br/>';

}
else
{
    header("location:login/login.php");
}

Ответы [ 2 ]

0 голосов
/ 25 апреля 2020

Хотя ваша безопасность сомнительна, я все равно отвечу на ваш вопрос. Как указано в другом ответе, вы неправильно назначаете переменные. См. Пример здесь

Следующий код решит ваши проблемы в отличие от другого решения:

$query="select * from users where username='".$_POST['username']."' and PWORD='".$_POST['PWORD']."'";

if ($result = mysqli_query($con, $query)) {
/* fetch associative array */

    while ($row = mysqli_fetch_assoc($result)) {

        $_SESSION['User']=$_POST['username'];

        $_SESSION['user_id']=$row['user_id'];     

        header("location:../manage_event.php");
    }     
}else {
            header("location:login.php?Invalid= Please Enter Correct User Name and Password ");
        }
   }

Обязательно замените этот код на старый блок кода извлечения. , Таким образом, в первом предложении «еще».

0 голосов
/ 25 апреля 2020

Как насчет присвоения извлеченного результата для $row:

$query="select * from users where username='".$_POST['username']."' and PWORD='".$_POST['PWORD']."'";
            $result=mysqli_query($con,$query);

            if( $row = mysqli_fetch_assoc($result))
            {
                $_SESSION['User']=$_POST['username'];
                $_SESSION['user_id'] = $row['user_id'];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...