2016-03-10 3 views
1

В основном я хочу что-то вродеПроверьте, если строка PHP сессии является действительной, и существует

$string = "dadeadad"; 

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

Но я нашел примеры, связанные с проверкой, если был запущен сеанс (то есть не то, что я хочу). Любая идея о том, как это сделать?

+0

сессий переменные не магия, сравнить один и тот же путь вы сравниваете любые 2 vars 'if ($ x == $ y)' –

+0

Что вы хотите достичь этим? – CBroe

ответ

3

Проверьте, не установлен ли сеанс и что-то в нем.

т.е .:

session_start(); 

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

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

    // session is true and equals to string 
} 

else{ 

    // do something here 
} 

В любом случае, вы все равно должны использовать условный оператор, чтобы проверить, если идентификатор сеанса равно что-то.

Как указано выше и от 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"]; 
+0

не может быть установлен и по-прежнему соответствовать? –

+0

@Dagon сомневаюсь в этом. с 'OR' sure –

+0

@ Fred-ii-« строка $ »буквально является идентификатором сеанса. Должно быть проще проверить, запущен ли «идентификатор сеанса X» или нет, просто это ... – Fane

0

Похоже, Вы ищете что-то вроде этого:

session_start(); 

$sessId = 'voi44bhncdt58j5gfssnje37n11'; 

if(session_id() === $sessId){ 
    echo "valid php session"; 
} else{ 
    echo "invalid php session"; 
} 
Смежные вопросы