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