2013-11-20 152 views
2

5.3.13中的奇怪行爲?

我有一個變量$ isguest已被存儲到前一頁(previous.php)中的$ _SESSION ['isguest']中。在當前頁面(main.php)中,我想確定用戶是否已從previous.php重定向(因此是guest),或者他已直接登錄到main.php。然後發生一些有趣的事情:

session_start(); 

echo "<pre>"; 
print_r($_SESSION); // At this point, [isguest] => 1; 
echo "</pre>"; 

    $isguest = '';  // this should have nothing to do with the SESSION variable that happens to have the same name, should it? 

echo "<pre>"; 
print_r($_SESSION); // At this point, [isguest] => 0; 
echo "</pre>"; 
+2

如果它將會話變量更改爲空字符串,我會懷疑'$ isguest'是一個引用變量。但是,由於將常量變量設置爲空字符串會將會話變量更改爲數字,所以我想不出任何可能發生的情況。 – Barmar

+0

順便說一句,養成使用'var_dump'而不是'print_r'的習慣,結果會更精確。 – Barmar

+1

我們可以看到$ _SESSION ['isguest']'被設置並與之交互的地方嗎? – Ibu

回答

0

首先,我並不反對你的方式,但我認爲你可以這樣做。

而不是[ 'isguest'],創建一個名爲[ '的loggedIn']會議,設置爲0(假)。這將是,未登錄,因此他/她是一個客人。

當用戶登錄時,將其設置爲1(true)。所以用戶確實已經登錄了。

我希望這種幫助你。

相關問題