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
Réponse acceptée

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

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

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

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 ?

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

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>

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

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.

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');

?>

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 "?>"

Non il n'ya pas de code !

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