Probleme php sql (insert)

Résolu
Profil bloqué -  
mouf13 Messages postés 151 Date d'inscription   Statut Membre Dernière intervention   -
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. mouf13 Messages postés 151 Date d'inscription   Statut Membre Dernière intervention   17
     
    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
  2. Profil bloqué
     
    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
  3. mouf13 Messages postés 151 Date d'inscription   Statut Membre Dernière intervention   17
     
    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
  4. Profil bloqué
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. mouf13 Messages postés 151 Date d'inscription   Statut Membre Dernière intervention   17
     
    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
  7. Profil bloqué
     
    C'est génial je connaissais pas cette technique. Je te remercie beaucoup. A bientôt XD.
    0
  8. mouf13 Messages postés 151 Date d'inscription   Statut Membre Dernière intervention   17
     
    if(empty($_COOKIE["ID_UTILISATEUR"]))
    {
    echo "Veuillez vous identifier";
    }

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