Base de donnees sous wampserver

Résolu
Bonjour,
j'ai ecris une page php dans laquelle j'ai mis un formulaire
je recupere ensuite ces donnes sur la page traitement dans laquelle je voudrais inserer les donnees saisies dans le formulaire dans une base de donnees
voici le code:

<!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>monsite-----traitement</title>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	   
   </head>
   <body>
		<?php
			
		    mysql_connect("localhost","root","");
			
			mysql_query("INSERT INTO `test`.`informationsformulaire` (`id`, `prenom`, `nom`, `email`, `telephone`, `objet`, `message`) VALUES (NULL,htmlentities('$_POST[\'prenom\']'),htmlentities('$_POST[\'nom\']'),htmlentities('$_POST[\'email\']'),htmlentities('$_POST[\'telephone\']'),htmlentities('$_POST[\'objet\']'),htmlentities('$_POST[\'message\']'))") or die(mysql_error());
			
			//mysql_close();	

		?>
		
		
		<?php
			mysql_connect("localhost","root",""); 
			mysql_select_db("test"); 							 
			$reponse = mysql_query("SELECT prenom FROM informationsformulaire"); 							 
			while ($donnees = mysql_fetch_array($reponse) )	
				{ echo $donnees['prenom'];
		?>
		<br>
		<?php
				}							 
			//mysql_close(); 
		?>  
   </body>
</html>

	


et voila l'erreur affichée a l'execution:

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in E:\wamp\www\monsite\traitement.php on line 13
Configuration: Windows XP
Firefox 3.0.15

4 réponses

  1. mysql_query("INSERT INTO `test`.`informationsformulaire` (`id`, `prenom`, `nom`, `email`, `telephone`, `objet`, `message`) VALUES (NULL,htmlentities('$_POST[\'prenom\']'),htmlentities('$_POST[\'nom\']'),htmlentities('$_POST[\'email\']'),htmlentities('$_POST[\'telephone\']'),htmlentities('$_POST[\'objet\']'),htmlentities('$_POST[\'message\']'))") or die(mysql_error());
    Il faut utiliser la concaténation.
    1. j'l'ai remplacé par ça:

      mysql_query("INSERT INTO `test`.`informationsformulaire` (`id`, `prenom`, `nom`, `email`, `telephone`, `objet`, `message`) VALUES (NULL,'".$_POST[\'prenom\']."','".$_POST[\'nom\']."','".$_POST[\'email\']."','".$_POST[\'telephone\']."','".$_POST[\'objet\']."','".$_POST[\'message\']."')") or die(mysql_error());

      et voila l'erreur:

      Parse error: parse error, expecting `T_STRING' in E:\wamp\www\monsite\traitement.php on line 13
  2. Il ne faut pas les "\" avant les apostrophes : $_POST['blabla'] et pas $_POST[\'blabla\']
    1. <!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>monsite-----traitement</title>
             <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
      	   
         </head>
         <body>
      		<?php
      			//recupération des valeurs postées
      			$prenom=mysql_escape_string($_POST['prenom'];
      			$nom=mysql_escape_string($_POST['nom'];
      			$email=mysql_escape_string($_POST['email'];
      			$telephone=mysql_escape_string($_POST['telephone'];
      			$objet=mysql_escape_string($_POST['objet'];
      			$message=mysql_escape_string($_POST['message'];
      			
      		    mysql_connect("localhost","root","");
      			 //deja la il te manque la selection de la base
      			 mysql_select_db('test');
      			//ensuite mets '' pour VALUES de l'id au lieu de NULL 
      			mysql_query("INSERT INTO informationsformulaire (id,prenom,nom,email,telephone,objet,message) VALUES ('','".$prenom."','".$nom."','".$email."','".$telephone."''".$objet."''".$message."') ") or die(mysql_error());
      			
      			//mysql_close();	
      
      		?>
      		
      		
      		<?php
      			//si c'est dans le mêm script ne te reconnectes pas deux fois
      			//mysql_connect("localhost","root",""); 
      			//mysql_select_db("test"); 							 
      			$reponse = mysql_query("SELECT prenom FROM informationsformulaire"); 							 
      			while ($donnees = mysql_fetch_array($reponse) )	
      				{ echo $donnees['prenom'];
      		?>
      		<br>
      		<?php
      				}							 
      			mysql_close(); 
      		?>  
         </body>
      </html>
      
      
      
      1. merci pour ton script il resout l'ancien probleme sauf que voila ça en crée un autre:

        Column count doesn't match value count at row 1

        ça serrait pas le probleme de l'identifiant par hasard?
    2. il faut que dans ta table tu mettes id en autoincrement
      1. c'est bon .....merci probleme reglé