Erreur Parse sur script php

Fermé
vinc - 11 sept. 2012 à 19:56
SlyK Messages postés 854 Date d'inscription vendredi 11 mars 2011 Statut Contributeur sécurité Dernière intervention 6 octobre 2014 - 13 sept. 2012 à 17:00
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

Utilisateur anonyme
13 sept. 2012 à 10:39
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
Utilisateur anonyme
11 sept. 2012 à 22:48
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
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
Utilisateur anonyme
12 sept. 2012 à 23:11
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
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
Utilisateur anonyme
13 sept. 2012 à 08:26
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
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
Utilisateur anonyme
13 sept. 2012 à 10:04
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
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
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
Utilisateur anonyme
13 sept. 2012 à 11:02
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
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
SlyK Messages postés 854 Date d'inscription vendredi 11 mars 2011 Statut Contributeur sécurité Dernière intervention 6 octobre 2014 147
13 sept. 2012 à 17:00
Hello,

Penses à mettre ton message en résolu ;)


@+
0