PHP处理登录问题

johnswood 2009-01-20 02:25:15
我用PHP处理表单中用户登录问题。PHP连接数据库后,执行查询,看用户名与密码与Mysql中是否一致。结果是用Firefox可以登录,但用IE就提示用户名密码错误。问题出在哪呢?
...全文
340 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
johnswood 2009-01-22
  • 打赏
  • 举报
回复
终于发现问题在哪了,谢谢各位的热情帮助。代码和配置都没问题,是系统时钟不对。
james0210 2009-01-22
  • 打赏
  • 举报
回复
= =!
Zend用惯了回来看PHP代码快看不懂了。。。
johnswood 2009-01-22
  • 打赏
  • 举报
回复
我已经把我的站点加到可信站点中去了,还是不行。经查internet临时目录下,根本没有生成cookie。
问题应是出在setcookie()函数中。
谢谢大家。
我自己的拙见,IE自身的问题基本可排除,因为我用同样的IE访问同样部署在Redhat8上的相同代码是没问题的。
我现在准备下载一下Apache的最新代码,重新编译一下,不用REDHAT自带的了。请大家继续帮我分析原因。
Zijian_Zhang 2009-01-21
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 johnswood 的回复:]
谢谢大家的热心帮助,源码如下。环境是Redhat ES5 + Apache + PHP +Mysql
登录页面
HTML code<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html; charset=gb2312"><LINKREL=stylesheetHREF="inc/my.css"TYPE="text/css"><title>登录窗口</title></head><body><?php
include 'inc/header.php';?><p> …
[/Quote]

如果Firefox行,而IE不行,那么就是浏览器或代码兼容的问题.

楼主检查一下IE的设置,特别是安全设置,或者在里面 ,ECHO一下那几个COOKIES变量,看看有没有输出,可能是浏览器安全设置的问题.
wxdvc 2009-01-21
  • 打赏
  • 举报
回复
Firefox会强行记录session,会不会是这个问题。
shyli 2009-01-21
  • 打赏
  • 举报
回复
是不是你IE的设置有问题?
用session试一下吧。
chen_pei 2009-01-21
  • 打赏
  • 举报
回复
Notice: Use of undefined constant username - assumed 'username' in C:\www\loginprocess.php on line 4

Notice: Use of undefined constant password - assumed 'password' in C:\www\loginprocess.php on line 5
我在IE下有这样的错误???????
johnswood 2009-01-21
  • 打赏
  • 举报
回复
修改为
$id=$_COOKIE["Id"];
$sno=$_COOKIE["Sno"];
还是不行,也就是在IE中Cookie不能用了,怎么回事?
换了一台客户机器,同样的问题,应排除IE的问题。是不是Apache的问题?
johnswood 2009-01-21
  • 打赏
  • 举报
回复
我加了些测试代码,发现问题不是出在loginprocess.php上。出在登录成功跳转的xxx.php中的校验用户Cookie的部分。代码如下:
$id=$_COOKIE[Id];
$sno=$_COOKIE[Sno];
在IE终端提交的数据中,得不到这两个值,而FireFox提交的数据中,就可以得到。
johnswood 2009-01-21
  • 打赏
  • 举报
回复
谢谢大家的热心帮助,源码如下。环境是Redhat ES5 + Apache + PHP +Mysql
登录页面

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<LINK REL=stylesheet HREF="inc/my.css" TYPE="text/css">
<title>登录窗口</title>
</head>
<body>
<?php
include 'inc/header.php';
?>
<p> </p><p> </p>
<form name="form1" method="post" action="loginprocess.php">
<table border="0" align="center">
<tr>
<td><div align="right">用户名</div></td>
<td><input name="username" type="text" size="20" maxlength="20"></td>
</tr>
<tr>
<td><div align="right">密码</div></td>
<td><input name="password" type="password" size="20" maxlength="20"></td>
</tr>
<tr>
<td><div align="right">
<input type="submit" name="Submit" value="提交">
</div></td>
<td>
<div align="right">
<input type="Reset" name="Reset" value="取消">
</div></td>
</tr>
</table>
</form>
<p> </p>
<p> </p><p> </p><p> </p><p> </p><p> </p>
<?php
include "inc/tailer.php";
?>
</body>
</html>



处理页面

<?php
include 'inc/conn.php';
include 'inc/para.php';
$username = $_REQUEST[username];
$password = $_REQUEST[password];
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
$result=mysql_query("select id, pass,realname from user where username='" . $username . "' and pass= PASSWORD('" . $password . "');")
or die("Can't Query:". mysql_error());
if($row = mysql_fetch_array($result)){
//valid user processing
$id=$row[0];
//set cookie
$time=date("Y-m-d H:i:s",time());
$cookie=md5($row[1] . $time);
mysql_query("update user set lastlogintime='". $time . "' where id=" . $id .";") or die("Cannot Update lastlogintime:". mysql_error());
setcookie("Id",$id,time()+1800);
setcookie("Sno",$cookie,time()+1800);
setcookie("RealName",$row[2]);
mysql_free_result($result);
//redirect to upload
header("Location:http://" . $WebAddress . $WebDir ."xxxx.php");
} else {
mysql_free_result($result);
//invalid user processing
header("Location:http://" . $WebAddress . $WebDir ."loginerr.php");
}

?>
ruanchao 2009-01-21
  • 打赏
  • 举报
回复
大家都很用心在帮助你解答,楼主继续回帖呀
wxq4100798 2009-01-20
  • 打赏
  • 举报
回复
哈哈,TRIM一下,然后,print_r($_REQUEST)看看用户名密码,提交得是否一样
胡争辉 2009-01-20
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 frederic_zhao 的回复:]
这年月到底怎么了!回答问题还要靠猜!

猜对的回家路上顺便买张彩票啊!
[/Quote]
提问很难的
aqua23 2009-01-20
  • 打赏
  • 举报
回复
httpwatch抓一下包吧,看看提交的东西是不是一样。
ai_ni 2009-01-20
  • 打赏
  • 举报
回复
唉,好几个问题都是这样,老让大伙猜.
frederic_zhao 2009-01-20
  • 打赏
  • 举报
回复
这年月到底怎么了!回答问题还要靠猜!

猜对的回家路上顺便买张彩票啊!
free999 2009-01-20
  • 打赏
  • 举报
回复
从你的描述,firefox能登录,ie不能登,php程序肯定没问题。
就看php以外比如js之类的传值的不同了。
其他的没法分析了。
lonelyriver 2009-01-20
  • 打赏
  • 举报
回复
xiongbing529 2009-01-20
  • 打赏
  • 举报
回复
代码拿来看看。或者打印下你的数组看看。
胡争辉 2009-01-20
  • 打赏
  • 举报
回复
既然程序是你自己写的,在输出错误的时候,顺便输出用户名和密码。
加载更多回复(7)

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧