Probleme de formulaire sur php

Résolu/Fermé
Bazart - 5 mai 2008 à 09:11
croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 - 5 mai 2008 à 11:13
Bonjour,
j'ai un probleme avec un enregistrement de client dansd une base de donnée, internet explorer me retourne des messages d'erreur systematiquement .

voici mon code php :

<form name="formulaire d'inscrition" method="post" > 
<table width="200" border="1"> 
<tr> 
<td>Nom:</td> 
<td><input name="NOMCLI" type="text" id="NOMCLI"></td> 
</tr> 
<tr> 
<td>Mot de passe :</td> 
<td><input name="MDPCLI" type="text" id="MDPCLI" ></td> 
</tr> 
<tr> 
<td>Con firmation mot de passe:</td> 
<td><input name="MDP2" type="text" id="MDP2" ></td> 
</tr> 
<tr> 
<td>Adresse:</td> 
<td><input name="ADRCLI" type="text" id="ADRCLI"></td> 
</tr> 
<tr> 
<td>Code Postal:</td> 
<td><input name="CPCLI" type="text" id="CPCLI"  maxlength="5"></td> 
</tr> 
<tr> 
<td>Ville :</td> 
<td><input name="VILLECLI" type="text" id="VILLECLI" ></td> 
</tr> 
<tr> 
<td colspan="2"><div align="center"> 
<input type="submit" name="Submit" value="Envoyer"> 
</div></td> 
</tr> 
</table> 

<? 
  
include("connexion.php"); 

if ($POST['MDP2'] = $POST["MDPCLI"]);		
	{ 
		connexion(); 
  
		$sql = "INSERT INTO TOUTBUREAU(NOMCLI,ADRCLI,CPCLI,VILLECLI,MDPCLI) "; 
		$sql .= "VALUES(&#8221;,&#8217;$_POST[&#8217;NOMCLI&#8217;]',&#8217;$_POST[&#8217;ADRCLI&#8217;]',&#8217;$_POST[&#8217;CPCLI&#8217;]',&#8217;$_POST[&#8217;VILLECLI&#8217;]','$_POST['MDPCLI']')"; 
  
		mysql_query($sql) or die(mysql_error()); 
	} 
else 
	{ 
	echo 'Erreur ! Vous devez remplir tous les champs '; 
	} 
?>

</form> 


et internet explorer me sort :

Parse error: parse error in c:\program files\easyphp1-8-modgsi\www\projet\inscription1.php on line 47

toute solution meme un remaniement complet me satisferait . Merci par avance .
A voir également:

10 réponses

Devilish Messages postés 1425 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 26 janvier 2009 38
5 mai 2008 à 09:35
Bonjour, pourrais tu nous donner ta page connexion.php (en enlevant tous les codes personnelles bien entendu^^).
0
<?php 
$host = "localhost"; /* L&#8217;adresse du serveur */ 
$login = "*****"; /* Votre nom d&#8217;utilisateur */ 
$password = ""; /* Votre mot de passe */ 
$base = "********"; /* Le nom de la base */ 
  
function connexion() 
{ 
global $host, $login, $password, $base; 
$db = mysql_connect($host, $login, $password); 
mysql_select_db($base,$db); 
} 
?> 


Le voila mais je ne pense pas que ca vienne d'ic, je pe"nse que ca vient des quote qui ne veulent pas s'assambler correctement .
0
Et si tu utilises \" à la place des ' ?
0
C'est a dire ? j'ai toujour apprit avec ' et " mais si tu as une troisieme solution je suis preneur .
0
croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
5 mai 2008 à 10:33
Est-ce-que ce ne serait pas mieux comme ça :
include("connexion.php"); 

// '=' --> '=='

if( $POST['MDP2'] == $POST["MDPCLI"] );		
	{ 
	connexion(); 
  
	$sql = "INSERT INTO TOUTBUREAU(NOMCLI,ADRCLI,CPCLI,VILLECLI,MDPCLI) "; 
	$sql .= "VALUES('" . $_POST['NOMCLI'] . "','" . $_POST['ADRCLI']
		. "','" . $_POST['CPCLI&#8217'] . "',''" . $_POST['VILLECLI']
		. "',' . $_POST['MDPCLI'] . "')"; 
  
	mysql_query($sql) or die(mysql_error()); 
	} 
else 
	{ 
	echo 'Erreur ! Vous devez remplir tous les champs '; 
	} 


Remarques méthodologiques (à méditer) :
1. les parenthèses, doubles guillemets et simples guillemets vont par paires et ne doivent pas s'imbriquer
2. la possibilité offerte par PHP de mettre à l'intérieur d'une paire de double guillemets un nom de variable est la source de multiples erreurs (cf ce forum) et il est préférable de mettre "azazaz" . $var plutôt que "azaz$var"
A noter aussi dans le test if le remplacement de '=' par '=='
0

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

Posez votre question
En fait je comprends pas trop ton truc mais moi j'aurais plutot écris cela :

"VALUES(\"".$_POST['NOMCLI']."\",\"".$_POS­T['ADRCLI']."\",\"".['CPCLI']."\",\"".$_POST['VILLECLI']."\",\"".$_POST['MDPCLI']."\")";
enfin peut-être que je me trompe mais essaie toujours ça coute rien.

ah je viens aussi de voir un autre truc qui ne va pas dans ton code :
if ($POST['MDP2'] = $POST["MDPCLI"]); ne fait rien il me semble.
Tu devrais mettre if ($POST['MDP2'] == $POST['MDPCLI']) plutôt (sans ; et avec ==).
0
ca a l'air d'avancé il ne me souligne plus le else mais il me souligne des guillemets dans tout les sens zend studio fait correspondre les guillemets avec leur voisin directement sans encadrer le global.
0
avec la solution de JR ca me souligne :

['CPCLI']."\",\"".
0
oui il manque $_POST devant ['CPCLI'] dsl.
0
croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
5 mai 2008 à 11:07
La formule de JR fonctionne avec deux adaptations mineures

Par ailleurs, une simplification en remplaçant les \" par un simple '.

On arrive à :
	"VALUES( '" . $_POST['NOMCLI']
		. "','" . $_POST['ADRCLI']
		. "','" . $_POST['CPCLI'] 
		. "','" . $_POST['VILLECLI'] 
		. "','" . $_POST['MDPCLI'] . "')";
0
oui c'est pas faux mais je préfère mettre \" car s'il y a un apostrophe, dans le nom de la ville par exemple...

enfin^^
0
Merci ca marche nickel .
0
croy Messages postés 453 Date d'inscription samedi 19 janvier 2008 Statut Membre Dernière intervention 23 octobre 2012 114
5 mai 2008 à 11:13
Pour le pb d'éventuelles apostrophes dans une chaine de caractères il est très préférable d'utiliser mysql_escape_string.
0