无法让$ _SESSION工作

时间:2013-02-16 13:15:21

标签: php session login web

我正在制作此登录系统,但我的网站却看不到我在另一页上放入$_SESSION的值。

在我的标题代码(包含在每个页面中)中,我得到了:

<?php
     session_start(); 
?>

和我的登录处理:

<?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都是空的。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

嗨我认为主要问题是首页的执行必须先执行才能设置session.else下一页不会有会话。

例如第一页是

<?php
session_start();
$_SESSION['userName'] = 'Root';

?>

和第二页

<?php
session_start();
if(isset($_SESSION['userName'])) {
  echo "Your session is running " . $_SESSION['userName'];
}
?>

如果您直接加载第二页,它将无效,因为会话尚未设置。首先执行第一页然后执行第二页而不使用session_register()

在我看来使用cookies因为它更广泛地用于无状态会话。