首页 > php写了个登陆,服务器报错500.

php写了个登陆,服务器报错500.

代码如下:
表结构

id         int 
phone      char
password   char

Conn.php

<?php
    //设置数据库变量
    $db_host   = 'localhost';  //数据库主机名称,一般都为localhost
    $db_user   = 'root';        //数据库用户帐号,根据个人情况而定
    $db_passw = '123456';   //数据库用户密码,根据个人情况而定
    $db_name  = 'db';         //数据库具体名称
    
    //连接数据库
    $conn = mysql_connect($db_host,$db_user,$db_passw) or die ('数据库连接失败!</br>错误原因:'.mysql_error());
    //设置字符集,如utf8和gbk等
    mysql_query("set names 'utf8'");
    //选定数据库
    mysql_select_db($db_name,$conn) or die('数据库选定失败!</br>错误原因:'.mysql_error());
    //执行SQL语句(查询)
    //$result = mysql_query($sql) or die('数据库查询失败!</br>错误原因:'.mysql_error());
?>

login.php

<?php 
        header('Content-Type:application/json;charset=utf-8');
        //判断请求类型
        if (isset($_POST['phone']) && isset($_POST['password'])) {
            // 获取POST请求参数
            $accessType = '[POST]';
            $userPhone = $_POST['phone'];
            $userPassword = $_POST['password'];
        } else {
            echo json_encode(array('result'=>'非法请求'));
            return false;
        }
        
        //创建SQL语句
        $sql="SELECT * FROM lms_users WHERE phone ='".$userName."' AND `password` = '".$userPassword."';";
    
        //调用conn.php文件进行数据库操作
        require('Conn.php');
        global $conn;
        
        $result=mysql_query($sql,$conn) or die('数据库查询失败!错误原因:'.mysql_error());
        
        $flag=0;
        while(!!$item=mysql_fetch_assoc($result)){
            $flag++;
        };
        //实际只能返回一条结果.
        if ($flag >= 1) {
            $result = array(
                            echo json_encode($row);
                           );
            echo json_encode($result);
            exit();
        }else {
            $result = array(
                            'id' => 0
                            );
            echo json_encode($result);
        }
        return true;
?>

login.html

<!DOCTYPE html>
<html >
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
    <title>PHP 测试</title>
</head>
<body>
    
<p></p>
<h1>登陆</h1>
<hr />
<form action="login.php" method="post">
    <p>姓名: <input type="text" name="phone" /></p>
    <p>密码: <input type="password" name="password" /></p>
    <p><input type="submit" /></p>
</form>

</body>
</html>

有语法错误吧,

$result = array(
    echo json_encode($row);
);
                       

这里是错误的。其实可以打开服务器上详细错误的输出,这样可以看到500错误具体的出错原因


开发的话要打开php的错误显示(在php.ini中搜索配置display_errors=On),才能知道具体是啥错误。

另外,建议不要使用mysql相关函数了,用mysqli相关函数或对象代替,mysql相关函数早就不推荐使用,并在最新的PHP7中正式移除了。

【热门文章】
【热门文章】