Probleme php sql (insert) [Résolu/Fermé]

Signaler
-
mouf13
Messages postés
150
Date d'inscription
mardi 20 juin 2006
Statut
Membre
Dernière intervention
22 février 2011
-
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.

12 réponses

Messages postés
150
Date d'inscription
mardi 20 juin 2006
Statut
Membre
Dernière intervention
22 février 2011
16
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']

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 :).
Messages postés
150
Date d'inscription
mardi 20 juin 2006
Statut
Membre
Dernière intervention
22 février 2011
16
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

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>

<?
}
?>
Messages postés
150
Date d'inscription
mardi 20 juin 2006
Statut
Membre
Dernière intervention
22 février 2011
16
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.'"/>

C'est génial je connaissais pas cette technique. Je te remercie beaucoup. A bientôt XD.
Messages postés
150
Date d'inscription
mardi 20 juin 2006
Statut
Membre
Dernière intervention
22 février 2011
16
if(empty($_COOKIE["ID_UTILISATEUR"]))
{
echo "Veuillez vous identifier";
}

ici je te conseil vivement l'utilisation des sessions
a+

Peut tu m'expliquer en bref comment les utiliser?
Messages postés
150
Date d'inscription
mardi 20 juin 2006
Statut
Membre
Dernière intervention
22 février 2011
16
exemple exlpiquant une methode d'identification
http://www.commentcamarche.net/forum/affich-8104631-identification

Merci bien
Messages postés
150
Date d'inscription
mardi 20 juin 2006
Statut
Membre
Dernière intervention
22 février 2011
16