Parse error inresolvable ...
Meteora
-
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 :
Je ne vois aucune erreur :?
Le code PHP complet est :
J'ai essayé de faire une mise en page correcte avec les balise <code> mais bon ^^
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
-
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'])."')"; -
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. -
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