Transmission de variable à une bd
Hors lignePapy25 Le 22/11/2008 à 13:50 Profil de Papy25 Configuration de Papy25

Bonjour
Je suis débutant en PHP et je n'arrive pas à résoudre ce problème de transfert de variable d'un formulaire à ma bd; lorsque j'éxécute mon script j'accède à l'URL "file:///C:/wamp/www/transmettre.php.
De ce fait ma table "commentaire" n'enregistre pas les valeurs des variables "pseudo et message". Par conséquent ma requete reste vide.
Avez-vous une solution à me proposer ? Merci de votre aide!
Ci-dessous mon script:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>Essai</title>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
     </head>
     <style type="text/css">
     form
     {
     text-align: center;
     }
     
     </style>
     <body>
<h2>Transmettre</h2>
<form action="transmettre.php" method="post">
<p>
<input type="text" name="pseudo" /><br />
<input type="text" name="message" /><br />
<input type="submit" value="validez" />
</p>
</form>
<?php
if (isset($_POST['pseudo']) AND isset($_POST['message']))
{
     if ($_Post['pseudo'] !=NULL and $_POST['message'] !=NULL)
     {
mysql_connect("localhost", "root", "");     
mysql_select_db("essai");
mysql_query("INSERT INTO commentaire VALUES('', '$pseudo', '$message')");
mysql_close();
     }
}
?>
<p><strong><?php echo$donnees['pseudo']; ?></strong> : <?php echo $donnees['message'];?></p>
--
l'informatique peut rendre de grands services
Hors ligneTatave17 Le 23/11/2008 à 11:15 Profil de Tatave17 Configuration de Tatave17

Papi Bidouille
Bonjour Papy Doubiens

je viens de revoir ton programme pour qu'il fonctionne

attention quand tu écris $_Post['pseudo']  c'est $_POST['pseudo']
j'ai vérifié il fonctionne regarde le delta
si tu cherches a affiché une variable qui n'est pas initialiser tu auras des erreurs
je ne cherche pas à l'améliorer, mais à le faire fonctionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>Essai</title>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
     </head>
     <style type="text/css">
     form
     {
     text-align: center;
     }
     
     </style>
     <body> 
<h2>Transmettre</h2>
<form action="transmettre.php" method="post">
<p>
<input type="text" name="pseudo" /><br /> 
<input type="text" name="message" /><br />
<input type="submit" value="validez" />
</p>
</form>

<?php

if 
(isset($_POST['pseudo']) AND isset($_POST['message']))
{
         /*ton affichage je l'ai mis ICI*/    
          echo $_POST
['pseudo']."<br>";
          echo $_POST['message']; 
           
           if 
($_POST['pseudo'] !=NULL and $_POST['message'] !=NULL)
     {
                    $pseudo= $_POST['pseudo']['pseudo'];
                    $message=$_POST['message'];
                    mysql_connect("localhost", "root", "");     
                    mysql_select_db
("ess1");
                    //****Attention ******* *nom de la table(champ 1 , champ 2)
                    mysql_query("INSERT INTO commentaire (ch_pseudo,ch_message)VALUES( '$pseudo', '$message')"); 
                    mysql_close
();
     }
}
?>


@+
--
[couleur=#00CC66]N' oubliez pas de presser sur le bouton " Réponse accepté "à côté de la solution apportée si elle te convient[/couleur] [couleur=#0066FF]On aide plus un être en lui donnant de lui-même une image favorable qu'en le mettant sans cesse en face de ses défauts. "Albert Camus"[/couleur]
Hors ligneBrako Le 23/11/2008 à 11:48 Profil de Brako Configuration de Brako

Bonjour,

Juste une petite remarque, un  petit or die(mysql_error()) après la requête ça ferait pas de mal

Comme ça on cherche pas l'erreur pendant des heures pour pas grand chose ...  je parle de vécu là ....
--
Ce qui donne une éventuelle matière à suspecter une quelconque propagande ...
Hors lignePapy25 Le 25/11/2008 à 11:55 Profil de Papy25 Configuration de Papy25

Merci pour ton tuyau
j'ai rectifié mon script (voire ci-dessous) mais j'ai supprimé le ."<br>" because cela m'affichait mon script sur la page de réception "transmettre.php".
Lorsque je lance mon srcipt sur la page de réception j'ai l' URL "file:///C:/wamp/www/transmettre.php"
Je change alors cette adresse en :"http://localhost/transmettre.php"
Le message d'erreur suivant s'affiche:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\transmettre.php on line 42

Mon script
<h2>Transmettre</h2>
<form action="transmettre.php" method="post">
<p>
<label for="pseudo"> Votre pseudonyme :</label>
<input type="text" name="pseudo" /><br />
<label for="message"> Saisissez votre message :</label>
<input type="text" name="message" /><br />
<input type="submit" value="validez" />
</p>
</form>
<?php
if (isset($_POST['pseudo']) AND isset($_POST['message']))
{
     echo$_POST['pseudo'];
     echo$_POST['message'];
     
     if ($_POST['pseudo'] !=NULL and $_POST['message'] !=NULL)
     {
          $pseudo=$_POST['pseudo']['pseudo'];
          $message=$_POST['message'];
          mysql_connect("localhost", "root", "");     
          mysql_select_db("essai");
          mysql_query("INSERT INTO commentaire ('', '$pseudo', '$message')VALUES('$pseudo', '$message')")or diemysql_error() ;
          $reponse = mysql_query("SELECT * FROM transmettre")or die(mysql_error());
mysql_close();
     }
}
while ($donnees = mysql_fetch_array($reponse))
{
?>
<p><strong><?php echo$donnees['pseudo']; ?></strong> : <?php echo $donnees['message'];?></p>
<?php
}
?>
     </body>
</html>     

Merci encore de me venir en aide
--
l'informatique peut rendre de grands services
Hors ligneBrako Le 25/11/2008 à 12:55 Profil de Brako Configuration de Brako

bonjour,

Avec une erreur comme ça  je pense tout de suite à une chose : Peut être que la table transmettre est vide, donc la variable $reponse est vide, enfin le mysql_fecht_array() échoue logiquement.

tu peux vérifier que ta requête retourne bien des informations, comme ceci par exemple :




<?php

//si la requête n'est pas vide, on exécute la boucle 
if(mysql_numrows($reponse) != 0) 
{
while ($donnees = mysql_fetch_array($reponse))
{
?>
<p><strong><?php echo$donnees['pseudo']; ?></strong> : <?php echo $donnees['message'];?></p>
<?php
}

}
else
{
die(
'la table transmettre est vide');
}
?>


Je viens de voir que ta boucle while ou ta requête est mal placée dans ton script. La boucle while s'exécute même lorsque la requête n'est pas effectuée (dans le cas ou le formulaire n'a pas été validé par exemple)
--
Ce qui donne une éventuelle matière à suspecter une quelconque propagande ...
Hors ligneTatave17 Le 25/11/2008 à 14:22 Profil de Tatave17 Configuration de Tatave17

Papi Bidouille
Bonjour Papy25
tu regarde et tu l'adaptes
attention dans ma Bd "essai" ma table "commentaire" je met "ch_" pour mes champs

Attention a ce que tu ecris Pas bon l'avion or diemysql_error()






<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>Essai</title>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
     </head>
     <style type="text/css">
     form
     {
     text-align: center;
     }
     
     </style>
     <body> 
<h2>Transmettre</h2>
<h2>Transmettre</h2>
<form action="papy25.php" method="post">
<p>
<label for="pseudo"> Votre pseudonyme :</label>
<input type="text" name="pseudo" /><br />
<label for="message"> Saisissez votre message :</label>
<input type="text" name="message" /><br />
<input type="submit" value="validez" />
</p>
</form>

<?php

if 
(isset($_POST['pseudo']) AND isset($_POST['message']))
{
   $pseudo = $_POST['pseudo'];
   $message     = $_POST['message'];
          $dblink = mysql_connect("localhost", "root", "")or die("Impossible de se connecter : " . mysql_error());   
          mysql_select_db
("essai",$dblink);

   $sql="INSERT INTO commentaire (ch_id,ch_pseudo,ch_message) values( '','$pseudo', '$message')";
   $req = mysql_query($sql); 
   
      $reponse 
= mysql_query("SELECT * FROM commentaire ") or die('Erreur SQL !<br>'.mysql_error());
                    mysql_close($dblink);
  if (!$reponse=="")
  {
       while($donnees = mysql_fetch_assoc($reponse))
            {                                                  
?>
                 <p><strong><?php echo $donnees['ch_pseudo'] ?></strong> : <?php echo "   ".$donnees['ch_message']; ?></p>
<?php
            
}// fin while
  }// fin if
}// fin if

?>
</body>
</html>   
</body>
</html>
--
[couleur=#00CC66]N' oubliez pas de presser sur le bouton " Réponse accepté "à côté de la solution apportée si elle te convient[/couleur] [couleur=#0066FF]On aide plus un être en lui donnant de lui-même une image favorable qu'en le mettant sans cesse en face de ses défauts. "Albert Camus"[/couleur]
Hors lignePapy25 Le 26/11/2008 à 09:16 Profil de Papy25 Configuration de Papy25

Le Papy doubien te salue bien; merci encore de t'occuper de mon problème;
Pour faciliter la lecture de mes scripts il faudra m'expliquer comment indenter (rien ne fonctionne ou je n'ai rien compris)

J'ai appliqué ton script mais il ne fonctionne toujours pas !
Lorsque je l'éxécute, je vois apparaitre sur ma page cible " mysql_error(();mysql_close($blink);if($reponse=="")
                                  {while($donnees=mysql_fetch_assoc($reponse)){?> "

Malgré ce message si j'éxécute mon srcipt j'obtiens le message d'erreur suivant:
Parse error: syntax error,unexpected')in C:\wamp\www\transmettre.php on line 36

Qu'en penses-tu?
Merci encore pour ton aide!
--
l'informatique peut rendre de grands services
Hors ligneTatave17 Le 26/11/2008 à 10:38 Profil de Tatave17 Configuration de Tatave17

Papi Bidouille
Bonjour Papy25
Dans un premier temps : je viens de faire un copier coller, je n'est pas de PB!
je travaille avec EasyPHP 2.0.0.0
par contre:
A la ligne 17 j'ai mis "papy25.php" toi tu doit mettre "transmettre.php"
ma base de données s'appelle "essai"
ma table s'appelle "commentaire"
cette table 3 champs varchar(15)
ch_id, ch_pseudo, ch_message
par contre, lorsque tu fais un copier-coller, regarde si le code est exact
                                                 ou
alors tu m'envoies un courrier avec un email et je t'envoie le fichier

PS: pour la boucle "while"je viens de changer, je viens de mettre mas méthode



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > 
   <head> 
       <title>Essai</title> 
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
     </head> 
     <style type="text/css"> 
     form 
     { 
     text-align: center; 
     } 
      
     </style> 
     <body>  
<h2>Transmettre</h2> 
<h2>Transmettre</h2> 
<form action="papy25.php" method="post"> 
<p> 
<label for="pseudo"> Votre pseudonyme :</label> 
<input type="text" name="pseudo" /><br /> 
<label for="message"> Saisissez votre message :</label> 
<input type="text" name="message" /><br /> 
<input type="submit" value="validez" /> 
</p> 
</form> 

<?php 

if 
(isset($_POST['pseudo']) AND isset($_POST['message'])) 
{ 
   $pseudo 
= $_POST['pseudo']; 
   $message     
= $_POST['message']; 
          $dblink 
= mysql_connect("localhost", "root", "")or die("Impossible de se connecter : " . mysql_error());    
          mysql_select_db
("essai",$dblink); 

   $sql
="INSERT INTO commentaire (ch_id,ch_pseudo,ch_message) values( '','$pseudo', '$message')"; 
   $req 
= mysql_query($sql);  
    
      $reponse 
= mysql_query("SELECT * FROM commentaire ") or die('Erreur SQL !<br>'.mysql_error()); 
                    mysql_close
($dblink); 
  if 
(!$reponse=="") 
  
{ 
       while
($donnees = mysql_fetch_assoc($reponse)) 
            
{                                                   

                echo
( '<p><strong>'.$donnees['ch_pseudo'].' </strong> :'. $donnees['ch_message'].' </p>');

            }// fin while 
  }// fin if 
}// fin if 

?> 
</body> 
</html>    
</body> 
</html> 
--
[couleur=#00CC66]N' oubliez pas de presser sur le bouton " Réponse accepté "à côté de la solution apportée si elle te convient[/couleur] [couleur=#0066FF]On aide plus un être en lui donnant de lui-même une image favorable qu'en le mettant sans cesse en face de ses défauts. "Albert Camus"[/couleur]
Hors ligneBrako Le 26/11/2008 à 18:10 Profil de Brako Configuration de Brako

L'erreur vient simplement du fait que tu as écrit à la ligne 36 mysql_error(() au lieu de mysql_error()). C'est juste une parenthèse qui est mal fermée
--
Ce qui donne une éventuelle matière à suspecter une quelconque propagande ...
Hors lignePapy25 Le 28/11/2008 à 16:28 Profil de Papy25 Configuration de Papy25

Bonjour à toutes et à tous !

J'ai ,fait un copier/coller du script de "Papi Bidouille" dans ma page source "transmettre" en changeant bien sûr "form action="transmettre" au lieu de "papy25."
Lorsque j'éxécute mon script voici ce qui apparait sur la page:

'.mysql_error()); mysql_close($dblink); if (!$reponse=="") { while($donnees = mysql_fetch_assoc($reponse)) { echo( '

'.$donnees['ch_pseudo'].' :'. $donnees['ch_message'].'
'); }// fin while }// fin if }// fin if ?>

Je ne comprends pas !!

Merci pour votre patience et votre aide.
--
l'informatique peut rendre de grands services
Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels