推 heavenbetula: 那這樣session_is_registered("userIP")一定 09/23 22:28
→ heavenbetula: 沒有登記囉?因為userIP還沒有值 09/23 22:28
→ heavenbetula: 然後因為!的原因所以一定會執行 if裡面的動作嗎/ 09/23 22:29
→ MOONRAKER: session_is_registered()在5.4已經入土為安了 09/23 22:32
→ MOONRAKER: 相同功能請大方使用isset($_SESSION['userIP']) 09/23 22:33
→ heavenbetula: 5.2.6版本可以使用5.4的語法嗎? 09/23 22:34
推 heavenbetula: 抱歉突然覺得上句這個問題很蠢...我去更新= =' 09/23 22:36
→ cf1064: 如果你只有這個頁面,第一次進入,IF判斷結果應該是TRUE 09/24 00:24
→ cf1064: 然後就會執行到 session_register('userIP'); 09/24 00:25
→ cf1064: 這時候userip就會被登記,然後當你重新整理時 09/24 00:26
→ cf1064: 因為userip被登記且還存在,if的判斷結果會變false 09/24 00:27
→ cf1064: session_is_registered('userIP')=true,! true就是false 09/24 00:28
→ cf1064: 就不會執行if內的東西 09/24 00:29
→ cf1064: 不過這個的確之後版本拿掉了,改成isset是一樣的運作原理 09/24 00:30
→ cf1064: 另外登記和給值是不一樣的事情唷 09/24 00:42
→ cf1064: 早期版本要用session,你要先登記,才能給值 09/24 00:43
→ cf1064: session_register('userIP');把他當成是宣告一個變數 09/24 00:45
→ cf1064: $_SESSION['userIP]=$this->getIP; 就是給變數一個值 09/24 00:46
→ cf1064: session_is_registered('userIP')就是指這個變數是否存在 09/24 00:47
→ cf1064: 如果你宣告一個變數,不給值,判斷他是否存在時 09/24 00:47
→ cf1064: 那麼結果會是存在,除非你是判斷這個變數裡有沒有值 09/24 00:48
→ MOONRAKER: 試試看便知,記得滿早就可以用isset()檢查session了 09/24 09:55
推 heavenbetula: 感謝各位大大熱心的解惑! 09/24 19:19
推 heavenbetula: 請問為什麼我改為isset($_SESSION['userIP'])後 09/25 20:30
→ heavenbetula: 永遠都不會去執行else...這樣結果不對啊> <" 09/25 20:30
→ heavenbetula: 也就是變if(!isset($_SESSION['userIP'])) 09/25 20:32
→ heavenbetula: 然後session_register("userIP");這行刪除 09/25 20:33