我的网站上有一些代码检查数据库中是否存在输入字段的输入值,然后尽可能简单地输出结果。
不幸的是,如果发送了错误的值,它不会给我“找不到结果”。1 - 我该如何解决这个问题?没有错误消息或其他任何内容,只有一个白页。
2 - 另一个问题:公众是否可以使用这种类型的输入字段检查来获取我的数据库登录凭据,并使用单独的 search.php 将登录凭据放在文件顶部?
3 - 我怎样才能用我的 php 代码保护这个检查免受任何主要攻击?我认为 SQL 注入已经被阻止了。
谢谢
索引.php:
<form action="search.php" method="Post">
<input type="text" name="query" />
<input type="submit" value="Search" />
</form>
搜索.php:
<?php
$mydatabase=mysqli_connect("localhost", "root", "") or die("Error connecting to database: ".mysql_error());
mysqli_select_db($mydatabase, "mydb") or die(mysql_error());
$query = $_POST['query'];
$min_length = 1;
if(strlen($query) >= $min_length){
$query = htmlspecialchars($query);
$query = mysqli_real_escape_string($mydatabase, $query);
$raw_results = mysqli_query($mydatabase, "SELECT * FROM mytable WHERE (`title` LIKE '%".$query."%')") or die("mysql_error()");
while($results = mysqli_fetch_array($raw_results)){
if (empty($results)) {
echo 'No results found';
} else {
echo "<p><h3>".$results['title']."</h3>".$results['name']."</p>";
}
}
} else{
echo "Minimum length is ".$min_length;
}
?>
元芳怎么了