1

正常に動作しているログイン システムで Web を作成しています。ログインして閲覧できるページも作りました。また、正常に機能しており、ユーザーがログインすると、ウェルカム「ユーザー名」メッセージも表示されます。

ただし、不明な理由により、このセッション変数は他のページに保存されていません。問題は、ログイン制限のあるページに使用したのと同じ方法を使用したことです。

以下は私のログインページです。(正常に動作します)。

<?php
    session_start();
?>
  <form id="login_form" method="post" action="">

      <p>
        <?php
    if(isset($_POST["username"]) && isset($_POST["password"])){
        $username = $_POST["username"];
        $password = $_POST["password"];

        if(strlen($username) < 4 || strlen($password) < 4){
            echo "Username or Password are invalid.";
        }else{
            require("connect.php"); 

            $login = mysql_query("SELECT * FROM users WHERE username = '$username' AND password = '$password'  ") or die(mysql_error());

            if(mysql_num_rows($login) == 0){
                echo "Username or Password are incorrect!";
            } else{
                require("member.php");

                $member_info = mysql_fetch_assoc($login);
                setMember($member_info["id"]);
                $_SESSION['user'] = "$username";
                echo "Welcome ".$member_info["fname"]." ".$member_info["lname"]."<br />";
                echo "Redirecting... Please wait.";
                jumpTo("my_logs_testing.php",2);
            }

            //Free result & close connection.
            mysql_free_result($login);
            mysql_close($link);
        }
    }else{
    }

  ?>
      </p>
      <table frame="box" bgcolor="" width="40%" border="0" cellpadding="6" align="center">
        <tr>
      <td colspan="2"><div align="center"><font color="#FFFFFF"><strong>Diving Advisor | Log In System</strong></font> </div>      </tr>
          <tr>
            <td width="25%"><font color="#FFFFFF"><strong><label for="username2">Username:</label></strong></font></td>
            <td width="75%" align="left"><input name="username" type="text" id="username" size="30" maxlength="20" /></td>
          </tr>
          <tr>
            <td><font color="#FFFFFF"><label for="password"><strong>Password:</label></strong></font></td>
            <td align="left"><input name="password" type="password" id="password" size="30" maxlength="20" /></td>
          </tr>
          <tr>
            <td>&nbsp;</td>
            <td><input type="submit" name="submit_login" id="submit_login" value="Log In" /></td>
          </tr>
    </table>
  </form>

これはログイン制限のあるページです (正常に動作します)。

<?php

    session_start();
    $current_user = $_SESSION['user'];
    require("member.php");

    if( !isMember() ){
        header("Location: login.php");  
    } else {
?>
 <?php

if(mysql_connect('localhost', 'root','') && mysql_select_db('diving_advisor')){

    echo "Welcome ".$current_user;  
    $errors = array();

    if(isset($_POST['datepicker'],$_POST['location'],$_POST['description'])) {
cont.......................

そして、これは機能していない他のページの 1 つです (セッション変数が失われているようです! ここに問題があります!!!!

<?php

    session_start();
    $current_user = $_SESSION['user'];

    require("member.php");

?>
Here is code from template.......................
Then the editable region....
<?php
echo $current_user;
?>

  <p><strong>Heading 1</strong></p>
  <p>This is the home page of the diving advisor application.
  Lore......

echo $currentuser はページに何も印刷していません。ログインしたユーザーを出力するはずですが、何らかの理由でそうではありません。

何が悪いのかわからないので助けてください!! よろしくお願いします。

4

1 に答える 1

0
session_start();

各ページで最初に呼び出される必要があります。

于 2013-04-30T06:54:46.947 に答える