#数据库名 db_admin 表内有 user and password
#login.php
<?php
session_start();
$submit=$_POST["a1"];
$username=$_POST["Username"];
$pwd=$_POST["Pwd"];
if($submit=="登陆")
{
$conn=mysqli_connect("localhost","root","122311620","db_admin");
if(empty($conn))
{
   die("数据库连接失败");
}
else
{   $conn->query('set names gb2312');
   $str="select * from user where 用户名='".$user."'and 密码='".$password."'";
   $result=$conn->query($str);
   $row=$result->fetch_row();
    if($row)
   {
   
    $_SESSION["Username"]=$user;
    $_SESSION["Passed"]=True;
    echo "<script>window.location.href='loginOK.php'</script>";
   }
      else
       {
       $msg="用户名或密码错误";
       $_SESSION['msg']=$msg;
      echo "<script>window.location.href='login1.php'</script>";
       }

}
?>#返回错误提示 
Fatal error: Call to a member function fetch_row() on a non-object in E:\myweb\denglu\login.php on line 17

解决方案 »

  1.   

    $result->fetch_row();
    $result应该是mysql_query()返回的资源吧,不知道你是怎么封装的,不过这只能作为一个参数而不像javascript那样。$conn->fetch_row( $result);
      

  2.   

    真是抱歉,还以为你是用的mysql函数呢,还没用过mysqli呢我还得翻翻手册呵呵
      

  3.   

    大家好,刚接触PHP,不是很懂,现在想让大家做一个login.php的验证,很希望能参考这类代码,一直疑惑不解#数据库名 db_admin 表内有 user and password(用户名和密码)#数据库连接名conn,成功创立了连接脚本#index.php<?php session_start();
    echo $_SESSION['msg']; 
    ?>
    <html>
    <head></head>
    <body>
    <form method="POST" action="login.php" name="send" onsubmit="return ChkFields()"><p align="center">用户名:&nbsp;<input type="text" name="Username"><a href=zhuce.php>注册用户</a></p>
    <p align="center">密&nbsp;码:&nbsp;<input type="password" name="Pwd"><a href=findpwd.php>忘记密码?</a></p>
    <p align="center"><input type="submit" value="登陆" name="a1"><input type="reset" value="重写" name="b2"></p></form><script language="javascript">
    function ChkFields(){
    if(document.send.Username.value==""){
       window.alert("请输入姓名")
       return false
    }
    if(document.send.Pwd.value==""){
       window.alert("请输入密码")
       return false
    }
    return true
    }
    </script>
    </body>
    </html>#希望验证成功,返回loginok.PHP#感谢大家!!
      

  4.   

    做了个小测试,代码没问题,是sql语句查询时出错了,所以导致返回的结果集错误
    我测试的时候
    字段名不匹配就会出现你看到的这种错误,但只要字段匹配就都不会报错,输出只会返回null
    因此这可能是你字段名的问题,请用英文为字段命名
      

  5.   

    $str="select * from user where 用户名='".$user."'and 密码='".$password."'";用中文做字段名?吃饱了撑着?
      

  6.   

    核心思路
    $sql = "SELECT * FROM USER WHERE username = '.$user.' AND password = '.$password.'";
    $result= mysql_query($sql);
    如果返回行数是1的话,就说明存在这个用户,是0的话说明不存在这个用户,提示用户名或密码错误。具体代码网上查,很多。
    有本书,Reilly.Learning.PHP.MySQL.and.JavaScript 有兴趣我发给你。
    [email protected]