<center>
<?php
include("conn.php");
$name=$_POST['username'];
$passowrd=$_POST['password'];   $sql = "SELECT * FROM user WHERE username = '$name' and password='$passowrd'";
 $res = mysql_query($sql);
 $rows=mysql_num_rows($res);
    if($rows){
     setcookie("cookie", "ok");
       header("refresh:0;url=list.php");
   exit;
    }
    else echo "<script language=javascript>alert('用户名密码错误');history.back();</script>";
include("head.php");
if($_COOKIE['cookie']!='ok'){
?>
<form action="" method="post" name="myform" onsubmit="return Checklogin();">
  ID:<input type="text" name="username" /><br>
  PW:<input type="password" name="password" /> <input type="submit" name="submit" value="登陆"/>
  </form>
<?
}else{
?>
<a href='?out=login'>退出</a>
<?
}
?>
</center>
这是我的一个登录界面的代码,但是问题是每次一刷新就自动的弹出  用户名密码错误的对话框, 问一下这个怎么解决呢??

解决方案 »

  1.   

    这样如果用户名密码正确可以登录  但是还是老问题,自动弹出用户名密码错误的对话框。。
    <center><?php
    include("conn.php");
      if($_GET[out]){
       setcookie("cookie", "out");
        echo "<script language=\"javascript\">location.href='login.php';</script>";
      }
      $password=$_POST[pw];
      $username=$_POST[id];
      $sql="SELECT *  FROM  `user`  WHERE  `username` =  '$username'   AND  `password` =  '$password' ";
      $rew=mysql_query($sql);
      $pd=mysql_num_rows($rew);
      if($pd){
         setcookie("cookie", "ok");
           echo "<script language=\"javascript\">location.href='login.php';</script>";
      }
    else echo " <script language=javascript>alert('用户名密码错误');history.back(); </script>";
    include("head.php");
    if($_COOKIE['cookie']!='ok'){
    ?>
    <form action="" method="post" name="myform" onsubmit="return Checklogin();">
      用户名:<input type="text" name="id" /><br>
     密码:<input type="password" name="pw" /> <br>
     <input type="submit" name="submit" value="登陆"/>
     <nput type="submit" name="注册"  value="跳转" onclick="javascript:location='123.htm'"/>
      </form>
    <?
    }else{
    ?>
    <a href='?out=login'>退出</a>
    <?
    }
    ?></center>
    <SCRIPT language=javascript>
    function Checklogin()
    {
    if (myform.id.value=="")
    {
    alert("请填写登录名");
    myform.id.focus();
    return false;
    }
    if (myform.pw.value=="")
    {
    alert("密码不能为空");
    myform.pw.focus();
    return false;
    }
    }
    </SCRIPT>
    如果把else echo " <script language=javascript>alert('用户名密码错误');history.back(); </script>";去掉就可以登录。
      

  2.   


    if($_SERVER['REQUEST_METHOD']=='POST')
    {
        include("conn.php"); 
        $name=$_POST['username']; 
        $passowrd=$_POST['password']; 
        
        $sql = "SELECT * FROM user WHERE username = '$name' and password='$passowrd'"; 
        $res = mysql_query($sql); 
        $rows=mysql_num_rows($res); 
        
        if($rows)
        { 
            setcookie("cookie", "ok"); 
            header("refresh:0;url=list.php"); 
            exit; 
        } 
        else
        {
            echo " <script language=javascript>alert('用户名密码错误');history.back(); </script>"; 
            exit;
        }       
    }
    else if($_COOKIE['cookie']!='ok')

        echo '
            <form action="" method="post" name="myform" onsubmit="return Checklogin();"> 
                用户名: <input type="text" name="id" /> <br> 
                密码: <input type="password" name="pw" /> <br> 
                <input type="submit" name="submit" value="登陆"/> 
                <input type="submit" name="注册"  value="跳转" onclick="javascript:location=\'123.htm\'"/> 
            </form>'; 
    }
    else

        echo "<a href='?out=login'>退出 </a>";

    没验证代码是否可执行,按照你的代码分析,逻辑可能应该是这样的。
      

  3.   

    $sql="SELECT *  FROM  `user`  WHERE  `username` =  '".$username."'  AND  `password` =  '".$password."' "; sql这么写看看,我也是个菜菜鸟  
      

  4.   

    $name=$_POST['username']; 
    name要过滤不要直接POST,不然容易引起SQL注入问题。