我试图自己解决这个问题但是我被困了。我在博客网站上使用php工作,我遇到了一个错误,我想在文章中添加评论:
未定义的变量:第73行的C:\ wamp \ www \ entertheletter.dev \ fonctions \ blog.php中的查询
我不会在不起作用的地方停下来。当我点击提交按钮时会发生这种情况。这是我的代码:
Php表示错误的函数:
function recherche(){
global $bdd;
extract($_POST);
$recherche = $bdd->prepare("SELECT id, titre, accroche, publication, image FROM articles WHERE titre LIKE :query OR contenu LIKE :query ORDER by id DESC");
$recherche->execute([
"query" => '%' . $query . '%'
]);
$recherche = $recherche->fetchAll();
return $recherche;
}
评论功能:
function commenter() {
if(isset($_SESSION["membre"])) {
global $bdd;
$erreur = "";
extract($_POST);
if(!empty($commentaire)) {
$id_article = (int)$_GET["id"];
$commenter = $bdd->prepare("INSERT INTO commentaires(id_membre, id_article, commentaire) VALUES(:id_membre, :id_article, :commentaire)");
$commenter->execute([
"id_membre" => $_SESSION["membre"],
"id_article" => $id_article,
"commentaire" => nl2br(htmlentities($commentaire))
]);
}
else
$erreur .= "Vous devez écrire du texte";
return $erreur;
}
}
由于
答案 0 :(得分:0)
我认为您不应将extract
用于$_POST
或$_GET
,因为如果$_POST
中没有密钥,那么PHP将抛出一个未定义的错误。此外,您需要检查$_POST
中的数据是否存在。
而不是直接使用extract($_POST)
使用$_POST
,
function recherche(){
global $bdd;
if(isset($_POST['query'])){
$recherche = $bdd->prepare("SELECT id, titre, accroche, publication, image FROM articles WHERE titre LIKE :query OR contenu LIKE :query ORDER by id DESC");
$recherche->execute([
"query" => '%' . $query . '%'
]);
$recherche = $recherche->fetchAll();
return $recherche;
}
}