Probleme php sql (insert)

Résolu/Fermé
Profil bloqué - 31 juil. 2009 à 18:39
mouf13
Messages postés
142
Date d'inscription
mardi 20 juin 2006
Statut
Membre
Dernière intervention
22 février 2011
- 31 juil. 2009 à 19:45
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.

11 réponses

mouf13
Messages postés
142
Date d'inscription
mardi 20 juin 2006
Statut
Membre
Dernière intervention
22 février 2011
17
31 juil. 2009 à 19:01
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
Profil bloqué
31 juil. 2009 à 19:08
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
mouf13
Messages postés
142
Date d'inscription
mardi 20 juin 2006
Statut
Membre
Dernière intervention
22 février 2011
17
31 juil. 2009 à 19:11
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
Profil bloqué
31 juil. 2009 à 19:13
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mouf13
Messages postés
142
Date d'inscription
mardi 20 juin 2006
Statut
Membre
Dernière intervention
22 février 2011
17
31 juil. 2009 à 19: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
Profil bloqué
31 juil. 2009 à 19:31
C'est génial je connaissais pas cette technique. Je te remercie beaucoup. A bientôt XD.
0
mouf13
Messages postés
142
Date d'inscription
mardi 20 juin 2006
Statut
Membre
Dernière intervention
22 février 2011
17
31 juil. 2009 à 19:32
if(empty($_COOKIE["ID_UTILISATEUR"]))
{
echo "Veuillez vous identifier";
}

ici je te conseil vivement l'utilisation des sessions
a+
0
Profil bloqué
31 juil. 2009 à 19:33
Peut tu m'expliquer en bref comment les utiliser?
0
mouf13
Messages postés
142
Date d'inscription
mardi 20 juin 2006
Statut
Membre
Dernière intervention
22 février 2011
17
31 juil. 2009 à 19:42
exemple exlpiquant une methode d'identification
https://forums.commentcamarche.net/forum/affich-8104631-identification
0
Profil bloqué
31 juil. 2009 à 19:42
Merci bien
0
mouf13
Messages postés
142
Date d'inscription
mardi 20 juin 2006
Statut
Membre
Dernière intervention
22 février 2011
17
31 juil. 2009 à 19:45
0