Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/05/2011, 18h21   #1
Candidat au titre de Membre du Club
 
Inscription : juin 2008
Messages : 18
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 18
Points : 14
Points : 14
Par défaut création d'un livre d'or - pb alimentation bd avec insert into

bonjour

voici le code php afin d'alimenter les données saisies par les personnes qui veulent laisser un message sur le livre d'or
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 
<?php
 
$connexion = mysql_connect("127.0.0.1","root","") or die('erreur de connexion');
 
mysql_select_db("livre_dor",$connexion);
 
 if (isset ($_POST['Envoyer'])AND (!empty($_POST['pseudo']) AND !empty($_POST['email']) AND !empty($_POST['comment']))){
 
 //on récupère les valeurs entrées par l'utilisateur
 $pseudo= mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])); 
//on utilise mysql_real_escape_string et htmlspecialchars par mesure de sécurité
 $email = mysql_real_escape_string(htmlspecialchars($_POST['email']));
 $comment = mysql_real_escape_string(htmlspecialchars($_POST['comment']));
 $comment = nl2br($comment); //pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br />
 
  connectMaBase();
 
  ini_set('mysql.trace_mode', true); // j'ai mis cela pour trouver mon erreur mais rien  pas d'erreur
 
  $sql = "INSERT INTO livredor(id, pseudo, email, comment) VALUES ('','".$pseudo."','".$email."','".$comment."');";
 
  echo $sql; //j'ai mis cette ligne pour afficher le resultat de la requête mais là encore cela ne s'affiche pas
 
  mysql_query($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
 
 
  if (!mysql_query($sql,$connexion)){
        die ('impossible d ajouter un enregistrement:' .mysql_error());
        }
        else {
        echo "l'enregistrement est ajouté";
        }
  }
je n'ai aucun message d'erreur de script, j'arrive sur ma page, j'entre un pseudo, un email et un commentaire, et lorsque je vais voir ma table, elle est vide, rien de rien

cela fait deux jours que je suis dessus, je fais le tour des forums pour voir si je pouvais corriger mon erreur et rien

si je fais un test de connexion, il me met bien : connexion réussie

donc la connexion est bonne


si quelqu'un pouvait m'aider ce serait sympa

merci
nadège23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2011, 18h49   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Si tu n'obtiens rien, il est très problable que ta condition ligne 8 ne passe pas.
Controle ce que contient ton $_POST
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2011, 19h00   #3
Candidat au titre de Membre du Club
 
Inscription : juin 2008
Messages : 18
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 18
Points : 14
Points : 14
Citation:
Envoyé par sabotage Voir le message
Si tu n'obtiens rien, il est très problable que ta condition ligne 8 ne passe pas.
Controle ce que contient ton $_POST
je viens de tester mon $_POST['Envoyer']

lorsque j'ouvre ma page livre_d_or.php j'ai un message d'erreur car la variable est null par contre lorsque je saisie le pseudo, l'email, le message, et que je clique sur ok

le contenu de la variable est bien ok
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 <?php
$connexion = mysql_connect("127.0.0.1","root","") or die('erreur de connexion');
mysql_select_db("livre_dor",$connexion);

$Envoyer = $_POST['Envoyer']; //ligne que je viens d'insérer pour vérifier le contenu de ma variable
echo $Envoyer; //là le retour de donne "ok" sur ma page donc la variable est bien alimentée


 if (isset ($_POST['Envoyer'])AND (!empty($_POST['pseudo']) AND !empty($_POST['email']) AND !empty($_POST['comment']))){
 //on récupère les valeurs entrées par l'utilisateur
 $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])); //on utilise mysql_real_escape_string et htmlspecialchars par mesure de sécurité
 $email = mysql_real_escape_string(htmlspecialchars($_POST['email']));
 $comment = mysql_real_escape_string(htmlspecialchars($_POST['comment']));
 $comment = nl2br($comment); //pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br />

  connectMaBase();
  ini_set('mysql.trace_mode', true);
  $sql = "INSERT INTO livredor(id, pseudo, email, comment) VALUES ('','".$pseudo."','".$email."','".$comment."');";
  echo $sql;
  mysql_query($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
  
  
  if (!mysql_query($sql,$connexion)){
        die ('impossible d ajouter un enregistrement:' .mysql_error());
        }
        else {
        echo "l'enregistrement est ajouté";
        }
  }
nadège23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2011, 19h21   #4
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Contrôle ce que contient ton $_POST en entier et regarde si tu passes ou non la premiere condition.

Au passage, utilise htmlspecialchars() pour l'affichage, pas pour l'insertion en base.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2011, 20h19   #5
Candidat au titre de Membre du Club
 
Inscription : juin 2008
Messages : 18
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 18
Points : 14
Points : 14
Citation:
Envoyé par sabotage Voir le message
Contrôle ce que contient ton $_POST en entier et regarde si tu passes ou non la premiere condition.

Au passage, utilise htmlspecialchars() pour l'affichage, pas pour l'insertion en base.
J'ai trouvé mon erreur, cela venait de la partie <form> </form>

<form method="POST" action="http://127.0.0.1:8888/pageweb_sylvie/livre_d_or.php">
<p>
<label for="pseudo">Pseudo : </label>
<input type = "text" name = "pseudo" size = "20" maxlength = "40">
<br>

<label for="email">email : </label>
<input type="mail" name = "email" size ="20" maxlength="60">
<br>
<label for="comment">Votre message :</label><br />
<textarea name="comment" rows="8" cols="35"></textarea><br />
<input type="submit" name="Envoyer" value="OK">
</p>
</form>

pour la partie textarea j'avais indiqué name="commentaires" et dans les variables du php j'indiquais "comment" qui est le nom de mon champ dans ma table sql.

Problème résolu

mon code php était juste

merci quand même.
nadège23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h54.


 
 
 
 
Partenaires

Hébergement Web