检查php会话字符串是否有效且存在

时间:2016-03-10 20:07:40

标签: php

基本上我想要像

这样的东西
$string = "dadeadad";

if(session_id($string)){
      // $string is a valid php session, not expired
}else{
      // $string is not a valid php session
}

但我找到的只是检查会话是否已启动(这不是我想要的)的示例。关于如何做到这一点的任何想法?

2 个答案:

答案 0 :(得分:3)

检查会话是否已设置且等于某事。

即:

session_start();

$_SESSION['string'] = "dadeadad";

if(isset($_SESSION['string']) && $_SESSION['string'] == "dadeadad"){

   // session is true and equals to string
}

else{

   // do something here
}

无论哪种方式,您仍然需要使用条件语句来检查会话ID是否等于某事。

如上所述,来自Dagon if($x==$y)

从此回答中提取的示例https://stackoverflow.com/a/21302920/

将变量分配给session_id(),稍后您可以检查它是否等于“某事”。

<?php
session_start();
$r=session_id();

/* SOME PIECE OF CODE TO AUTHENTICATE THE USER, MOSTLY SQL QUERY... */

/* now registering a session for an authenticated user */
$_SESSION['username']=$username;

/* now displaying the session id..... */
echo "the session id id: ".$r;
echo " and the session has been registered for: ".$_SESSION['username'];


/* now destroying the session id */

if(isset($_SESSION['username']))
{
    $_SESSION=array();
    unset($_SESSION);
    session_destroy();
    echo "session destroyed...";
}

另一个例子,取自手册:http://php.net/manual/en/function.session-id.php

<?php
$a = session_id();
if(empty($a)) session_start();
echo "SID: ".SID."<br>session_id(): ".session_id()."<br>COOKIE: ".$_COOKIE["PHPSESSID"];

答案 1 :(得分:0)

看起来你正在寻找这样的东西:

<a>