Php 空后错误
我需要让脚本检测post是否为空,以便它将post错误。 现在,当我的帖子为空时,它会发布所有结果 我的代码Php 空后错误,php,jquery,pdo,Php,Jquery,Pdo,我需要让脚本检测post是否为空,以便它将post错误。 现在,当我的帖子为空时,它会发布所有结果 我的代码 $query = $db->prepare("SELECT `media`.`id`, `media`.`title` FROM `media` WHERE `media`.`title` LIKE :keywords"); $keywords = (isset($_POST['keywords']) === true) ? $_POST['keywords'] : ''; $q
$query = $db->prepare("SELECT `media`.`id`, `media`.`title` FROM `media` WHERE `media`.`title` LIKE :keywords");
$keywords = (isset($_POST['keywords']) === true) ? $_POST['keywords'] : '';
$query->bindValue(':keywords', '%' . $keywords . '%', PDO::PARAM_STR);
$arr = array();
$query->execute();
while( $row = $query->fetch(PDO::FETCH_ASSOC) ) {
$arr[] = array( "id" => $row["id"], "title" => $row["title"]);
}
echo json_encode( $arr );
?>
还有我的剧本
$(document).ready(function(){
$(".search").click(function(){
$.post("search.php", { keywords: $(".keywords").val() }, function(data){
$("div#search").empty()
$.each(data, function(){
$("div#search").append("- <a href='#?id=" + this.id + "'>" + this.title + "</a><br>");
});
}, "json");
});
});
$(文档).ready(函数(){
$(“.search”)。单击(函数(){
$.post(“search.php”,{keywords:$(“.keywords”).val()},函数(数据){
$(“div#search”).empty()
$.each(数据,函数(){
$(“div#search”)。追加(“-
”);
});
}“json”);
});
});
添加以下内容:
if(empty( $keywords ) ) {
// Show some error
}
else{
// your search code here ...
}
但最好在发布前也在JS中进行检查验证应始终在服务器端进行。JS也可能很好,但你永远不应该依赖客户端的友好和防止你的“坏”行为。我没有说他应该依赖它,但我的意思是额外这样做是为了避免服务器端处理,没有任何理由。这很公平。你的粗体大文本上写着“它是首选的”,而不是这样的;您可能需要编辑您的答案,以防有人误解。:)我在粗体部分添加了“too”:D:DCan我可以说,每当我看到像
isset($\u POST['keywords'])===true这样的结构时,我都会畏缩。人们似乎害怕任何不包含关键字true
和false
的布尔表达式……这就是php。据我们所知,isset
在布尔上下文中强制转换为香蕉。@Eevee