2016-12-19 63 views
0

我有一個表單,用jQuery發佈一些變量。我無法獲得處理表單的PHP按預期工作,無法弄清楚我做錯了什麼。如何創建一個條件,如果會話設置?

我希望表單根據btn變量的值做不同的事情,但如果用戶未登錄(user_session爲空),則會返回一條消息告訴他們。我在這裏弄錯了什麼?

<?php 
session_start(); 
//Check session is set 
if(isset($_SESSION['user_session']) && !empty($_SESSION['user_session'])) { 
    $btn=$_POST['btn']; //Get btn name from form 
    if ($btn=="btn_follow") { 
     //Do something 
    } 
    elseif ($btn=='btn_unfollow') { 
     //Do something else 
    } 
echo "You need to be logged in"; 
} 
?> 
+0

isset()函數和空()是多餘的,他們都檢查,如果該值被定義並且不爲空,空還檢查值大致等同於錯誤。所以根據你的要求,你只需要一個或另一個。 – Devon

+0

你在哪裏設置會話值? – harrrrrrry

+0

非常正確,我忘了把它放在這裏,但它是在原來的腳本。 – JulianJ

回答

2

我想你想做的事:!

<?php 
session_start(); 
//Check session is set 
if(isset($_SESSION['user_session']) && !empty($_SESSION['user_session'])) { 
    $btn=$_POST['btn']; //Get btn name from form 
    if ($btn=="btn_follow") { 
     //Do something 
    } 
    elseif ($btn=='btn_unfollow') { 
     //Do something else 
    } 
}else{ 
    echo "You need to be logged in"; 
} 
?> 
+0

應該通過isset()檢查運行$ _POST ['btn']以及...... – ivanivan

+0

可能沒有必要,他正在檢查一個值,最壞的情況是$ btn會是空值。我不認爲這裏會有問題。這裏有類似的問題http://stackoverflow.com/questions/7261117/is-there-any-benefit-of-using-null-first-in-php如果null應該用在等於條件的左側 – Dolfa

+1

如果它沒有設置,那麼你最終得到關於未定義變量的通知 - 這不是一個真正的問題,因爲錯誤消息最終會被分配給一個字符串變量。就個人而言,我不喜歡懶惰的代碼,避免做正確的方式,因爲它無論如何工作... – ivanivan