我有一个网站,其中包含用户名和密码。正确输入后,将创建用户名会话变量。但是,当我进入另一个页面并检查变量是否设置时,我得到了错误。
这是我设置变量的代码。
$ 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页。它不应该这样。
有什么想法吗?
答案 0 :(得分:0)
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");
}
?>