会话变量未被取消设置
我有一个网站需要用户名和密码。如果输入正确,则会创建用户名会话变量。但是,当我进入另一个页面并检查是否设置了变量时,我得到了错误信息。会话变量未被取消设置
这是我设置变量的代码。
$ 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页。它不应该。
任何想法?
- session_start();功能使用顶部的页面(PHP的一个踏歌后不换行)
2如果($用户名== “rightusername” & & $密码== “rigthpassword”){
$_SESSION["username"] = "aadsj2als378909382lkklja";
$_SESSION["password"] = "ajklsd89798798jlk09779023";
}
改变这样的代码,测试$用户名,密码$内容..
添加换行符不会改变任何' 2012-04-18 04:17:46
这也没有工作。 – user541597 2012-04-18 04:22:33
当这些变量已经设置好后,你在print_r($ _ SESSION)'时会返回什么?你拼写正确吗? – Phix 2012-04-18 04:29:00
好吧,这可能会有点明显,但机智h这...
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");
}
?>
登录工作正常。这不是问题。 – user541597 2012-04-18 05:08:54
基于你的代码,它应该工作得很好。所以我唯一的假设是,不知何故变量没有被正确发送。如果情况并非如此,那么我认为你不会发布哪些内容会导致问题。 – Ian 2012-04-18 05:12:12
我发现当我执行session_start()而不是继续上一次会话时,会创建不同的会话。 – user541597 2012-04-18 05:16:18
仅供参考'$用户名== “正确的用户名” || $ password ==“rigthpassword”'。我想你想''&&'不''' – 2012-04-18 04:06:41
谢谢你。但是这不会导致问题。 – user541597 2012-04-18 04:07:42
看起来你的2页在不同的域名。 'website.com'和'webpage.com'。这只是一个错字吗?还是他们真的在不同的领域。 – 2012-04-18 04:08:34