代码如下:
表结构
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中正式移除了。