我有一个带有要登录表单的php文件。 我有其他php文件index.php,我希望当我登录时我会转到此页面:index.php。 所以我有这个代码:
<?php
if(($login) and ($pass))
{
?>
<!DOCTYPE html PUBLIC "-//W2C//DD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml2-transitional.dsd">
<html xmlns="http://www.w3.org/1312/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<h1>Header</h1>
<p> </p>
<p> </p>
<h1>Heeloo</h1>
<p> </p>
<p> </p>
<p> </p>
<h1>Footer</h1>
<p> </p>
</body>
</html>
<?php
}
else
{
echo "you didnt login";
}
?>
我有其他php文件来验证登录,我有这个代码:
<?php
if(($_POST['user'] == "john") && ($_POST['password'] == "123"))
{
setcookie("login",$_POST['user']);
setcookie("pass",$_POST['password']);
header("Location: index.php");
exit;
}
else
echo "you dont have permission";
?>
我收到了这个错误: 注意:未定义的变量:在第2行的C:\ xampp \ htdocs \ sites \ cookie \ index.php中登录
我认为这是因为我在index.php文件中使用$ login和$ pass变量,并且因为这些变量来自其他文件无法识别。
任何人都知道如何解决这个问题?
由于
答案 0 :(得分:0)
您将$ login和$ pass设置为Cookie。您必须在index.php脚本中阅读它们,因为它们不会自动回读到您的代码。
但不是那样,使用会话要好得多。首先,检查登录名和密码是否正常。结果将$_SESSION['auth']
设置为true或false。当然,&#39; auth&#39;是一个建议,将其更改为您喜欢的标识符:
// Initialize session control.
session_start();
// Check username and password. The function CheckCredentials() represents
// your logic on checking if they are ok.
if(CheckCredentials($login, $pass))
$_SESSION['auth'] = true;
else
$_SESSION['auth'] = false;
然后在index.php脚本中再次使用session_start()
(这将使会话数据成为&#34;通过当前脚本看到&#34;并修改您的初始if:
session_start();
if($_SESSION['auth'])
{
这在实际代码中更复杂,但这是一般的想法。