解决方案:经过几个小时的搜索,当我在没有添加“www”的情况下访问我的网站时,似乎出现了这个问题。在域之前。所以实际发生的事情是,我正在使用 example.com/login.php 在某处设置会话,我的成员控件无法识别,所以它将我重定向回 www.example.com/login.php,当我登录一切正常。
当我从 www.example.com/login.php (带有 www.)登录时,它会从第一次尝试正确登录。
所以我添加了一个代码来确保我总是在 URL 中有 www:
if ($_SERVER['HTTP_HOST'] == "example.com")
{
$url = "http://www." . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
header("Location: $url");
}
现在一切正常。希望它可以帮助某人。
所以,我已经建立了 3 个以上的网站,并且都有同样的问题,我不知道为什么,我必须登录两次,直到我真正登录......(直到设置会话变量)。非常感谢您的帮助,长期以来一直在尝试解决此问题并寻找解决方案...
session_start();
if ((isset($_SESSION['UserName']))&&(isset($_SESSION['LastActivity'])))
{
header ('Location: http://www.example.com/Account.php');
}
if (isset($_POST['username']))
{
mysql_connect("localhost","DBuser","pass") or
die ("could not connect to mysql");
mysql_select_db("DBNAME") or die ("no database");
$inputUserName = $_POST['username'];
$inputPass = $_POST['password'];
$datausername = mysql_real_escape_string($inputUserName);
$password=md5($inputPass);
$sqlCommand = "SELECT * FROM Members
WHERE UserName='$datausername' AND
Password='$password'";
$result = mysql_query($sqlCommand);
if (mysql_num_rows($result) > 0)
{
$_SESSION['UserName'] = $datausername;
$_SESSION['LastActivity']= time();
sleep(2);
$LoginDate = date('Y-m-d H:i:s');
mysql_connect("localhost","DBUPDATEusername","DBuserPass") or
die ("could not connect to mysql");
mysql_select_db("databaseName") or die ("no database");
mysql_query("Update Members SET LastLogin='$LoginDate' WHERE
UserName='$datausername'");
mysql_close();
echo '<meta http-equiv="Refresh" content="0;url=http://www.example.com/Account.php?p=Login_Success"/>';
}
else {
mysql_close();
echo '<div id="error_msg">Error: Information entered are not correct. Please check and try again.</div>';}
}
}
?>
<form...
登录表单(带有 action="")和方法 post)。
注意:我使用 html 刷新标签,因为我不能使用标头重定向..(我收到标头已发送的错误)。
在 example.com/Account.php 中,我在代码顶部执行此检查:
session_start();
if ((!isset($_SESSION['UserName']))||(!isset($_SESSION['LastActivity'])))
{
header('Location: http://www.example.com/?p=Must_Login');
}
而且似乎我第一次登录并被重定向到 account.php 面板.. 会话值未设置,并将我重定向回 Must_Login 页面。我再次登录(与我第一次使用的登录页面相同。但第二次登录时,它确实设置了会话值,一切正常。
非常感谢您提前提供的帮助!