登录的问题——快要崩溃了

wzwen 2008-12-06 09:52:47
我昨天搞了个美国CP空间,当时很兴奋,现在快要崩溃了,程序频频出问题

比如说登陆页面,老是提示:“用户名或密码错误!”

用户是刚刚添加进去的,密码也对,怎么会提示错误呢?不应该啊

注:所有的编码都是:gb2312

进入phpmyadmin设置 MySQL 连接校对:gb_2312_chinese_ci

表里的“整理”也都是gb2312_chinese_ci

连接数据库时设置:mysql_query("set names 'gb2312'");

现在应该排除编码问题了吧?

那程序有问题?

上代码

登陆页面:

<form method="post" action="login.php">
<div align="center"><br><br><br><br><br><br>
<img src="../images/wyxback.gif"><br>
<table width="300px" border="0" cellpadding="1" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td bgcolor="#666666" style="height: 26px; width: 120px;">
<div align="center">
<span style="color: #ffffff">用户名:</span></div>
</td>
<td bgcolor="#666666" style="height: 26px; width: 180px;">
<div align="left"> <input name="wyx_name" type="text" size="18"/></div>
</td>
</tr>
<tr>
<td bgcolor="#666666" style="height: 28px; width: 120px;">
<div align="center">
<span style="color: #ffffff">密 码:</span></div>
</td>
<td bgcolor="#666666" style="height: 28px; width: 180px;">
<div align="left"><input name="wyx_pass" type="password" size="19"/></div>
</td>
</tr>
<tr>
<td bgcolor="#666666" style="height: 28px; width: 120px;">
<div align="center">
<span style="color: white">验证码:</span></div>
</td>
<td bgcolor="#666666" style="height: 28px; width: 180px;">
<div align="left"><input name="wyx_yzm" type="text" size="10"/>
<img src="VerifyCode.php" />
</div>
</td>
</tr>
<tr>
<td colspan="2" bgcolor="#666666" style="text-align: center">
</td>
</tr>
<tr>
<td colspan="2" bgcolor="#666666" style="text-align: center" height="30">
<input type="submit" name="submit" value="登 录" />
</td>
</tr>
</table>



login.php页面:

<?php
include('../config.php');
//验证码
$pageRandCode=$_POST['wyx_yzm'];
session_start();
if($_SESSION['verifyCode'] <> $pageRandCode)
{
echo '<script>alert("验证码有误!");
location.replace ("index.php")</script>';
}
else
{
$wyx_name = $_POST['wyx_name'];
$wyx_pass = md5(trim($_POST['wyx_pass']));
$sql="select * from wyx_user where wyx_name='$wyx_name'&&wyx_pass='$wyx_pass'";
$sql=@mysql_query($sql);
if($rs=@mysql_fetch_array($sql))
{
setcookie("wyx",$wyx_name,time()+3600000);
header("Location:admin_index.php");
}
else
{
$str="<SCRIPT language=JavaScript>alert(' 用户名或密码错误!');javascript:history.go(-1)</SCRIPT>";
echo $str;
}
}
?>
...全文
43 点赞 收藏 13
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
phpboy 2008-12-06


$sql="select * from wyx_user where wyx_name='$wyx_name'&&wyx_pass='$wyx_pass'";
$sql=@mysql_query($sql);

mysql_query("set names 'gb2312'"); //要不在这里加上这句

$rs=@mysql_fetch_array($sql);

echo $rs[0]."and",$rs[1]; //echo 一下看看

if($rs)
{

回复
wzwen 2008-12-06
问题已解决了,接分吧

原因居然是密码字段的长段限制20,后来改为100就好了,晕,存储时密码加码成MD5过长就导致存入的密码截取了一部分
回复
phpboy 2008-12-06
SQL语句在数据库里测试一下,看能不能成功
回复
penglewen 2008-12-06
也许是你数据库中保存的用户名或密码有空格或其它字符引起的,你检查下,还有你密码是md5的.看看输入的与你数据库中是否一致
回复
wzwen 2008-12-06
刚才又

echo $wyx_name;
echo $wyx_pass;

结果显示的用户名和我进入phpmyadmin打开用户表里的字段内容相符啊...
回复
penglewen 2008-12-06
<?php
include('../config.php');
//验证码
$pageRandCode=$_POST['wyx_yzm'];
session_start();
if($_SESSION['verifyCode'] <> $pageRandCode)
{
echo '<script>alert("验证码有误!");
location.replace ("index.php")</script>';
}
else
{
$wyx_name = $_POST['wyx_name'];
$wyx_pass = md5(trim($_POST['wyx_pass']));
$sql="select * from wyx_user where wyx_name='$wyx_name'and wyx_pass='$wyx_pass'";
echo $sql;
$query=@mysql_query($sql);
if($rs=@mysql_fetch_array($query))
{
setcookie("wyx",$wyx_name,time()+3600000);
header("Location:admin_index.php");
}
else
{
$str="<SCRIPT language=JavaScript>alert(' 用户名或密码错误!');javascript:history.go(-1)</SCRIPT>";
echo $str;
}
}
?>
回复
phpboy 2008-12-06


$wyx_name = $_POST['wyx_name'];
$wyx_pass = md5(trim($_POST['wyx_pass']));
$sql="select * from wyx_user where wyx_name='$wyx_name'&&wyx_pass='$wyx_pass'";
$sql=@mysql_query($sql);
$rs=@mysql_fetch_array($sql);
if($rs)
{
setcookie("wyx",$wyx_name,time()+3600000);
header("Location:admin_index.php");
}
else
{
$str="<SCRIPT language=JavaScript>alert(' 用户名或密码错误!');javascript:history.go(-1)</SCRIPT>";
echo $str;
}

回复
wzwen 2008-12-06
[Quote=引用 5 楼 penglewen 的回复:]
echo $sql ;输出sql语句看看,
可能是你用户名或是密码错误了。。。
[/Quote]

结果显示:Resource id #3

咋回事?
回复
penglewen 2008-12-06
echo $sql ;输出sql语句看看,
可能是你用户名或是密码错误了。。。
回复
wzwen 2008-12-06
[Quote=引用 2 楼 froole 的回复:]
如果成功过的话,证明程序应该没有错误。
在php中var_dump一下$_POST['wyx_name']和$_POST['wyx_pass']、$sql
还有sql的搜索结果,看看怎么回事先。
[/Quote]

var_dump不会用啊,菜鸟刚学
回复
wzwen 2008-12-06
[Quote=引用 1 楼 penglewen 的回复:]
$sql="select * from wyx_user where wyx_name='$wyx_name'&&wyx_pass='$wyx_pass'";

改成
$sql="select * from wyx_user where wyx_name='$wyx_name' AND wyx_pass='$wyx_pass'";
[/Quote]

仍然不行呢...
回复
海诗美妆 2008-12-06
如果成功过的话,证明程序应该没有错误。
在php中var_dump一下$_POST['wyx_name']和$_POST['wyx_pass']、$sql
还有sql的搜索结果,看看怎么回事先。
回复
penglewen 2008-12-06
$sql="select * from wyx_user where wyx_name='$wyx_name'&&wyx_pass='$wyx_pass'";

改成
$sql="select * from wyx_user where wyx_name='$wyx_name' AND wyx_pass='$wyx_pass'";
回复
相关推荐
发帖
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
帖子事件
创建了帖子
2008-12-06 09:52
社区公告
暂无公告