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()一次。通过超级全局变量为您的会话注册变量:

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

然后您可以$_SESSION['password']在任何网站上使用session_start()

于 2013-01-11T15:11:49.663 回答