Parse error inresolvable ...

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

  1. 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. Contributeur
      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.
      1. 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