Probleme php sql (insert)

Résolu
Bonjour a tous,

J'ai un script, qui me pose problème.

Le principe de mon script est le suivant. J'ai un formulaire. Lorsque l'utilisateur appuis sur "envoyer", une requête SQL s'exécute.

if(($_POST["BT_Envoyer"]))
{

mysql_query("
INSERT INTO commentaires(
CONTENT_COMM
, NO_NEWS
, AUTEUR_COMM
, TIME_COMM
, DATE_COMM
)
VALUES(
'" . $_POST["TB_CONTENT_COMM"] . "'
, '" . $_GET["id"] . "'
, '" . $_COOKIE["NOM_UTILISATEUR"] . "'
, CURTIME( )
, CURDATE( )
)
") or die('Erreur de connexion '.mysql_error()) ;

}

Avec le if, ma requete ne fonctionne pas bien, une valeur sur les 5 ne fonctionne pas. C'est le get id, il m'insert la valeur 0 dans mon champs.
Sans le If, tout fonctionne bien. Je ne comprend pas pourquoi.
Configuration: Windows XP
Safari 530.5

11 réponses

  1. salut

    if(($_POST["BT_Envoyer"])) ici ta double parenthèse est inutile et dans un soucis de proprete je te conseil
    if(isset($_POST['BT_Envoyer']))

    Pour ton pb, a priori tu passes les infos en $_POST
    il semblerai donc que $_POST['id'] fonctionne mieux que $_GET['id']
    0
    1. Pour le double parenthèse ok, c'est plus propre sans.

      Mais mon problème n'est pas la :).

      Si je passe mon GET_ID en POST, je dois le faire par l'intermédiaire d'un formulaire. Ça marcherais problablement mais je dois récupère ma valeur depuis le barre d'adresse et je ne peux pas faire autrement.

      Puis c'est quand même étrange que mon IF bloque uniquement la valeur qui passe en GET.

      Bref, je suis tjr dans le brouillard :).
      0
      1. j'ai du mal a comprendre comment tu récuperes dans ce cas :
        '" . $_POST["TB_CONTENT_COMM"] . "'

        t'as fait les debug primaires avec print_r($_POST) si tu recupere les infos via un form en post ou print_r($_GET) si tu recupères les infos via l'url ou via un formulaire utilisant get.

        tu peux aussi faire un print_r($_REQUEST) qui combine les $_GET et $_POST
        0
        1. Tu comprendrais peut être mieux :

          <? include("fonction.php");
          connect_mysql();

          if(empty($_COOKIE["ID_UTILISATEUR"]))
          {
          echo "Veuillez vous identifier";
          }
          else
          {
          // Création de la news
          if(($_POST["BT_Envoyer"]))
          {

          mysql_query("
          INSERT INTO commentaires(
          CONTENT_COMM
          , NO_NEWS
          , AUTEUR_COMM
          , TIME_COMM
          , DATE_COMM
          )
          VALUES(
          '" . $_POST["TB_CONTENT_COMM"] . "'
          , '" . $_GET["id"] . "'
          , '" . $_COOKIE["NOM_UTILISATEUR"] . "'
          , CURTIME( )
          , CURDATE( )
          )
          ") or die('Erreur de connexion '.mysql_error()) ;

          }
          mysql_close();
          $idnews = $_GET["id"];
          echo $idnews;
          ?>

          <html lang="fr" xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml">
          <head>
          <title>Creer un commentaire</title>
          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
          </head>
          <body>
          <form action="http://<?= $_SERVER["SERVER_NAME"] . $_SERVER["SCRIPT_NAME"]; ?>" method="post">
          <p>
          Commentaire : <input type="text" name="TB_CONTENT_COMM" ;"/>
          </p>
          <p>
          <input type="submit" name="BT_Envoyer" value="Envoyer" />
          </p>
          <?
          //Affichage du lien une fois le formulaire envoyé
          if(isset($_POST["BT_Envoyer"]))
          {
          ?>
          <a href="index.php">Retour a l'index</a>
          <?
          }
          ?>
          </form>
          </body>
          </html>

          <?
          }
          ?>
          0
          1. ben oui effectivement a aucun moment tu fait passer un champs de type id
            il manque dans ton formulaire un champ hidden contenant la valeur de l id de la news. a ce moment la tu pourra la recupere via $_POST['id']

            ex <input type="hidden" name="id" value="'.$id_news.'"/>
            0
            1. C'est génial je connaissais pas cette technique. Je te remercie beaucoup. A bientôt XD.
              0
              1. if(empty($_COOKIE["ID_UTILISATEUR"]))
                {
                echo "Veuillez vous identifier";
                }

                ici je te conseil vivement l'utilisation des sessions
                a+
                0
                1. Peut tu m'expliquer en bref comment les utiliser?
                  0