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. 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
  2. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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