【问题标题】:PHP cookies and sessionPHP cookie 和会话
【发布时间】: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 我在下面回答了你的问题吗?没有赞成票或反对票

标签: php session cookies


【解决方案1】:

我还没有测试过,如果有任何语法错误,请原谅,但这应该可以。干杯。

<?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>

【讨论】:

    猜你喜欢
    • 2014-07-18
    • 1970-01-01
    • 1970-01-01
    • 2013-07-03
    • 2015-11-30
    • 2016-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多