login.php内容如下:
<?
error_reporting(0);
$mysql_servername = "localhost"; 
$mysql_username = "root"; 
$mysql_password =""; 
$mysql_database ="peng"; 
mysql_connect($mysql_servername , $mysql_username , $mysql_password);
mysql_select_db($mysql_database); 
$name=$_POST['name'];
$passowrd=$_POST['password'];if ($name && $passowrd){
 $sql = "SELECT * FROM liuyanban WHERE name = '$name' and password='$passowrd'";
 $res = mysql_query($sql);
 $rows=mysql_num_rows($res);
  if($rows){
   header("refresh:0;url=a.htm");
   exit;
 }
 echo "<script language=javascript>alert('用户名密码错误');history.back();</script>";
}else {
 echo "<script language=javascript>alert('用户名密码不能为空');history.back();</script>";
}?>以下login.htm内容<html>
<body>
<form name="login" action="login.php" method=post>
用户名<input type=text name="name">
<p>密码<input type=password name="password">
<p>
<input name="log" type=submit value="登录">
</form>
</body>
</html> 为什么我运行的 时候都不让你输入账号和密码,直接提示‘用户名密码不能为空'啊
小弟刚刚自学啊,知道的 帮忙修改哈 哦
数据库的字段很简单 就是个ID ,用户名和密码  

解决方案 »

  1. 你不要直接运行login.php,按你的写法$name=$_POST['name'];
    $passowrd=$_POST['password'];
    如果不是error_reporting(0);会有警告提示的直接输入login.php访问,这两个变量导致$name && $passowrd 不真你应该访问login.htm,然后输入用户名密码,提交表单
      

  2. 确认你是PHP4还是5还是3。
    以上代码,PHP3有效。
      


  3. 直接输入login.php访问,这两个变量导致$name && $passowrd 不真能解释下 么  
      

  4. 直接访问\时
    $name=$_POST['name'];//无值
    $passowrd=$_POST['password'];//无值
    if ($name && $passowrd){//不成立}else{
    //这里就执行else了.
    }
    如果php和html混写:<?
    error_reporting(0);
    if(isset($_POST['post']) && $_POST['post']=="1"){
    $mysql_servername = "localhost";  
    $mysql_username = "root";  
    $mysql_password ="";  
    $mysql_database ="peng";  
    mysql_connect($mysql_servername , $mysql_username , $mysql_password);
    mysql_select_db($mysql_database);  
    $name=$_POST['name'];
    $passowrd=$_POST['password'];if ($name && $passowrd){
     $sql = "SELECT * FROM liuyanban WHERE name = '$name' and password='$passowrd'";
     $res = mysql_query($sql);
     $rows=mysql_num_rows($res);
      if($rows){
      header("refresh:0;url=a.htm");
      exit;
     }
     echo "<script language=javascript>alert('用户名密码错误');history.back();</script>";
    }else {
     echo "<script language=javascript>alert('用户名密码不能为空');history.back();</script>";
    }
    }else{
    ?>
    <html>
    <body>
    <form name="login" action="login.php" method=post>
    <input type=hidden name="post" value=1>
    用户名<input type=text name="name">
    <p>密码<input type=password name="password">
    <p>
    <input name="log" type=submit value="登录">
    </form>
    </body>
    </html>  
    <?php } ?>
      

  5. 从.html访问
    <form name="login" action="login.php" method=post>提交表单数据指定了 method="POST",目标网址 login.php这样, $_POST['name'] 才会有值直接输入http://domain/login.php,$_POST数组是空的,自然没有值,也不会执行if ($name && $passowrd)里的语句了
      

  6. <script language="JavaScript" >
    function Checklogin()
    {
    if(myform.users.value=="")
    {
    alert("请输入登陆名");
    myform.users.focus();
    return false;
    }
    if(myform.pw.value=="")
    {
    alert("请输入密码");
    myform.pw.focus();
    return false;
    }
    }
      </script>
      


  7. 这样的话,password和name照样传不进去啊?
      

  8. 刚刚学习中,也打算由JAVA变成PHP~~~~
      

  9. 用jquery $("input[type='text']").each(function(){
    if($(this).val()==""){
    alert('');
    }
    })
      


  10. 用函数验证也可以
    class CheckInput{
    private $name;
    private $pwd;
    function __construct($name,$pwd){
    $this->name=$name;
    $this->pwd=$pwd;
    }
    }
    function checkInput($name,$pwd){
    if(!isset($name)&&!isset($pwd)){
    alert();
    }
    else{
    }
    }
    $obj=new checkInput($_Post['username',$_POST['pwd']);
    $obj->checkInput();
      

  11. var_dump($name);
    var_dump($passowrd);
    看看值取到了没。
    楼主要学会调试代码,当你的代码出了问题时,你要一步步来调试,找出问题出在那个地方,
    再来判断是什么原因造成的
    if ($name && $passowrd)
      

类似问题 »