会话变量未被取消设置

时间:2012-04-18 04:04:42

标签: php

我有一个网站,其中包含用户名和密码。正确输入后,将创建用户名会话变量。但是,当我进入另一个页面并检查变量是否设置时,我得到了错误。

这是我设置变量的代码。

$ username = $ _POST [“username”]; $ password = $ _POST [“password”];

if ($username == "right username" || $password == "rigthpassword"){

    session_start();

    $_SESSION["username"] = "aadsj2als378909382lkklja";
    $_SESSION["password"] = "ajklsd89798798jlk09779023";

}

然后我有一个用于检查用户是否已登录的php脚本。如果用户已登录,则会转到一个页面,如果没有则转到另一个页面。但是,如果用户未登录但用户已登录,则会转到应该转到的页面。

<?php session_start();

    if(!isset($_SESSION["username"])){

        header('Location:http://website.com/page1.php');

    } else {

        header('Location:http://website.com/page2.php');

    }

?>

所以我登录后点击运行此脚本的链接。不是把我带到第2页,而是把它带到第1页。它不应该这样。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

  1. 在session_start();函数使用页面顶部(php one tage后没有换行符)
  2. 2 if($ username ==“rightusername”&amp;&amp;&amp; $ password ==“rigthpassword”){

    $_SESSION["username"] = "aadsj2als378909382lkklja";
    $_SESSION["password"] = "ajklsd89798798jlk09779023";
    

    }

    更改这样的代码,测试$ username,$ password content ..

答案 1 :(得分:0)

好的,这可能有点明显,但有了这个......

if ($username == "right username" || $password == "rigthpassword"){

    session_start();

    $_SESSION["username"] = "aadsj2als378909382lkklja";
    $_SESSION["password"] = "ajklsd89798798jlk09779023";

}

您如何检索这些值?我假设你正在使用post方法。这意味着它应该更符合......的性质。

    if ($_POST['username'] == "right username" || $_POST['password'] == "rigthpassword"){
session_start();

        $_SESSION["username"] = "aadsj2als378909382lkklja";
        $_SESSION["password"] = "ajklsd89798798jlk09779023";
    }

我的猜测是你必须不正确地发送变量。您可以发布登录表单的代码吗?

的login.html

<form method="POST" action="http://mysite.com/login.php">
<input type="text" name="username">
<input type="password" name="password">
<input type="submit">
</form>

的login.php

<?php
session_start();
if ($_POST['username'] == "password" && $_POST['password'] == "password") {
$_SESSION['username'] == "aadsj2als378909382lkklja";
$_SESSION['password'] == "ajklsd89798798jlk09779023";
}
?>

otherpage.php

<?php
session_start();
if (!isset($_SESSION['username'])){
header("location: http://website.com/page1.php");
} else {
header("location: http://website.com/page1.php");
}
?>