PHP SQL UPDATE问题和未定义的变量

我正在寻求您的帮助以解决两个我无法解决的问题。第一个并不是真正的问题,而是相当烦人:


?php

session_start();

 $_SESSION['pseudo'];

 $CAT="";

//tentative de connexion à la base de donnée 

try

{

    $bdd = new PDO('mysql:host=localhost;dbname=espace_membre;charset=utf8', 'root', '');

}

catch (Exception $e)

{

        die('Erreur : ' . $e->getMessage()); //message d'erreur au cas où la connexion échoue

}

if(isset($_SESSION['id']))

{   //echo "ok";


 }

else

{

  //echo "lol";

  header('location:connexion.php');

if(isset($_GET['id']) AND $_GET['id'] > 0)

{

  $getid=intval($_GET['id']);

  $requser= $bdd -> prepare('SELECT * FROM membres WHERE id= ?');

  $requser->execute(array($getid));

  $userinfo=$requser->fetch();

}

function test_input($data) {

            $data = trim($data);

            $data = stripslashes($data);

            $data = htmlspecialchars($data);

            return $data;

         }

$CAT = test_input($_POST["categorie"]);

$TYPE= test_input($_POST["typeannonce"]);

$WILA= test_input($_POST["wilaya"]);

$fk_membres_id=$_SESSION['id'];

 if(isset($_POST['revenirprofil']))

 {

  header("Location: profil.php?id=".$_SESSION['id']);

 }

if(isset($_POST['article_titre']) AND isset($_POST['article_description']) AND isset($_POST['categorie']) AND isset($_POST['wilaya']) AND isset($_POST['typeannonce']) )


好吧,该页面显示了三个错误:

注意:未定义索引:第 44 行 C:\wamp\www\projet3\formulaireajout.php 中的 categorie 注意:未定义索引:第 45 行 C:\wamp\www\projet3\formulaireajout.php 中的 typeannonce 注意:未定义索引:wilaya在 C:\wamp\www\projet3\formulaireajout.php 第 46 行

但令人惊讶的是,代码仍然有效,并且在完成并将表单发送到数据库后,这 3 个通知消失了。除了神秘的 3 个错误(这些错误并不是真正的错误)之外,一切都运行良好

我的第二个问题可能看起来像是 SQL 查询中的输入错误,但仍然无法找到问题所在。


慕妹3242003
浏览 133回答 1
1回答

杨__羊羊

这是因为无论您是否提交了表单,您的 php 代码都会在页面加载后立即执行。在您尚未提交表单之前,$_POST 全局变量无权访问 categorie、typeannoance 和 wilaya。当您提交它时,这些值可以通过$_POST 全局变量访问,这就是这些通知消失的原因。尝试首先使用isset()函数检查它们的存在,这应该可以解决您的问题
打开App,查看更多内容
随时随地看视频慕课网APP