我正在尝试检查PHP和MySQL的给定信息是否正确! (对于android项目)但是当我发送它们并且我尝试使用POST方法并在我的数据库中比较它们时,POST方法总是返回没有信息已经发送。 所以这是我的代码:
<?php
$mysqli = new mysqli("localhost", "root", "", "hochschule");
/* verify connection */
if (mysqli_connect_errno()) {
printf("connection failed : %s\n", mysqli_connect_error());
exit();
}
/* recover data */
$benutzername = $mysqli->real_escape_string(isset($_POST['PARAM_LOGIN']));
$passwort = $mysqli->real_escape_string(isset($_POST['PARAM_PASSWORT']));
$result = $mysqli->query("SELECT COUNT(*) FROM user WHERE benutzername ='$benutzername' AND passwort='$passwort'");
$row = $result->fetch_row();
if($row[0] !=0) {
printf("true");
}else
printf("false");
/* Closing the connection */
$mysqli->close();
?>
我使用PHP 5.6和MYSQL 5.7,我在谷歌浏览器中使用了DHC插件来测试PHP脚本。
注意:
我认为这是一个兼容性问题,因为我使用的是PHP 5.6和MYSQL 5.7,而且这个代码我用它来用于早期项目以及早期版本的PHP(5.5)和MYSQL(5.6),当时它运行良好。
谢谢你的帮助。
答案 0 :(得分:1)
问题是isset只返回一个布尔值(true或false) - 而不是参数的值。
所以你想要这样的东西:
/* recover data */
$benutzername = null;
$passwort = null;
if(isset($_POST['PARAM_LOGIN']))
$benutzername =$mysqli->real_escape_string($_POST['PARAM_LOGIN']);
if(isset($_POST['PARAM_PASSWORT'])
$passwort = $mysqli->real_escape_string($_POST['PARAM_PASSWORT']);