0

このログイン システムを作成していますが、$_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両方とも空になります。

私は何を間違っていますか?

4

1 に答える 1

0

こんにちは、主な問題は、セッションを設定するために最初のページを最初に実行する必要があるページの実行だと思います。それ以外の場合、次のページにはセッションがありません。

たとえば、最初のページは

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

?>

そして2ページ目

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

2番目のページを直接ロードすると、セッションがまだ設定されていないため機能しません.最初に最初のページを実行し、次に2番目のページを実行し、使用しませんsession_register()

私の意見では、Cookie はステートレス セッションでより広く使用されているため、Cookie を使用します。

于 2013-02-16T13:39:33.320 に答える