Erreur Parse sur script php

Bonjour,

Voila je vous expose mon probleme , j'ai actuelement un site pour un server , ou j'ai mis une page de radio avec un systeme de dedicace , il envoi bien la dedicace seulement quand je veux me connecté au panneau admin pour géré les dédicace j'ai cette erreur :

Parse error: syntax error, unexpected '}' in /homez.166/paradizl/www/radio/admin.php on line 56

je lui est donc enlevé l'accolade et il me fait un autre erreur qui est

Parse error: syntax error, unexpected 'else' (T_ELSE) in /homez.166/paradizl/www/radio/admin.php on line 56

j'ai cherché sur le net , a vrai dire j'ai passé mon apres-midi a ca et je ne trouve pas de solution si quelqu'un pourrait m'aidé , merci d'avance , je vous copie le bout du code ou est l'erreur :

<?php
/*on selectionne les donner des dedicasse dans l'ordre des id*/
$retour_dedi_admin = mysql_query('SELECT * FROM dedicasse ORDER BY id')or die(mysql_error("Impossible de selectionner les données dans la tables <b>'dedicasse'</b> "));
/*petite boucle pour tt afficher*/
while($donnes_dedi_admin = mysql_fetch_array($retour_dedi_admin)){

/*variables pour les dedicasse+secu */
$pseudo_dedicasse = htmlspecialchars($donnes_dedi_admin['pseudo']);
$message_dedicasse = htmlspecialchars($donnes_dedi_admin['message']);
$date_dedicasse = $donnes_dedi_admin['date'];
$ip_dedicasse = $donnes_dedi_admin['ip'];
$id_dedicasse = $donnes_dedi_admin['id'];
?>
<tr>
<td><?php echo $pseudo_dedicasse; ?></td>
<td><?php echo $message_dedicasse; ?></td>
<td><?php echo $ip_dedicasse; ?></td>
<td><?php echo $date_dedicasse; ?></td>
<td><a href="admin.php?page=supprimer&id=<?php echo $id_dedicasse; ?>">Supprimer</a></td>
</tr>
<?php
}
?>
</table>
<?php
/*la session existe pas on lui refuse l'accée au page on affiche le formulaire de connexion */
}else{

11 réponses

  1. Il manque session_start() au début du script. Il le faut d'ailleurs au début de toutes tes pages si tu utilises les sessions.

    Ensuite, tu risques de tomber sur un 'undefined index : connecter' parceque tu utilises $_SESSION['connecter'] sans tester son existence
    1
    1. Bonjour

      Il faudrait avoir le code depuis la 1ère ligne pour voir l'erreur.
      Au minimum depuis la ligne qui contient l'accolade ouvrante { censée correspondre à l'accolade fermante } de la ligne 56
      0
      1. voici le code en entier :
        ?php
        error_reporting(E_ALL); // Pour afficher toutes les erreurs
        include('config.php');

        /*si la session connecter existe alors on affiche les pages*/
        if($_SESSION['connecter'] == true){
        if(isset($_GET['page'])){

        if($_GET['page'] == 'supprimer'){
        if(isset($_GET['id'])){
        if($_GET['id']){
        mysql_query('DELETE FROM dedicasse WHERE id='.mysql_real_escape_string($_GET['id']).'');
        echo '<h2>Dedicasse n°'.$_GET['id'].' supprimer</h2><br/>';
        }else{
        echo 'Id inconnu';
        }
        }
        }
        }
        ?>
        Voici la liste des dedicasse poster:
        <table border="1" width="900">
        <tr>
        <th>Pseudo</th>
        <th>Message</th>
        <th>Ip</th>
        <th>Date</th>
        <th>Supprimer</th>
        </tr>
        <?php
        /*on selectionne les donner des dedicasse dans l'ordre des id*/
        $retour_dedi_admin = mysql_query('SELECT * FROM dedicasse ORDER BY id')or die(mysql_error("Impossible de selectionner les données dans la tables <b>'dedicasse'</b> "));
        /*petite boucle pour tt afficher*/
        while($donnes_dedi_admin = mysql_fetch_array($retour_dedi_admin)){

        /*variables pour les dedicasse+secu */
        $pseudo_dedicasse = htmlspecialchars($donnes_dedi_admin['pseudo']);
        $message_dedicasse = htmlspecialchars($donnes_dedi_admin['message']);
        $date_dedicasse = $donnes_dedi_admin['date'];
        $ip_dedicasse = $donnes_dedi_admin['ip'];
        $id_dedicasse = $donnes_dedi_admin['id'];
        ?>
        <tr>
        <td><?php echo $pseudo_dedicasse; ?></td>
        <td><?php echo $message_dedicasse; ?></td>
        <td><?php echo $ip_dedicasse; ?></td>
        <td><?php echo $date_dedicasse; ?></td>
        <td><a href="admin.php?page=supprimer&id=<?php echo $id_dedicasse; ?>">Supprimer</a></td>
        </tr>
        <?php
        }
        ?>
        </table>
        <?php
        /*la session existe pas on lui refuse l'accée au page on affiche le formulaire de connexion */

        if(isset($_POST['connexion'])){
        if(isset($_POST['pseudo_adm']) && $_POST['pseudo_adm'] != null){ /*si le pseudo est different de null (ou vide) alors on continue le script*/
        if(isset($_POST['mdp_adm']) && $_POST['mdp_adm'] != null){ /*si le mot de passe est different de null (ou vide) alors on continue le script*/

        /*variables de pseudo poster */
        $pseudo_poster = $_POST['pseudo_adm'];
        $mdp_poster = $_POST['mdp_adm'];

        if($pseudo_poster == $pseudo_admin){ /*si le pseudo poster est le même que le pseudo dans config.php alors on continue le script*/
        if($mdp_poster == $mot_de_passe_admin){ /*si le mot de passe poster est le même que le mot de passe dans config.php alors on continue le script*/

        /*tout est bon, on connecte le membre */
        $_SESSION['connecter'] = true;
        $_SESSION['pseudo'] = $pseudo_admin;
        ?>
        <script type="text/javascript" language="javascript">
        document.location.href="admin.php";
        </script>
        <?php }else{ /*le mot de passe renseigner est inccorect */
        echo '<div id="erreur">Mot de passe incorect</div>';
        }
        }else{ /*le pseudo renseigner est inccorect */
        echo '<div id="erreur">Pseudo inexistant</div>';
        }
        }else{ /*le mot de passe est vide */
        echo '<div id="erreur">Veuillez indiquer votre mot de passe</div>';
        }
        }else{ /*le pseudo est vide */
        echo '<div id="erreur">Veuillez indiquer votre pseudo</div>';
        }
        }
        ?>
        Partit reserver a l'administration.
        <form method="post" action="admin.php">
        <b>Pseudo :</b><input type="text" name="pseudo_adm" /><br/>
        <b>Mot de passe :</b><input type="password" name="mdp_adm" /><br/>
        <input type="submit" name="connexion" value="Se connecter"/>
        </form>
        }
        <?php
        ?>
        0
        1. Pas facile de dire, car ce code n'est pas le même que celui de ton premier message. La ligne 56 ne correspond plus à un 'else'
          On remarque quand même que l'accolade de ton tout premier if :
          if($_SESSION['connecter'] == true){
          n'a pas d'accolade fermante qui lui correspond. Cela provoque sûrement une erreur.
          Tu devrais indenter ton code correctement. Ça permet d'éviter facilement ce genre d'erreur toute bête.
          0
          1. oui il ne corespond pas car j'avait enlevé le }else{ pour voir si cela resoudré le probleme mais ca l'avait empiré ,je vais fermé l'acolade et voir si ca rectifi cela , merci
            0
            1. re bonsoir , voila j'ai essayé avec la solution que vous m'avez donnez de fermé l'accolade et toujours la meme erreur qu'au debut :/
              0
              1. Non, tu ne peux pas avoir la même erreur qu'au début. Il n'y a pas de } ligne 56, tu ne peux pas avoir le message unexpected '}' in /homez..../admin.php on line 56

                De plus, tu dis que tu as ajouté l'accolade fermante, mais tu ne dis pas où, comment peut-on vérifier si elle est bien refermée ?

                Tel que ton code est écrit, et en refermant correctement l' accolade, il n'y a plus aucune "Parse Error".
                0
                1. je lui est remis la ligne 56 c'est a dire le else mais je lui est fermé l'accolade d'avant , mais j'ai retrouvé la meme erreur de debut :/
                  0
                  1. A priori, ton }else{ après la ligne /*la session existe pas ... est bien placé et correspond à la fermeture de l'accolade de if($_SESSION['connecter'] == true){

                    Par contre, il manque maintenant l'accolade fermante du else { et je ne sais pas où il faut la mettre (sans doute juste avant la partie réservée à l'administration
                    0
                    1. probleme resolu concernant l'affichage de la page admin , j'ai suprimé le else et fermé mon acolade comme indiqué , mais j'ai une erreur qui me dit qu'une variable est introuvable : Notice: Undefined variable: _SESSION in /homez.166/paradizl/www/radio/admin.php on line 6
                      0
                      1. ah oui en effets , j'ai corigé cela mais je tombe pas sur l'erreur cité je tombe plutot sur ce genre d'erreur : Parse error: syntax error, unexpected 'include' (T_INCLUDE) in /homez.166/paradizl/www/radio/admin.php on line 4
                        0
                        1. Evidemment, s'il y a encore une autre erreur avant...
                          C'est sans doute que tu as oublié le point-virgule après session_start()
                          0
                        2. ah oui en effets , la fatigue des nuit blanche ca va pas avec moi lol , merci pour votre aide , plus aucune erreur sur ma page , merci beaucoup :)
                          0
                        3. Contributeur sécurité
                          Hello,

                          Penses à mettre ton message en résolu ;)

                          @+
                          0