Erreur Parse sur script php

vinc -  
SlyK Messages postés 1060 Statut Contributeur sécurité -
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. Utilisateur anonyme
     
    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
  2. Utilisateur anonyme
     
    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
  3. vinc
     
    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
  4. Utilisateur anonyme
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. vinc
     
    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
  7. vinc
     
    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
  8. Utilisateur anonyme
     
    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
  9. vinc
     
    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
  10. Utilisateur anonyme
     
    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
  11. vinc
     
    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
  12. vinc
     
    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. Utilisateur anonyme
       
      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. vinc
       
      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. SlyK Messages postés 1060 Statut Contributeur sécurité 147
       
      Hello,

      Penses à mettre ton message en résolu ;)


      @+
      0