我是一个新的程序员,我正在学习一些PHP服务器编程方面的知识。但我很难理解cookie和session。我目前正在做这个练习,我需要一些语法方面的帮助,以及所有东西都应该到位的地方。此外,我不确定如何格式化所需的日期,我需要确保我的if语句是正确的。以下是我正在编写的第一部分的官方说明,后面是我目前拥有的代码:
login。
使用login.php文件只允许注册用户登录(现在是硬编码值)。注意:在现实生活中不要将用户和密码信息放在url变量中!
-如果他们正确登录:将此事实记录在$_SESSION变量' loggedIn '中,值为' true ',
-设置一个名为"loggedIn"的cookie和一个日期和时间值(格式为:January 25, 2015 10:00 am -使用http://php.net/manual/en/function.date.php作为参考),过期时间为10分钟-然后发送到admin.php.
-如果他们没有正确登录打印一个消息说"无效登录"
-如果他们以前登录过(如果会话变量存在),那么只需将他们重定向到admin.php页面
-他们将通过URL提供他们的用户名和密码:kelvin.ist.rit.edu/~用户名/341/lab2/login ?用户= admin&密码密码=
-使用$_GET[' user ']和$_GET[' password ']获取用户名和密码密码。
-如果他们没有提供这两个值,显示一个消息" Invalid Login "
<?php
error_reporting(E_ALL);
session_start();
$username = "student";
$password = "student";
if(empty($_SESSION['loggedIn'])) {
$_SESSION['loggedIn'] = true;
$loggedIn = $_COOKIE['loggedIn'] = string date (string $format [, int
$timestamp = time()+600]); //expires 10 minutes from now
header("Location: admin.php");
exit;
} else {
echo "<h2>Invalid Login</h2>";
}
if(!empty($_SESSION['loggedIn'])) {
header("Location: admin.php");
exit;
$_GET['username'];
$_GET['password'];
} else {
echo "<h2>Invalid Login</h2>";
}
setcookie("test_cookie",$path, $domain, $loggedIn, $expire);
?>
我还没有测试过这个,所以如果有任何语法错误,请原谅,但这应该可以工作。欢呼。
<?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'] == '1234')
{
$_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="1234" />
<input type="submit" name="submit" value="Login" />
</form>
</body>
</html>