Parse error inresolvable ...

Meteora -  
 Meteora -
Bonjour,

Voilà, sur mon code, j'ai un problème sur le formulaire d'inscription
A l'execution de inscription.php, j'ai un message :
Parse error: parse error in C:\wamp\www\...\online.php on line 19
Ligne 19 je regarde j'ai :

'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['pseudo']).'", "'.mysql_escape_string($_POST['email'])).'", "'.mysql_escape_string($_POST['email_pay']).'")';


Je ne vois aucune erreur :?

Le code PHP complet est :
<?php
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Suivant') {
	if ((isset($_POST['pseudo']) && !empty($_POST['pseudo'])) &&
           (isset($_POST['email']) && !empty($_POST['email'])) &&
           (isset($_POST['email_pay']) && !empty($_POST['email_pay']))) {

		if ($_POST['email'] != $_POST['email_conf']) {
			$erreur = 'Les 2 mots de passe sont différents.';
		}
		else {
				$base = mysql_connect ('localhost', 'root', '');
				mysql_select_db ('sitefrancais', $base);

			$sql = 'SELECT id FROM membre
                                   WHERE pseudo="'.mysql_escape_string($_POST['pseudo']).'"';

			$req = mysql_query($sql) 
                                   or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
			$nb = mysql_num_rows($req);

			if ($nb == 0) {
				$sql = 'INSERT INTO membre VALUES
                                 ("", "'.mysql_escape_string($_POST['pseudo']).'",                                                   "'.mysql_escape_string($_POST['email'])).'", "'.mysql_escape_string($_POST['email_pay']).'")';
				
            mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

				// on récupère l'id de notre nouveau membre
				$id = mysql_insert_id();

				session_start();
				$_SESSION['login'] = $_POST['login'];

				// on stocke cet id dans une variable de session
				$_SESSION['id'] = $id;
				header('Location: online2.php');
				exit();
			}
			else {
				$erreur = 'Un membre possède déjà ce login.';
			}
		}
	}
	else {
		$erreur = 'Au moins un des champs est vide.';
	}
}
?>


J'ai essayé de faire une mise en page correcte avec les balise <code> mais bon ^^

3 réponses

Alain_42 Messages postés 5413 Statut Membre 894
 
tu avais une ) en trop après $_POST['email']

ensuite essayes cette forme, et avec la fonction mysql_real...

				
$sql = "INSERT INTO membre VALUES('','".mysql_real_escape_string($_POST['pseudo'])."','".mysql_real_escape_string($_POST['email'])."', '".mysql_real_escape_string($_POST['email_pay'])."')";
1
Apatik Messages postés 6040 Statut Contributeur 782
 
Et avec ça, ça dit quoi?
$sql = 'INSERT INTO membre VALUES ("", "\'.mysql_escape_string($_POST['pseudo']).\'","\'.mysql_escape_string($_POST['email']).\'", "\'.mysql_escape_string($_POST['email_pay']).\'")';

Quand les quotes sont imbriquées, il faut les échapper, c'est à dire mettre des "\" devant.
(j'ai aussi viré la parenthèse comme l'a dis Alain)
Live free, learn free, help free, Happy Hacking!
Plus que tout en informatique, l'erreur est humaine.
0
Meteora
 
Oh lala quelle honte ... Une paranthèse en trop :x
Merci maintenant ça marche !
Et Apatik ce n'est pas le problème, car en esayant ta methode nouveau parse error ;D ca aurait été valable pour echo ou autre mais la c'est pour la forme '. xxx .'
Quant a la fonction mysql_escape_string..., j'avais effectivement vu sur le site qu'elle etait devenu obsolète, sans y prendre de l'interet ...
Maintenant y'a rien qui s'ecrit dans le bdd ><
sur online2.php, il y a :

<?php 
session_start(); 
// on vérifie toujours qu'il s'agit d'un membre qui est connecté 
if (!isset($_SESSION['pseudo'])) { 
 // si ce n'est pas le cas, on le redirige vers l'accueil 
 header ('Location: accueil.php'); 
 exit(); 
} 
?>


Et des que je clique sur Suivant de ma première page, je tombe sur accueil.php ... La session n'a pas été crée ... Help ?

EDIT : En fait j'ai trouvé c'est bon xD merci a vous
0