0

私には奇妙な問題がありますが、確かに単純なログインの問題です。ここでコードを使用すると、セッションセクションに問題が発生します。ログイン情報の検証は正常に機能しますが、ログインが成功してもリダイレクトされません。セッション情報をコメントアウトすると、正常に機能します。これは、process-login.phpページとsuccess.phpページの両方で発生します。どんな考えでもいただければ幸いです。

前もって感謝します。

これが私のログインページです:

    <form action="process-login.php" method="post">
     <fieldset>
      <legend>Login Form</legend>
      <label for="username">Username:</label>
      <input type="text" id="username" name="username" />
      <label for="password">Password:</label>
      <input type="password" id="password" name="password" />
      <button type="submit">Send</button>
     </fieldset>
    </form>

これが私のプロセスログインページです:

    <?php

    ob_start();
    // Set form data as variables

    $myusername=$_POST['username'];
    $mypassword=$_POST['password'];

    // DB login
    $host="localhost";
    $username="root";
    $password="pass1";
    $db_name="contact";
    $tbl_name="users";

    // Open database connection
    mysql_connect("$host", "$username", "$password")or die("cannot connect");
    mysql_select_db("$db_name")or die("cannot select DB");

    // Query with data
    $query="SELECT * from $tbl_name where username='$myusername'
    and password='$mypassword'";
    $result=mysql_query($query);

    // Check for entry
    $count=mysql_num_rows($result);

    // If it matches register and send on
    if($count==1){
    session_start("username");
    session_start("password");
    header("location:success.php");
    }
    else {
    echo "Wrong!";
    }
    ob_end_flush();
    ?>

そして最後に、これが私の成功ページです:

    <?php
    session_start();
    if(!isset($_SESSION['username'])){
    header("location:login.php");
    }
    else
    {
    echo "Welcome";
    }
    ?>

さらに詳しい情報が必要な場合はお知らせください

4

3 に答える 3

3

session_start()セッションを作成します。引数は取りません。

セッションにデータを保存するには、次のことを行う必要があります$_SESSION['foo'] = $bar;

于 2013-01-11T15:10:42.660 に答える
1

最初にPDOに移動します。次に、session_start()と$_SESSION変数の設定方法についてお読みください。

 session_start();
 $_SESSION['username']='me';
 if(!isset($_SESSION['username'])){
      header("Location:login.php");
 }
于 2013-01-11T15:11:05.560 に答える
0

一度だけ電話する必要がありますsession_start()。セッションのRegistring変数は、スーパーグローバルを介して機能します。

session_start();
$_SESSION['username'] = $myusername;
$_SESSION['password'] = $mypassword;

$_SESSION['password']その後、どのサイトでも使用できますsession_start()

于 2013-01-11T15:11:49.663 に答える