Php 为什么if(空($#u会话[';gebruikersnaam';][';wachtwoord';])不工作?
首先,我的英语不是很好。对不起,我尽力了。我正在开发一个CMS系统。我需要一个inlog系统。如果未登录,则无法查看某些页面。我创建了一个php会话,但它在其他页面上不起作用。。。我将包括一些我写的代码Php 为什么if(空($#u会话[';gebruikersnaam';][';wachtwoord';])不工作?,php,session,Php,Session,首先,我的英语不是很好。对不起,我尽力了。我正在开发一个CMS系统。我需要一个inlog系统。如果未登录,则无法查看某些页面。我创建了一个php会话,但它在其他页面上不起作用。。。我将包括一些我写的代码 在我检查用户名和密码的页面上,我创建了如下会话。并与会话一起检查用户名和密码,因此它可以在该页面上工作 如果会话的条件语句有效,我可以在用户未登录时将其重定向到登录页面 提前谢谢,你会帮我很多忙的 这是因为口误,它的$\u会话不是$\u会话,而且: $_SESSION['gebruikersna
提前谢谢,你会帮我很多忙的 这是因为口误,它的
$\u会话
不是$\u会话
,而且:
$_SESSION['gebruikersnaam']['wachtwoord'];
实际上是指1个值,而不是2个值:
$data = array('gebruikersnaam' => array('wachtwoord' => 'mijnwachtwoord'));
echo $data['gebruikersnaam']['wachtwoord'];
相反,你应该:
if(!empty($_SESSION['gebruikersnaam']) || !empty($_SESSION['wachtwoord'])){
echo "not ingelogd";
}
但是,您应该只在会话中存储用户名和id。存储密码是一种潜在的安全漏洞,没有必要
您也可以使用类似的方法来扫描所需的值:
function required_session_fields(array $keys){
foreach($keys as $k){
if(!array_key_exists($k, $_SESSION) && empty($_SESSION[$k])){
return false;
}
}
return true;
}
if(required_session_fields(['gebruikersnaam', 'wachtwoord'])){
echo 'gelukt';
}
如果启动了会话并包含了文件,则仍然可以访问$\u会话
变量。在每个新服务器请求上,确保会话已启动
if(!empty($_SESSION['gebruikersnaam']['wachtwoord'])) {
echo "not ingelogd";
}
但是,从未创建此变量$\u SESSION['gebruikersnaam']['wachtwoord']。目前您已经创建了$_会话['gebruikersnaam']和$_会话['wachtwoord']
也许你是想拥有像这样的东西
if(!empty($_SESSION['gebruikersnaam']) && !empty($_SESSION['wachtwoord'])) {
echo "not ingelogd";
}
我看到
\u session
,检查打字错误。$\u session['gebruikersnaam']
是一个值,$\u session['wachtwoord']
是另一个值。你在那一页上启动了会话吗?@RST这是他的代码的第三行。@xoref我在他的其他页面上是指的。他说他不能回显这个值(希望他知道它是一个数组,所以他需要print\u r()或其他东西),所以我想知道他是否在这些页面上使用了start\u session(),如果答案有用,请向上投票。如果它解决了你的问题,请标记它。下次包含@RST提到的小细节时,我们不知道在您的其他页面中发生了什么,所以也要在这些页面上创建一个。
if(!empty($_SESSION['gebruikersnaam']['wachtwoord'])) {
echo "not ingelogd";
}
if(!empty($_SESSION['gebruikersnaam']) && !empty($_SESSION['wachtwoord'])) {
echo "not ingelogd";
}