[英]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.