Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查php会话字符串是否有效且存在_Php - Fatal编程技术网

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

检查php会话字符串是否有效且存在,php,Php,基本上我想要的是 $string = "dadeadad"; if(session_id($string)){ // $string is a valid php session, not expired }else{ // $string is not a valid php session } 但我所发现的只是与检查会话是否已启动相关的示例(这不是我想要的)。你知道怎么做吗?检查会话是否已设置并等于某个值 <?php session_start(); $r=

基本上我想要的是

$string = "dadeadad";

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

但我所发现的只是与检查会话是否已启动相关的示例(这不是我想要的)。你知道怎么做吗?

检查会话是否已设置并等于某个值

<?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...";
}
即:

无论哪种方式,您仍然需要使用条件语句来检查会话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...";
}
如上所述,以及Dagon
if($x==$y)
中所述


从这个答案中得出的例子

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


看起来您正在寻找类似的内容:

session_start();

$sessId = 'voi44bhncdt58j5gfssnje37n11';

if(session_id() === $sessId){
    echo "valid php session";
} else{
    echo "invalid php session";
}

会话变量并不是神奇的,你可以像比较任何两个变量一样进行比较
if($x==$y)
你想通过它实现什么?它是否可以不设置并且仍然匹配?@Dagon对此表示怀疑。使用
sure@Fred-ii.“$string”字面上就是会话id。应该更容易检查“会话id X”是否正在运行,只需…@Fane生成一个字符串,例如
0bdac8b0a85873b1657e4dc046e1cf61
,所以无论哪种方式,您将需要使用已经概述的条件语句来检查该字符串是否等于它(相同的原则)。达贡还在评论中留下了一个例子。所以我要看一下这方面的手册,它有几个例子。我可以在以后提供进一步的帮助,因为我必须去某个地方大约一个小时。回来后我很乐意帮助您。@Fane
if(session\u id($string)&&&$string==“dadeadad”)
可以工作;未经测试。但是再一次<默认情况下,code>session_id()
生成的字符串比
dadeadad
长,因此您需要测试我前面提到的内容。
session_start();

$sessId = 'voi44bhncdt58j5gfssnje37n11';

if(session_id() === $sessId){
    echo "valid php session";
} else{
    echo "invalid php session";
}