PHP:必须先登录两次,直到设置了会话变量
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP:必须先登录两次,直到设置了会话变量,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3026字,纯文字阅读大概需要5分钟。
内容图文
![PHP:必须先登录两次,直到设置了会话变量](/upload/InfoBanner/zyjiaocheng/732/34e51ac9d668483e9d3b6f27d1a00842.jpg)
解决方案:经过几个小时的搜索后,当我访问我的网站而没有添加“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 =“”)和方法发布).
注意:我使用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页面.我再次登录(我第一次使用相同的登录页面.但是第二次登录时,它确实设置了会话值,一切正常.
非常感谢您的帮助!
解决方法:
解决方案:经过几个小时的搜索后,当我访问我的网站而没有添加“www”时,似乎出现了这个问题.在域名之前.所以实际发生的事情是,我正在使用mydomain.com/login.php登录某个地方设置会话,我的会员控制无法识别,所以它将我重定向回www.mydomain.com/login.php,那时候我登录一切正常.
当我从www.mydomain.com/login.php(使用www.)登录时,它会从第一次尝试正确登录.
所以我添加了一个代码,以确保我在URL中始终有www:
if ($_SERVER['HTTP_HOST'] == "mydomain.com")
{
$url = "http://www." . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
header("Location: $url");
}
一切都很好.希望它可以帮助某人.
内容总结
以上是互联网集市为您收集整理的PHP:必须先登录两次,直到设置了会话变量全部内容,希望文章能够帮你解决PHP:必须先登录两次,直到设置了会话变量所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。