php - 如何使我的表单输入在使用空查询输入时不返回任何结果?

标签 php javascript mysql html

我希望我的表单输入不要对空搜索起作用。

我什至不希望它进入结果页面并显示错误消息。

所以

如何才能在单击提交/按 Enter 或按空格键然后 Enter 时什么都不会发生?

这可以用 JavaScript 完成吗?

HTML:

 <form action="search.php" method="post">
 Search: <input type="text" name="term" /><br />
 <input type="submit" name="submit" value="Submit" />
 </form>

PHP:

<?php

$conn = mysql_connect("", "", "")
or die    (mysql_error());
mysql_select_db("testable");

if (!$conn) {
echo "Unable to connect to DB: " . mysql_error();
exit;
}

$term = addcslashes($term,'%_');

$term = "%" . $_POST["term"] . "%";



if (!mysql_select_db("weezycouk_641290_db2")) {
echo "Unable to select mydbname: " . mysql_error();
exit;
}

**if (isset($_POST['term']) && ($_POST['term'] !== '')) {
$term = $_POST['term'];
$safe_term = mysql_real_escape_string($term);
$sql = "SELECT FName,LName,Phone
FROM   testable
WHERE  FName LIKE '%". mysql_real_escape_string($term) ."%'";
$result = mysql_query($sql);
}**


if (!$result) {
echo "Could not successfully run query ($sql) from DB: " . mysql_error();
exit;
}

if (mysql_num_rows($result) == 0) {
echo "No rows found, nothing to print so am exiting";
exit;
}


while ($row = mysql_fetch_assoc($result)) {
echo '<br><br><div class="data1">';
echo htmlentities($row["FName"]);
echo '</div><br><div class="data2">';
echo htmlentities($row["LName"]);
echo '</div><br><div class="data3">';
echo htmlentities($row["Phone"]);
echo '</div>';
}

mysql_free_result($result);

?>

最佳答案

防止通过 JS 提交表单是一个快速解决方案,但您仍然需要处理有人仍然可以提交空白搜索的可能性:

if (isset($_POST['term']) && ($_POST['term'] !== '')) {
   $term = $_POST['term'];
   $safe_term = mysql_real_escape_string($term);
   $sql = "...."
   blah blah blah
}

注意mysql_real_escape_string()的使用。这是 mysql 查询中字符串的安全方法。 addslashes 是一个可怕的 splinter 的垃圾,永远不应该用于 SQL 注入(inject)预防。

关于php - 如何使我的表单输入在使用空查询输入时不返回任何结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8330132/

相关文章:

mysql - 查询以 & 开头的值 - 在 Oracle 中有效但在 MySQL 中无效?

php - 在 Linux 服务器上使用 PHP 上传文件不起作用

javascript - 类别轴交互

javascript - 在某些单选按钮选择条件下启用禁用的字段集

javascript - Angular UI - 模态高度相对于窗口高度

mysql - 从最近的记录中选择 *

php - 如何将此函数转换为laravel函数

php - 如何禁用该复选框并使用 php 更新数据库

php - 选择 ID,以便您可以创建动态查询

PHP 不使用 POST 或 GET 查询从 MySQL 数据库中读取。(空白输出)