注册页面:
<?php
include("../mysql/php_mysql.php");$name=$_POST[name];
$apass = str_replace(" ","",$_POST[password]);
$pass=md5($apass);$type=$_POST[type];$sql="insert into admin (name,password,type) values ('$name','$pass','1')";$query=$db->query($sql); if($query){ echo "<script>alert('注册成功');history.go(-1);</script>";}else{ echo "<script>alert('注册失败');history.go(-1);</script>";}$close=$db->close();?>
登陆页面:
<?php
include ("../mysql/php_mysql.php");
session_start();$name=$_POST[name];
$apass = str_replace(" ","",$_POST[password]);
$pass=md5($apass);$check=$_POST[check];
$sql="select * from admin where name='$name'";$query=$db->query($sql);$row=$db->num_rows($query);if($row==0) echo "<script>alert('对不起,该账号不存在,登陆失败。');history.go(-1);</script>"; else{
$array=$db->fetch_array($query); if($array[password]!=$pass){  echo "<script>alert('对不起,密码错误,登陆失败。');history.go(-1);</script>"; }else if($check!=$_SESSION[checks]){
echo "<script>alert('对不起,验证码错误,登陆失败。');history.go(-1);</script>"; }else{   setcookie("id",$array['id']);
  setcookie("name",$array['name']);
  setcookie("pass",$array['password']);   echo "<meta http-equiv='refresh' content='0;url=Default.php'/>"; } }$close=$db->close();?>
我的注册页面密码用MD5加密后存入数据库,登陆页面是把获得的密码MD5后与数据库比较..
可是登陆的密码就是不对....登陆的密码所打印的字符串比原来注册时候插入数据库的字符串总是在最后多出一段..导致验证不能通过
..这是为什么???我数据库和页面的编码都是GB2312的....
那位大侠知道哈....

解决方案 »

  1.   

    在二个页面的 $pass=md5($apass); 下面  echo $pass;
    密码应该是一样的才对吧
    登录页面
    include ("../mysql/php_mysql.php");
    session_start();$name=$_POST[name];
    $apass = str_replace(" ","",$_POST[password]);
    $pass=md5($apass);$check=$_POST[check];
    $sql="select * from admin where name='$name'";$query=$db->query($sql);$row=$db->num_rows($query);if($row==0) echo "<script>alert('对不起,该账号不存在,登陆失败。');history.go(-1);</script>";else {
        $query=$db->query($sql);  //是不是应该有个这个
        $array=$db->fetch_array($query);        if($array[password]!=$pass){         echo "<script>alert('对不起,密码错误,登陆失败。');history.go(-1);</script>";        }else if($check!=$_SESSION[checks]){
                echo "<script>alert('对不起,验证码错误,登陆失败。');history.go(-1);</script>";    }else{              setcookie("id",$array['id']);
                  setcookie("name",$array['name']);
                  setcookie("pass",$array['password']);              echo "<meta http-equiv='refresh' content='0;url=Default.php'/>";        } }$close=$db->close();
      

  2.   

    什么意思??我第二个页面就是 MD5加密后 再与数据库查处的密码比较的、、
    可是登陆的密码MD5加密后 和数据库的不一样了,在后面多出了一串字符..
      

  3.   

    你要确定你的数据库的字段的长度,是不是长度过小导致被截了?应该起码varchar(32)