我是編程新手,我正在使用一些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