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'];
}
?>