0

ログインページにセッション変数を保存してからメンバーページに引き継ごうとしていますが、何らかの理由でメンバーページに移動したときにセッション変数が保存されません。

<?php
error_reporting(E_ALL ^ E_NOTICE);
session_start();
$userid = $_SESSION['userid'];
$username = $_SESSION['username'];

?>

それからhtmlの束。次のphpコードは...

<?php

$form = "<form action='login.php' method='post'>
<table>
<tr>
<td><input type='text' name='user' /></td>
</tr>
<tr>
<td><input type='password' name='password' /></td>
</tr>
<tr>
<td><input type='submit' name='loginbtn' value='Login' /></td>
</tr>
</table>
</form>";

if ($_POST['loginbtn']) {
$user = $_POST['user'];
$password = $_POST['password'];

if ($user) {
    if ($password){
        require("connect.php");

        $password = md5(md5("kjfiufj".$password."GSA54"));
        //make sure login info is correct
        $query = mysql_query("SELECT * FROM users WHERE username='$user'");
        $numrows = mysql_num_rows($query);

        if ($numrows == 1) {
            $row = mysql_fetch_assoc($query);
            $dbid = $row['id'];
            $dbuser = $row['username'];
            $dbpassword = $row['password'];
            $dbactive = $row['active'];

            if ($password == $dbpassword) {
                if ($dbactive == 1) {
                //set session info
                    $_SESSION['userid'] = $dbid;
                    $_SESSION['username'] = $username;


                    echo "logged in as        <strong>$dbuser</strong>. <a href='member.php'>Click here</a> to go to the member page.";
                }
                else
                    echo "User not active";
            }
            else
                echo "Wrong password.";
        }
        else
            echo "The username you entered was not found";

        mysql_close();
    }
    else 
        echo "What's the password brah?";


}
else 
    echo "What's the user name brah?";



}
else 
    echo $form;
?>

会員ページのコードは

    <?php
error_reporting(E_ALL ^ E_NOTICE);
session_start();
$userid = $_SESSION['userid'];
$username = $_SESSION['username'];

?>

<?php
if ($username && $userid) {
    echo "Welcome <strong>$username</strong>,<a href='logout.php'>Logout</a>.";
}

else
    echo "Please login to acces this page <a href='login.php'>Login here</a>";



?>
4

2 に答える 2

2

session_start()ログインページで電話していますか?

ランタイム構成オプションを にsession_start()設定していない場合は、セッション変数にアクセスするすべてのページで 呼び出す必要があります。 編集session.auto_starttrue


実際には、$_SESSION['userid']実際には定義済みの変数を次のように割り当てているため、おそらく空ではありません$_SESSION['userid'] = $dbid;

ただし、未定義のように見える$_SESSION['username']値を割り当てて作成しています。$username

多分

$_SESSION['username'] = $username;

する必要があります

$_SESSION['username'] = $dbuser;
于 2012-10-26T01:32:55.137 に答える
0

変数に実際に何かが含まれていることを確認します

session_start();
$userid = $_SESSION['userid'];
$username = $_SESSION['username'];

?>

<?php
if (strlen($username) >0 && strlen($userid)>0) {
    echo "Welcome <strong>$username</strong>,<a href='logout.php'>Logout</a>.";
}

または、セッション変数が設定されていることを確認してください

session_start();
$userid = $_SESSION['userid'];
$username = $_SESSION['username'];

?>

<?php
if (isset($_SESSION['username']) && isset($_SESSION['userid'])) {
    echo "Welcome <strong>$username</strong>,<a href='logout.php'>Logout</a>.";
}
于 2012-10-26T01:44:14.823 に答える