2016-12-19 20 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