我正在制作此登录系统,但我的网站却看不到我在另一页上放入$_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
都是空的。
我做错了什么?
答案 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因为它更广泛地用于无状态会话。