2014-12-05 60 views
0

我想写一个简单的函数,检查是否cookie或会话设置根据你告诉你要检查的功能。出于某种原因,如果我告诉函数我想检查一个会话,它仍然会给出'cookie'块中的条件输出。希望我解释得很好。无论如何,如果任何人都可以提供一些帮助,为什么这不按照我想要的方式工作,那就太棒了。自定义Cookie /会话功能不工作

function check($checkType, $name) { 
    if ($checkType = 'cookie') { 
    if(isset($_COOKIE[$name])) { 
     echo "Cookie '" . $name . "' is set!<br>"; 
     echo "Value is: " . $_COOKIE[$name]; 
     die(); 
    } else { 
     echo "Cookie named '" . $name . "' is not set!"; 
     die(); 
    } 
    } else if ($checkType = 'session') { 
     if(isset($_SESSION[$name])) { 
     echo "Session '" . $name . "' is set!<br>"; 
     echo "Value is: " . $_SESSION[$name]; 
     die(); 
     } else { 
     echo "Session named '" . $name . "' is not set!"; 
     die(); 
     } 
    } 
} 

//initiate function with parameters 
check('session', 'loginStatus'); 

回答

1

在你的if语句中,你正在使用赋值运算符(=)。要检查其中一个值是否等于其他值,则应使用相等比较运算符(==)。

if ($checkType == 'cookie') { 
    // It's a cookie 
} else if ($checkType == 'session') { 
    // It's a session 
} 

您可以在PHP here阅读更多关于运营商。

+0

哇,甚至没有捕捉到。谢啦! – 2014-12-05 16:43:55