重定向-PHP时,会话变量会丢失

时间:2013-08-28 21:55:25

标签: php variables session

我是使用PHP的新手,我正在尝试构建内容管理网站。

我开始开发登录页面,并且在开始时SESSION变量保持正常,并且在确认登录后使用重定向到另一个页面时没有任何问题。

但是2天前我也尝试开发忘记密码功能,从那时起,只更改我刚启用的输出缓冲,我就有了问题。 SESSION变量不会转移到重定向页面,因此登录不起作用。

我的代码如下:

<?php include("../includes/session.php"); ?>
<?php require_once("../includes/db_connection.php"); ?>
<?php require_once("../includes/functions.php"); ?>
<?php require_once("../includes/validation_functions.php"); ?>
<?php
$username = "";
if (isset($_POST['submit'])) {

  // Process the form
  // validations
  $required_fields = array("username", "password");
  validate_presences($required_fields);
      if (empty($errors)) {
        // Attempt Login
            $username = $_POST["username"];
            $password = $_POST["password"];
            $found_admin = attempt_login($username, $password);
            //print_r($found_admin);
                if ($found_admin) {
                  // Success
                        // Mark user as logged in
                        $_SESSION["admin_id"] = $found_admin["usr_serno"];  
                        $_SESSION["username"] = $found_admin["username"];
                        redirect_to("admin.php");
                } else {
                  // Failure
                  $_SESSION["message"] = "Username/password not found.";
                }
        }
}else if(isset($_POST['forgot'])) { 
    redirect_to("forgotPassword.php"); 
 } 
?>
<?php $layout_context = "admin"; ?>
<?php include("../includes/layouts/header.php"); ?>
<div id="main">
  <div id="navigation">
    &nbsp;
  </div>
  <div id="page">
    <?php echo message(); ?>
    <?php echo form_errors($errors); ?>

    <h2>Login</h2>
    <form action="login.php" method="post">
      <p>Username:
        <input type="text" name="username" value="<?php echo htmlentities($username); ?>" />
      </p>
      <p>Password:
        <input type="password" name="password" value="" />
      </p>
      <input type="submit" name="submit" value="Submit" />
      <input type="submit" name="forgot" value="Forgot Password" />
    </form>

  </div>
</div>

<?php include("../includes/layouts/footer.php"); ?>

session.php启动会话 并且admin.php将只检查SESSION [admin_id]是否设置然后它将显示该页面,否则它将再次重定向到login.php页面,这就是发生的事情。

有任何建议或帮助吗?

0 个答案:

没有答案