0

我有一个带有登录表单的 login.php 文件。我有一个validation.php 文件来验证登录,代码如下:

<?php

session_start();

if(($_SESSION['user'] == "user123") && ($_SESSION['pass'] = "123"))
{

 header("Location: index.php");

}

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

?>

我有一个 index.php 文件,当我登录时,我想转到 index.php 页面,使用以下代码:

<?php

session_start();
if(($_SESSION["user"]) and ($_SESSION["pass"]))
{
    ?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml2/DTD/xhtml2-transitional.dtd">
<html xmlns="http://www.w3.org/1993/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=u2f-5" />
<title>Untitled Document</title>
</head>

<body>
<p>geageagge</p>
<p>egeageage</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>geagaegea</p>
</body>
</html>
<?php
}
else
 echo "You didnt do login";

但我得到了这个错误:未定义的索引用户用户,在这一行:if(($_SESSION["user"]) and ($_SESSION["pass"]))

有谁知道我做错了什么?

4

1 回答 1

1

1)小错误login.php(我猜)

$_SESSION['pass'] = "123"应该是 $_SESSION['pass'] == "123"

2)检查值是否设置

if(isset($_SESSION["user"]) and isset($_SESSION["pass"]))

编辑

在我看到您的 html 表单后,我认为您几乎没有错误。

validation.php你必须检查输入的值,所以你需要使用$_POST然后如果它们是正确的,将它们放入会话中。

所以你的代码validation.php应该看起来有点

<?php

session_start();

if(($_POST['user'] == "user123") && ($_POST['pass'] == "123"))
{
 $_SESSION['user'] = $_POST['user'];
 $_SESSION['pass'] = $_POST['pass'];
 header("Location: index.php");

}

else
{
 header("Location: login.php");
}
于 2013-07-10T12:24:55.567 回答