【问题标题】:php set session with cookiesphp 使用 cookie 设置会话
【发布时间】:2013-01-27 19:28:00
【问题描述】:
$_SESSION['user_id'] = $login;  
setcookie('user_id', '$login' , time()+86000);
header('Location: userindex.php');

function logged_in() {
return (isset($_SESSION['user_id']) || isset($_COOKIE['user_id']) ? true : false;
}

我有 SESSION,但我也不想包含 COOKIE,但我不知道如何使用 COOKIE 重新启动 SESSION。我不知道我怎么能得到那个。我创建了 COOKIE,但无法注销并且遇到了 SESSION 问题,有人可以帮我解决我的问题????在顶部的每个页面中,我都有 login_in 函数来检查用户是否已登录,我不会使用这些 logged_in 函数来检查用户是否有 cookie 来自动登录到用户 cookie。我认为它在logged_in函数中必须写一些代码和......

【问题讨论】:

  • 请尽量用正确的英文书写。
  • 我想用 COOKIE 设置 SESSION。我有 SESSION 我怎样才能包含 COOKIE?

标签: php session cookies


【解决方案1】:

我会注意到这是不安全的,因为任何人都可以使用 firebug 之类的东西创建 cookie。

@session_start();

function logged_in() {
    if(!isset($_SESSION['user_id']) && isset($_COOKIE['user_id'])) {
        $_SESSION['user_id'] = $_COOKIE['user_id'];
    }
    return isset($_SESSION['user_id']);
}

function logout() {
    unset($_SESSION['user_id']);
    setcookie("user_id", "", time() - 3600);
    header("Location: http://".$_SERVER['HTTP_HOST']);
    exit;
}

编辑:添加 logout() - 将删除会话和 cookie 'user_id',然后重定向到主页

【讨论】:

  • 那是我如何从 COOKIE 注销的人?你能帮我确保安全吗?
  • setcookie('user_id', $login, time()-86000);注销是这样的
  • 当我关闭浏览器并重新启动浏览器时出现问题,它没有重新加载页面
  • 您是否为此登录系统使用密码?这个函数应该在你重新启动浏览器后从设置的 cookie 中设置 session['user_id'] 变量
  • 更好的办法是使用session_set_cookie_params 设置一个遥远的未来时间,以确保在您重新打开浏览器时会话不会丢失。不需要额外的 cookie php.net/manual/en/function.session-set-cookie-params.php
【解决方案2】:

首先:你应该设置它:

setcookie('user_id', $login , time()+86000);

所以 $login 不带引号。如果这个 cookie 应该在不同的页面中看到,也可以设置路径变量。

通过设置负时间值来删除cookie:

setcookie('user_id', '' , time()-86000);

【讨论】:

    【解决方案3】:
    session_start();
    
    function logged_in() {
    
        if(!isset($_SESSION['user_id']) && isset($_COOKIE['user_id'])) {
    
            $_SESSION['user_id'] = $_COOKIE['user_id'];
        }
    
        return (isset($_SESSION['user_id'])) && isset($_COOKIE['user_id'])));
    }
    

    【讨论】:

      猜你喜欢
      • 2015-11-30
      • 1970-01-01
      • 1970-01-01
      • 2010-11-25
      • 2016-04-08
      • 2019-11-18
      • 2013-11-19
      • 2013-02-07
      • 1970-01-01
      相关资源
      最近更新 更多