我是编程新手,我正在使用一些PHP。给我一个名为login.php
的文件和一些方向来创建称为admin.php
的第二个文件。PHP未设置会话和Cookie
以下是说明。
admin.php
如果用户试图访问此文件,而无需登录,他们重新引导回的login.php页面应该显示一条消息,说“无效登录” - 使用会话变量进行检查。
如果他们登录:
为他们提供与消息“的loggedIn” cookie的值:“你登录1月25日,上午10:00”(或任何值)
未设置会话变量,破坏了会议,并
未设置两个饼干(会话和“的loggedIn”),并设置为过期所以它会被浏览器删除。
注意:添加代码来破坏会话和cookie之前测试中的login.php的部分已经登录。
一旦你得到了上面的工作,改变你的代码,这样,如果他们被重定向从admin.php的到的login.php,它应该显示不同的信息:“您需要登录”。
<?php
session_start();
$message = null;
if (isset($_SESSION['loggedIn']) && $_SESSION['loggedIn'] == 'true') {
header("Location: admin.php");
exit();
}
if ($_SERVER['REQUEST_METHOD'] == 'GET') {
if (sizeof($_GET) && isset($_GET['username']) && isset($_GET['password']) && $_GET['username'] && $_GET['password']) {
if ($_GET['username'] == 'username' && $_GET['password'] == 'password') {
$_SESSION['loggedIn'] = 'true';
setcookie ("loggedIn", date("F d,Y h:ia"), time()+60*10, "/", $_SERVER['SERVER_NAME']);
header("Location: admin.php");
exit();
} else {
$message = 'Invalid Login';
}
} else {
$message = 'Invalid Login';
}
}
?>
<!DOCTYPE HTML>
<html>
<head>
<title>Login</title>
</head>
<body>
<?php if($message) echo '<div class="warning">' . $message . '</div>'; ?>
<form method="get">
<label for="username">Username</label>
<input type="text" name="username" id="username" value="username" />
<label for="password">Password</label>
<input type="password" name="password" id="password" value="password" />
<input type="submit" name="submit" value="Login" />
</form>
</body>
</html>
下面的代码是我到目前为止所。我想知道我的未设置对于会话变量和cookie是否正确。此外,我怎么显示日期和时间,在说明中规定,以及我如何显示“您需要登录,如果用户被定向到从admin.php的网页页面的login.php的消息?
<?php
session_start();
if (!isset($_SESSION['loggedIn']) && $_SESSION['loggedIn'] == 'false') {
header("Location: login.php");
exit();
} else {
unset($_SESSION['loggedIn']);
session_unset();
session_destroy();
unset($_COOKIE['loggedIn']);
}
?>
if(empty($ array ['loggedIn'])|| $ array ['loggedIn'] =='false')我想.. – hanshenrik
...或'(@ $ rray ['loggedIn']?:'false')=='false''或另一个变体。 .. – ankhzet