PHP会话到期 - 单独工作但不在函数中

时间:2014-02-18 19:47:28

标签: php session cookies

当我从函数发出此代码时,cookie会在会话结束时到期

$validuntil = '2024-02-17';
$validuntil = strtotime ($validuntil);
setcookie ('vid',$vid,$validuntil,'/');
setcookie ('pwd',$pwd,$validuntil,'/');

但是,在独立的php文件中执行 exact 相同的代码会将Cookie设置为在正确的日期到期。

这是函数

function validuser ($vid, $pwd){
 global $pdo;

 $stmnt = $pdo->prepare ("select * from members where vid = :vid and password = :password");
 $stmnt->bindParam (':vid',$vid);
 $stmnt->bindParam (':password', $pwd);

 $stmnt->execute();

 if ( $stmnt->rowCount() != 1){
    header("Location:invalid.php");
    break;
 }

 $member = $stmnt->fetch (PDO::FETCH_OBJ);

    if ($member->nickname!="")
       $_SESSION['user']= $member->nickname." ".$member->lname;
    else
       $_SESSION['user']= $member->fname." ".$member->lname;


    $validuntil = '2024-02-17';
    $validuntil = strtotime ($validuntil);
    setcookie ('vid',$vid,$validuntil,'/');
    setcookie ('pwd',$pwd,$validuntil,'/');

    $_SESSION['ulot']  = $member->ulot;
    $_SESSION['valid'] = '101150';
    $_SESSION['admin'] = $member->admin == 1;
    $_SESSION['vid']   = $member->vid;
    $_SESSION['resid'] = $member->vid;
    $_SESSION['pwd']   = $member->pwd;
    $_SESSION['user']  = $member->fname." ".$member->lname;
    header ("Location:mainmenu.php");

}

有人可以解释一下以及我如何解决这个问题。

谢谢,

0 个答案:

没有答案