【发布时间】:2015-09-07 01:33:01
【问题描述】:
我是一名新程序员,我只是在服务器编程方面学习一些 PHP。但我很难理解 cookie 和会话。我目前正在做这个练习,我需要一些语法方面的帮助,以及一切都会到位的地方。另外,我不确定如何格式化所需的日期,我需要确保我的 if 语句是正确的。这是我正在处理的第一部分的官方说明,然后是我到目前为止的代码:
login.php
使用 login.php 文件只允许注册用户登录(目前是硬编码值)。注意:在现实生活中永远不要将用户和密码信息放在 url 变量中!
-如果他们正确登录: 将该事实记录在名为“loggedIn”的 $_SESSION 变量中,其值为“true”,
-设置一个名为“loggedIn”的cookie,其日期和时间的值(格式如下:2015 年 1 月 25 日上午 10:00 – 使用http://php.net/manual/en/function.date.php 作为参考)在 10 分钟后到期,并且 - 然后将它们发送到 admin.php。
-如果他们没有正确登录,则打印一条消息“无效登录”
-如果他们之前登录过(如果会话变量存在),那么只需将他们重定向到 admin.php 页面
-他们将通过 URL 提供他们的用户名和密码: kelvin.ist.rit.edu/~username/341/lab2/login.php?user=admin&password=password
-使用 $_GET['user'] 和 $_GET['password'] 获取用户名和 密码。
-如果他们不提供这两个值,则显示消息“无效登录”
<?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);
?>
【问题讨论】:
-
Cookie 和会话不是一回事。此外,这不是您在 PHP 中进行转换的方式。
-
@system0verl0ad 我在下面回答了你的问题吗?没有赞成票或反对票