Erreur PHP

Par Abdi Farah, il y a 11 ans


En creant ma page d'inscription, j'ai eu ca comme erreur !
" Parse error: syntax error, unexpected '}' in C:\xampp\htdocs\Projets\InstruShop\register.php on line 4 "
Mon code :

<?php include('includes/config.php'); if(isset($_POST['envoyer'])) { if(isset($_POST['pseudo']) AND !empty ($_POST['pseudo']) AND isset($_POST['motdepasse']) AND !empty($_POST['motdepasse']) AND isset($_POST['motdepasse2']) AND !empty($_POST['motdepasse2']) AND isset($_POST['email']) AND !empty ($_POST['email'])) } ?> <h1>Créer un compte</h1> <hr /> <form action="register.php" method="post"> Pseudo : <input type="text" name"pseudo" id="pseudo" /><br /> Mot de passe : <input type="password" name"motdepasse" id="password" /><br /> Mot de passe confirmation : <input type="password" name"motdepasse2" id="password2" /><br /> Email : <input type="text" name"mail" id="mail" /><br /> <input type="submit" name="envoyer" value="S'inscrire" id="submit" /> </form>

12 réponses

Carouge10, il y a 11 ans

Bonsoir,
Votre deuxième if n'ai pas fini, il lui manque ses accolades.

Abdi Farah, il y a 11 ans

Je n'ai pas mis d'accolades, du tout, est ce obligatoire ?
EDIT : Ah oui effectivement c'est obligatoire, merci :P

Carouge10, il y a 11 ans

Oui c'est obligatoire
La seule exception où vous pouvez vous passez d'accolades c'est quand c'est suivi d'une instruction
ex :

$page = 1; if(isset($_GET['page'])) $page = $_GET['page']; // La suite de votre code
Abdi Farah, il y a 11 ans

Ok je n'est pas d'erreur si je code en normal alors que quand je met en UTF 8; j'ai des erreurs de session start ?

Carouge10, il y a 11 ans

Qu'elle est l'erreur affiché et le code correspondant ?

Abdi Farah, il y a 11 ans

Enfaite la c'est pas le plus important mdr, psk j'ai pleins d'erreurs je crois !

Premiere erreur : Parse error: syntax error, unexpected T_ELSE in C:\xampp\htdocs\Projets\InstruShop\register.php on line 19

Mon code :

<?php include('includes/config.php'); if(isset($_POST['envoyer'])) { if(isset($_POST['pseudo']) AND !empty ($_POST['pseudo']) AND isset($_POST['motdepasse']) AND !empty($_POST['motdepasse']) AND isset($_POST['motdepasse2']) AND !empty($_POST['motdepasse2']) AND isset($_POST['email']) AND !empty ($_POST['email'])) { //Tous les champs ont été remplis $pseudo = mysql_escape_string($_POST['pseudo']); $motdepasse = mysql_escape_string(md5($_POST['motdepasse'])); $motdepasse2 = mysql_escape_string(md5($_POST['motdepasse2'])); $email = mysql_escape_string($_POST['email']); $longueur_pseudo = strlen($pseudo); if($longueur_pseudo <= 30) { //Le pseudo repspecte le format if($motdepasse == $motdepasse2) { //les mdp sont identiques { else { $erreur = 'Le deux mot de passe ne corresponde pas.' } else { $erreur = 'Le pseudo est trop long (max : 30)'; } else { $erreur = 'Tous les champs sont obligatoires.'; } } } ?> <h1>Créer un compte</h1> <hr /> <form action="register.php" method="post"> Pseudo : <input type="text" name"pseudo" id="pseudo" /><br /> Mot de passe : <input type="password" name"motdepasse" id="password" /><br /> Mot de passe confirmation : <input type="password" name"motdepasse2" id="password2" /><br /> Email : <input type="text" name"mail" id="mail" /><br /> <input type="submit" name="envoyer" value="S'inscrire" id="submit" /> </form>
Abdi Farah, il y a 11 ans

Prebleme regler tout etait un probleme d'acolades, donc manque d'inattention comme d'habitude !
Merci a toi :P

Carouge10, il y a 11 ans

ok, mais il n'y pas que cela...

<?php include('includes/config.php'); $erreur = ""; if(isset($_POST['envoyer'])) { if(isset($_POST['pseudo']) AND !empty ($_POST['pseudo']) AND isset($_POST['motdepasse']) AND !empty($_POST['motdepasse']) AND isset($_POST['motdepasse2']) AND !empty($_POST['motdepasse2']) AND isset($_POST['email']) AND !empty ($_POST['email'])) { //Tous les champs ont été remplis $pseudo = mysql_escape_string($_POST['pseudo']); $motdepasse = mysql_escape_string(md5($_POST['motdepasse'])); $motdepasse2 = mysql_escape_string(md5($_POST['motdepasse2'])); $email = mysql_escape_string($_POST['email']); $longueur_pseudo = strlen($_pseudo); if($longueur_pseudo > 30) { $erreur .= 'Le pseudo est trop long (max : 30)<br>'; } //Le pseudo repspecte le format if($motdepasse !== $motdepasse2) { $erreur .= 'Le deux mot de passe ne corresponde pas.<br>'; } } else { $erreur .= 'Tous les champs sont obligatoires.'; } if(empty($erreur)){ // Il n'y a pas d'erreurs donc je traite les données } else { // Il y a au moins une erreurs donc je les affiche echo $erreur; } } ?> <h1>Créer un compte</h1> <hr /> <form action="register.php" method="post"> Pseudo : <input type="text" name="pseudo" id="pseudo" /><br /> Mot de passe : <input type="password" name="motdepasse" id="password" /><br /> Mot de passe confirmation : <input type="password" name="motdepasse2" id="password2" /><br /> Email : <input type="text" name="mail" id="mail" /><br /> <input type="submit" name="envoyer" value="S'inscrire" id="submit" /> </form>

Je vous laisse étudier les corrections que je viens de faire et de les complémenter.
D'ailleurs je ne vois pas de problème avec le session_start() puisqu'il n'y en a pas.

Abdi Farah, il y a 11 ans

Si dans le fichier, config.php

Erreur : Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\Projets\InstruShop\register.php:1) in C:\xampp\htdocs\Projets\InstruShop\includes\config.php on line 2

Fichier config.php

<?php session_start(); mysql_connect('localhost', 'root', 'soul67540'); mysql_select_db('instru_shop'); ?>
Carouge10, il y a 11 ans

Avant l'inclusion du fichier config, il y a du code ?

Pour information, si vous finissez votre fichier uniquement pas du code php alors ne fermer pas la balise php "?>"

Abdi Farah, il y a 11 ans

Non il n'ya pas de code !

Huggy, il y a 11 ans

L'erreur doit venir d'un caractère BOM rajouté par l'encodage UTF-8.
En php il faut encoder sans BOM.