Php Can';无法使$\u会话正常工作
我正在创建此登录系统,但我的站点在另一个页面上看不到我在Php Can';无法使$\u会话正常工作,php,session,login,web,Php,Session,Login,Web,我正在创建此登录系统,但我的站点在另一个页面上看不到我在$\u会话中输入的值 在我的页眉代码(每页都包含)中,我得到: 和我的登录处理: <?php include("header.php"); $myusername= $_POST['naam2']; $mypassword= $_POST['wachtwoord']; $myusername = stripslashes($myusername); $mypassword = stripslashes($mypasswo
$\u会话中输入的值
在我的页眉代码(每页都包含)中,我得到:
和我的登录处理:
<?php
include("header.php");
$myusername= $_POST['naam2'];
$mypassword= $_POST['wachtwoord'];
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql = "SELECT * FROM winkel WHERE naam='$myusername' AND BINARY wachtwoord ='$mypassword'";
$result = mysql_query($sql);
$count = mysql_num_rows($result);
if ($count == 1) {
session_register($myusername);
$inf = mysql_fetch_array($result);
$_SESSION['winkelinfo'] = $inf;
header("Location: mijntreinwinkeltje.php");
}
else {
header("location:login.php?err=1");
}
?>
当我填写正确的凭证时,它会重定向到mijntreinwinkeltje.php。
然后在mijntreinwinkeltje.php中我把:
<?php
include("header.php");
$winkelinfo = $_SESSION['winkelinfo'];
if ($winkelinfo)
echo("derp".$winkelinfo['naam']);
$voornaam = $winkelinfo['gebruikervoornaam'];
$achternaam = $winkelinfo['gebruikerachternaam'];
?>
但它不会打印echo(“derp”。$winkelinfo['naam'])代码>
而$voornaam
和$achternaam
都将为空
我做错了什么?您好,我认为主要问题是必须先执行第一页以设置会话。否则下一页将不会有会话
例如,第一页是
<?php
session_start();
$_SESSION['userName'] = 'Root';
?>
第二页
<?php
session_start();
if(isset($_SESSION['userName'])) {
echo "Your session is running " . $_SESSION['userName'];
}
?>
如果直接加载第二页,它将不起作用,因为尚未设置会话。首先执行第一页,然后执行第二页,不要使用session\u register()
在我看来,使用cookies是因为它更广泛地用于无状态会话。$inf=mysql\u fetch\u array($result)
您在$inf
中得到的内容使用打印
或变量转储
进行检查。尝试不使用mysql\u fetch\u数组如果您使用的是数字键,请尝试使用_assoc。我已经检查了变量是否合法,并且它们都是。我甚至可以在登录过程页面上回显$SESSION['winkelinfo'],它会显示正确的值。它在任何其他页面上都不起作用。你检查错误日志了吗?还要检查php.ini文件中的会话保存目录,并确保该目录可由您的Web服务器写入。它在php.ini:session.save_path=“/var/lib/php/session”中表示,但我甚至找不到该目录。我会改变它,但当我试图覆盖它,我可以拒绝权限错误。我可以使用htaccess更改它吗?如果是这样,有人能告诉我怎么做吗?因为我不是htaccess的高手:如果你在会话中遇到问题,我会建议你使用cookies,这对无状态会话和负载平衡器也很有用。让我来处理你的东西,我也不完全确定我应该更改什么。页面刷新后它不也应该工作吗?(这不起作用)您如何使用session\u寄存器($myusername)代码>?我不知道我只是个新手。你想使用$myusername
也可以像$\u session['userName]=$myusername代码>但不使用会话注册($myusername)代码>尝试删除它并尝试删除它,但没有更改任何内容。
<?php
session_start();
if(isset($_SESSION['userName'])) {
echo "Your session is running " . $_SESSION['userName'];
}
?>