formulaire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : formulaire

Re: formulaire

par msgrr » 12 mars 2013, 22:14

Pouvez-vous dans ce cas me dire ce que signifie cette erreur afin que je puisse la corriger ?

Merci

Re: formulaire

par msgbrr » 12 mars 2013, 01:23

Parse error: syntax error, unexpected T_ELSE in /membri/msgbrr/inscription.php on line 38

Voici la nouvelle erreur qui apparait cette fois uniquement quand j'appuie sur valider. ?

Que dois-je faire ? Comment la corriger ?

Au passage j'aimerais remercier toute la communauté de phpfrance et plus particulièrement ceux qui m'ont aidé sur ce topic.

Pouvez vous m'aider s'il vous plaît ?

Re: formulaire

par moogli » 12 mars 2013, 01:14

j'ai éditer mon message avec la correction


il est plus qu'important que tu regarde prenne le temps de vérifier les correspondances des parenthèses accolade.
C'est la première source d'erreurs, ensuite les ; manquant :)


@+

Re: formulaire

par msgbrr » 12 mars 2013, 01:12

Merci a la correction du modo l'erreur a disparue mais une nouvelle survient

Parse error: syntax error, unexpected '}' in /******/*********/inscription.php on line 38

J'ai donc enlever une acolade mais maitenant cette erreur apparaît :


Parse error: syntax error, unexpected T_ELSE in /*****/******/inscription.php on line 38

La ligne 38 c'est juste une accolade.

Ou est l'erreur et comment la corriger ?

Merci

PS : voici mon script actuel
     <?php
   
    
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') 
{ if (!empty($_POST['login']) && !empty($_POST['pass']) && !empty($_POST['pass_confirm']) ) { 
if (!empty($_POST['E-mail']) ) { 
} // je pense que c'est celle là qu'il te manque qq part 
} 
}

          
         
          if ($_POST['pass'] != $_POST['pass_confirm']) { 
             $erreur = 'Les 2 mots de passe sont diff�rents.'; 
          } 
          else { 
             $base = mysql_connect ('localhost', 'msgbrr', 'sandrine'); 
             mysql_select_db ('my_msgbrr', $base); 
             
            
             $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"'; 
             $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
             $data = mysql_fetch_array($req); 
     
             if ($data[0] == 0) { 
                $sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.mysql_escape_string(md5($_POST['pass'])).'")'; 
                mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); 
     
                session_start(); 
                $_SESSION['login'] = $_POST['login']; 
                header('Location: membre.php'); 
                exit(); 
             } 
             else { 
                $erreur = 'Un membre poss&#233de d&#233ja ce login.'; 
          } 
    } 
       else { 
          $erreur = 'Au moins un des champs est vide.'; 
       }  
    }  
    ?>
    <html>
    <head>
    <title>Inscription</title>
    </head>
     
    <body>
    Inscription � l'espace membre :<br />
    <form action="inscription.php" method="post">
    Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
    Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
    Confirmation du mot de passe : <input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>"><br />
    E-mail : <input type="e-mail" name"E-mail" value="<?php if (isset($_POST['e-mail'])) echo htmlentities( trim($_POST['e-mail'])); ?>"><br />
    <input type="submit" name="inscription" value="Inscription">
    </form>
    <?php
    if (isset($erreur)) echo '<br />',$erreur;  
    ?>
    </body>
    </html> 
[list][/list]

Re: formulaire

par moogli » 12 mars 2013, 01:08

Autrement je vous remercie de m'avoir aider et j'aimerais savoir si les .... sont la exprès donnes dans la dernière correction. :?: ( juste avant le com "je pense que c'est celle ci qu'il te manquait" un truc comme ca)
Les ... indique qu'il y a du code à rajouter, en l’occurrence le reste de la validation de ton formulaire.


Le problème viens du fait qu'il y a une parenthèse fermante en trop sur la ligne indiquée par Ryle, ainsi que l'accolade fermante correspondant au 1er if.


pour ce qui est de l'éditeur, effectivement un IDE est plus intéressant, de par l'auto complétion ou l'indication des correspondances des parenthèses, mais aussi pas l'indication directement dans le code de l'erreur, ou le formatage du code (beaucoup plus simple à lire).

L’éditeur de zend, zend studio, est bien foutu, basé sur éclipse qui est suffisant. D'autre existe comme netbeans et des tonnes que je ne connais pas.

notepad++ est bien pratique mais pas l'aide apportée par un IDE n'est pas négligeable.

ton code mis en forme (ctrl +f avec eclipse).
<?php
 
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {
	 
	if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) {
		if (isset($_POST['E-mail']) && !empty($_POST['E-mail'])) {

			 
			if ($_POST['pass'] != $_POST['pass_confirm']) {
				$erreur = 'Les 2 mots de passe sont différents.';
			}
			else {
				$base = mysql_connect ('localhost', 'msgbrr', 'sandrine');
				mysql_select_db ('my_msgbrr', $base);
				 

				$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"';
				$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
				$data = mysql_fetch_array($req);
				 
				if ($data[0] == 0) {
					$sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.mysql_escape_string(md5($_POST['pass'])).'")';
					mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
					 
					session_start();
					$_SESSION['login'] = $_POST['login'];
					header('Location: membre.php');
					exit();
				}
				else {
					$erreur = 'Un membre poss&#233de d&#233ja ce login.';
				}
			}
		}
		else {
			$erreur = 'Au moins un des champs est vide.';
		}
	}
}
	?>
<html>
<head>
<title>Inscription</title>
</head>

<body>
	Inscription ? l'espace membre :
	<br />
	<form action="inscription.php" method="post">
		Login : <input type="text" name="login"
			value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
		Mot de passe : <input type="password" name="pass"
			value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
		Confirmation du mot de passe : <input type="password"
			name="pass_confirm"
			value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>"><br />
		E-mail : <input type="e-mail"
			name"E-mail" value="<?php if (isset($_POST['e-mail'])) echo htmlentities( trim($_POST['e-mail'])); ?>"><br />
		<input type="submit" name="inscription" value="Inscription">
	</form>
	<?php
	if (isset($erreur)) echo '<br />',$erreur;
	?>
</body>
</html>
@+

Re: formulaire

par msgbrr » 12 mars 2013, 00:43

Bonjour,

J'utilise déjà notepad ++
Merci comme même !


Par contre sans vouloir êtres chiant ou sans vouloir te contredire, dans un message antérieur Yann18 m'a dit de ne pas utiliser notepad mais un IDE

Autrement je vous remercie de m'avoir aider et j'aimerais savoir si les .... sont la exprès donnes dans la dernière correction. :?: ( juste avant le com "je pense que c'est celle ci qu'il te manquait" un truc comme ca)

Merc

Re: formulaire

par BGMaxime » 11 mars 2013, 23:53

Hello,

j'utilise l'éditeur libre Notepadd++ qui permet de controler la validité de ton code "on the fly", au fur à mesure que tu le tapes.

Il fait aussi automatiquement les indentations.

Certains paragraphes ne sont pas comme j'ai l'habitude de les indenter, mais c'est vraiment un plaisir à débugger. Le gain de temps est énorme.

Je ne connais pas les autres éditeurs, à part Notepad de base que j'ai longtemps utilisé :-)

Donc je conseille largement Notepad++, malgré l'aspect non lucratif de cette pub :-)

Bon code.

Re: formulaire

par Ryle » 11 mars 2013, 21:45

Nonon, bien avant au début de ton code :
    if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {
       if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) {
if (isset($_POST['E-mail']) && !empty($_POST['E-mail']))) { 
Il faudrait vérifier, mais je pense que c'est l'accolade de cette dernière ligne qui n'est pas équilibrée.

Au niveau indentation tu devrais avoir ceci : (nota j'ai viré les isSet inutiles pour plus de clarté)
   if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') { 
       if (!empty($_POST['login']) && !empty($_POST['pass'])  && !empty($_POST['pass_confirm']) ) {
            if (!empty($_POST['E-mail']) ) { 
                 ....
            } // je pense que c'est celle là qu'il te manque qq part
       }
   }

Re: formulaire

par msgbrr/ » 11 mars 2013, 19:02

Desole mais je ne vois pas d'acolade ou de parenthese pas fermé si c'est cette ligne que tu parle
E-mail : <input type="e-mail" name"E-mail" value="<?php if (isset($_POST['e-mail'])) echo htmlentities( trim($_POST['e-mail'])); ?>"><br />
Pouvez vous dans ce cas me citer la faute ou ecrire un correction ?

Merci

Re: formulaire

par Ryle » 11 mars 2013, 14:37

Ta première erreur était un problème d'équilibre de tes parenthèses : tu en fermes plus que tu n'en as ouvert :)
if (isset($_POST['E-mail']) && !empty($_POST['E-mail']))) {
   (     (                )          (                )))
Mais effectivement, empty() est redondant avec isSet() puisque si la variable est vide, nulle ou n'est pas définie, empty() renverra TRUE.


Pour la seconde, un problème sur la dernière ligne du fichier est généralement également synonyme d'un problème de parenthèses ou d'accolades non équilibrées (en général tu as ouvert une accolade "quelque part" que tu n'as pas refermé... la difficulté étant de trouver laquelle ;))

En indentant bien ton fichier, ça saute généralement assez vite aux yeux.. en l'occurrence, ta ligne où tu testes le champ E-mail n'est pas indenté correctement, c'est probablement le bloc d'instruction de ce if() qui n'est pas "fermé"

Re: formulaire

par msgbrr » 10 mars 2013, 22:33

Merci l'erreur a disparu cependant une nouvelle erreur apparaît :

Parse error: syntax error, unexpected $end in /****/******/inscription.php on line 59

J'ai cherché la ligne 59 mais la ligne 58 est la dernière ligne.

Soit la ligne 59 est un ligne blanche

Que dois-je faire ou est la faute

Merci de votre aider

Ps: le code est dans le 1er message poster !

Re: formulaire

par yann18 » 10 mars 2013, 20:13

if (isset($_POST['E-mail']) && !empty($_POST['E-mail'])) {
la fonction empty est largement suffisante dans ton cas, inutile de lui adjoindre isset car si $_POST['E-mail'] n'est ni vide ni nulle (valable pour empty) suffit à elle seule de prouver l'existence(cas de isset) de $_POST['E-mail'] .

Re: formulaire

par yann18 » 10 mars 2013, 19:57

bonjour,
"Parse error: syntax error, unexpected ')' in /****/****/inscription.php on line 6"
ça veut veux dire que tu as une erreur de syntaxe provoquée par une fin de ligne inattendue en particulier une parenthèse ")" de trop.

moi à ta place j'aurai jamais utiliser des éditeurs de codes comme vi ,notepad, emacs... il faut vite passer aux IDE comme netbeans, eclipse, intellij...car ces derniers détectent automatiquement toute erreur de syntaxe au moment de l'écriture du code.

formulaire

par msgbrr » 10 mars 2013, 19:27

Bonjour,
possédant un site j'ai voulue créer un accès membre et voici le formulaire d'inscription.
     
<?php
   
    if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') { 
       
       if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) {
if (isset($_POST['E-mail']) && !empty($_POST['E-mail']))) { 
          
         
          if ($_POST['pass'] != $_POST['pass_confirm']) { 
             $erreur = 'Les 2 mots de passe sont différents.'; 
          } 
          else { 
             $base = mysql_connect ('localhost', 'msgbrr', 'sandrine'); 
             mysql_select_db ('my_msgbrr', $base); 
             
            
             $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"'; 
             $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
             $data = mysql_fetch_array($req); 
     
             if ($data[0] == 0) { 
                $sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.mysql_escape_string(md5($_POST['pass'])).'")'; 
                mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); 
     
                session_start(); 
                $_SESSION['login'] = $_POST['login']; 
                header('Location: membre.php'); 
                exit(); 
             } 
             else { 
                $erreur = 'Un membre poss&#233de d&#233ja ce login.'; 
             } 
          } 
       } 
       else { 
          $erreur = 'Au moins un des champs est vide.'; 
       }  
    }  
    ?>
    <html>
    <head>
    <title>Inscription</title>
    </head>
     
    <body>
    Inscription � l'espace membre :<br />
    <form action="inscription.php" method="post">
    Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
    Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
    Confirmation du mot de passe : <input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>"><br />
    E-mail : <input type="e-mail" name"E-mail" value="<?php if (isset($_POST['e-mail'])) echo htmlentities( trim($_POST['e-mail'])); ?>"><br />
    <input type="submit" name="inscription" value="Inscription">
    </form>
    <?php
    if (isset($erreur)) echo '<br />',$erreur;  
    ?>
    </body>
    </html> 
Lorsque je l'ai testé, j'ai créer un membre, et valider.
un message d'erreur s'affiche
"Parse error: syntax error, unexpected ')' in /****/****/inscription.php on line 6"
je cite la ligne 6 :
if (isset($_POST['E-mail']) && !empty($_POST['E-mail']))) {
OU est la faute ?

merci