繁体   English   中英

在有关会话的登录脚本中未在php中设置错误

[英]Not set error in php in a login script about sessions

我在php会话中遇到问题,而我的登录脚本和数据库连接正常,而用户登录时一切正常,但是使用会话“未设置”。这是我有关登录的代码。 php :电子邮件为:one@gmail.com,密码为:12345678

<?php
session_start();

?>

<?php
if(isset($_POST['log'])){


    include "database.php";

    $email=$_POST['email'];
    $pass=$_POST['pas'];


$query="SELECT * from users WHERE email='{$email}'  AND pass='{$pass}'";
$rezultat=mysqli_query($db,$query);

if(!$rezultat){
    echo "Failed";
}



$nr=mysqli_num_rows($rezultat);
if($nr==1){

$_SESSION['email'];
header('Location:menu.php');


}

else{
    echo "invalid";
}


}

?>


<!DOCTYPE html>
<html>
<head>
</head>
<body>

<form method="post" action="">

Email<input type="text" name="email"><br>
Password<input type="password" name="pas"><br>

<input type="submit" name="log" value="Log in">
</form>


    </body>
    </html>

这是我有关menu.php的代码,如果凭据确定(如它们在数据库中),我将指导用户。 phpmyadmin中只有一行,电子邮件为:one@gmail.com,密码为:12345678

<?php

session_start();

?>

<?php


if(isset($_SESSION['email'])){

    echo $_SESSION['email'];
}

else{
    echo "not set";
}

?>

在使用header重定向之前,您只需要$_SESSION['email']; 并且不要为其设置任何值。

$_SESSION['email'];#<!-- no value -->
header('Location:menu.php');

所以我猜像

$nr=mysqli_num_rows($rezultat);
if($nr==1){

    $row=mysqli_fetch_assoc( $rezultat );

    $_SESSION['email']=$row['email'];
    header('Location:menu.php');

    /* or, $_SESSION['email']=$email */

}

在您的login.php中,如果凭据确定,则将会话中的value设置为variable:

$_SESSION['email'] = $email;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM