Heim > Backend-Entwicklung > PHP-Tutorial > php编撰登录界面时出错Resource id #4

php编撰登录界面时出错Resource id #4

WBOY
Freigeben: 2016-06-13 10:28:55
Original
1155 Leute haben es durchsucht

php编写登录界面时出错Resource id #4

PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->    session_start();    require "connect.inc.php";    if($_GET["action"]=="login"){        $UserName=$_POST["UserName"];      //从表单获取用户名        $Password=md5($_POST["Password"]); //从表单获取密码        $authority=$_POST["authority"];    //从表单获取单选框值                //若单选项值为admin,即管理员身份        if($authority=="admin"){                //sql命令        $sql="select * from  admin_login where UserName='{$UserName}' and Password='{$Password}'";            $result=mysql_query($sql);                         //尝试输出$result,结果返回Resource id #4,是出错吗?                        echo $result;            if(mysql_fetch_array($result)>0){                 $row=mysql_fetch_assoc($result);                $_SESSION["UserName"]=$UserName;                $_SESSION["islogin"]=1;                 header("Location:index.php");            }            else{                echo '<font color="red" size="14px">用户名或密码错误</font>';        }?>
Nach dem Login kopieren


用以上代码处理登录时总是报错,求大神指点!!急!!

------解决方案--------------------
没有出错。mysql_query()返回的是一个查询结果集资源标识符(可以看作是对一个内存指针)。
你的代码的问题在于判断结果集是否为空的方法有误,因为如果查询返回了数据,调用mysql_fetch_array()方法后,指针就移动的(每次调用返回当前指针指向的记录,然后指针指向下一条记录)。

判断是否为空集的方法是使用mysql_num_rows():
PHP code
//if(mysql_fetch_array($result)>0){if (mysql_num_rows($result) > 0) {...<br><font color="#e78608">------解决方案--------------------</font><br>mysql_query()成功时返回的是资源类型变量,查询失败返回布尔类型的false。echo用来输出一个字符串,而你要输出的变量需要被强制类型转换为字符串后才行,因此得到 Resource id #4<br><br>mysql_fetch_array($result) 返回的是一个数组或布尔值false,它也不能直接和数字比较,需要先强制类型转换为数值。而你又在之后使用了类似功能的 mysql_fetch_assoc(),错误百出<br><br>如果是哪个教程上教的,那么你最好尽快放弃这本教程。如果是你自己随意写的,那么先看看官方手册上的基础,关于类型部分,以及mysql系列函数的说明<br>http://www.php.net/manual/zh/language.types.intro.php<br>http://www.php.net/manual/zh/book.mysql.php<div class="clear">
                 
              
              
        
            </div>
Nach dem Login kopieren
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage