Problème switch
RésoluPsix Messages postés 105 Date d'inscription Statut Membre Dernière intervention -
Parse error: parse error in C:\documents\forum\poster.php on line 114
Voici mon code du switch :
<?
switch($action)
{
case "repondre": //Premier cas on souhaite répondre
?>
<h1>Poster une réponse</h1>
<form method="post" action="postok.php?action=repondre&t=<?php echo $topic ?>" name="formulaire">
<fieldset><legend>Mise en forme</legend>
<input type="button" id="gras" name="gras" value="Gras" onClick="javascript:bbcode('[g]', '[/g]');return(false)" />
<input type="button" id="italic" name="italic" value="Italic" onClick="javascript:bbcode('[i]', '[/i]');return(false)" />
<input type="button" id="souligné" name="souligné" value="Souligné" onClick="javascript:bbcode('[s]', '[/s]');return(false)" />
<input type="button" id="lien" name="lien" value="Lien" onClick="javascript:bbcode('[url]', '[/url]');return(false)" />
<br /><br />
<img src="./images/smileys/heureux.gif" title="heureux" alt="heureux" onClick="javascript:smilies(' :D ');return(false)" />
<img src="./images/smileys/lol.gif" title="lol" alt="lol" onClick="javascript:smilies(' :lol: ');return(false)" />
<img src="./images/smileys/triste.gif" title="triste" alt="triste" onClick="javascript:smilies(' :triste: ');return(false)" />
<img src="./images/smileys/cool.gif" title="cool" alt="cool" onClick="javascript:smilies(' :frime: ');return(false)" />
<img src="./images/smileys/rire.gif" title="rire" alt="rire" onClick="javascript:smilies(' XD ');return(false)" />
<img src="./images/smileys/confus.gif" title="confus" alt="confus" onClick="javascript:smilies(' :s ');return(false)" />
<img src="./images/smileys/choc.gif" title="choc" alt="choc" onClick="javascript:smilies(' :o ');return(false)" />
<img src="./images/smileys/question.gif" title="?" alt="?" onClick="javascript:smilies(' :interrogation: ');return(false)" />
<img src="./images/smileys/exclamation.gif" title="!" alt="!" onClick="javascript:smilies(' :exclamation: ');return(false)" />
</fieldset>
<fieldset><legend>Message</legend><textarea cols="80" rows="8" id="message" name="message"></textarea></fieldset>
<input type="submit" name="submit" value="Envoyer" />
<input type="reset" name = "Effacer" value = "Effacer"/>
</p></form>
<?php
break;
case "nouveautopic":
?>
<h1>Nouveau topic</h1>
<form method="post" action="postok.php?action=nouveautopic&f=<?php echo $forum ?>" name="formulaire">
<fieldset><legend>Titre</legend>
<input type="text" size="80" id="titre" name="titre" /></fieldset>
<fieldset><legend>Mise en forme</legend>
<input type="button" id="gras" name="gras" value="Gras" onClick="javascript:bbcode('[g]', '[/g]');return(false)" />
<input type="button" id="italic" name="italic" value="Italic" onClick="javascript:bbcode('[i]', '[/i]');return(false)" />
<input type="button" id="souligné" name="souligné" value="Souligné" onClick="javascript:bbcode('[s]', '[/s]');return(false)" />
<input type="button" id="lien" name="lien" value="Lien" onClick="javascript:bbcode('[url]', '[/url]');return(false)" />
<br /><br />
<img src="./images/smileys/heureux.gif" title="heureux" alt="heureux" onClick="javascript:smilies(':D');return(false)" />
<img src="./images/smileys/lol.gif" title="lol" alt="lol" onClick="javascript:smilies(':lol:');return(false)" />
<img src="./images/smileys/triste.gif" title="triste" alt="triste" onClick="javascript:smilies(':triste:');return(false)" />
<img src="./images/smileys/cool.gif" title="cool" alt="cool" onClick="javascript:smilies(':frime:');return(false)" />
<img src="./images/smileys/rire.gif" title="rire" alt="rire" onClick="javascript:smilies('XD');return(false)" />
<img src="./images/smileys/confus.gif" title="confus" alt="confus" onClick="javascript:smilies(':s');return(false)" />
<img src="./images/smileys/choc.gif" title="choc" alt="choc" onClick="javascript:smilies(':O');return(false)" />
<img src="./images/smileys/question.gif" title="?" alt="?" onClick="javascript:smilies(':interrogation:');return(false)" />
<img src="./images/smileys/exclamation.gif" title="!" alt="!" onClick="javascript:smilies(':exclamation:');return(false)" /></fieldset>
<fieldset><legend>Message</legend>
<textarea cols="80" rows="8" id="message" name="message"></textarea>
<label><input type="radio" name="mess" value="Annonce" />Annonce</label>
<label><input type="radio" name="mess" value="Message" checked="checked" />Topic</label>
</fieldset>
<p>
<input type="submit" name="submit" value="Envoyer" />
<input type="reset" name = "Effacer" value = "Effacer" /></p>
</form>
<?php
break;
//D'autres cas viendront s'ajouter ici par la suite
default; //Si jamais c'est aucun de ceux là c'est qu'il y a eu un problème :o
echo'<p>Cette action est impossible</p>';
} //Fin du switch
mysql_close();
?>
Avec en ligne 114 :
<?php } //ligne 114 //Enfin sinon c'est au sujet de la modération(on verra plus tard en détail) //On ne connait que le post, il faut chercher le reste elseif (isset ($_GET['p']))
Merci d'avoir lu mon message. Et je vous serais reconnaissant de m'aider :).
--
. . !!!! Bonne journée !!!!
\__/ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Configuration: Windows XP Edition familiale Version 2002
27 réponses
- 1
- 2
Une erreur de syntaxe PHP, de type parse error, est signalée dans un fichier PHP lors d'une tentative d'implémenter une fonction de réponse à l'aide d'un switch. Plusieurs correctifs évoqués suggèrent de partager le code complet sur Pastebin ou d'inspecter les balises PHP et les accolades pour identifier les erreurs de fermeture. En cas de réponse, certains indiquent qu'un retour à la ligne au milieu d'une balise PHP peut déclencher ce type d'erreur, et recommandent de retaper les lignes problématiques sans copier-coller. D'autres échanges indiquent que la résolution peut passer par la suppression des retours à la ligne dans les structures PHP et par la vérification des expressions et des accolades, sans conclure sur l'état général.
-
salut,
chez moi ça compile sans soucis mais il faut deux points au bout du default au lieu d'un point virgule :default: //Si jamais c'est aucun de ceux là c'est qu'il y a eu un problème :o
-
Merci de m'avoir répondu, j'ai modifié le ; en : mais cela en change rien, il y a exactement la même erreur...
-
bizarre…
peux-tu nous donner le message d'erreur complet stp ?
-
Je l'ai donné complet, j'ai une page toute blanche avec "Parse error: parse error in C:mondossier\forum\poster.php on line 114"
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
J'ai cherché et je n'ai pas trouver de unexpeted etc, et j'ai essayer de coller le code mais cela a rien changer..
-
grrrr…
peux-tu mettre le code complet stp ?
-
Merci beaucoup pour toute ton aide. Voici le code entier :
<?php //Cette fonction doit être appelée avant tout code html session_start(); $balises = true; //On donne ensuite un titre à la page, puis on appelle notre fichier debut.php $titre = "Poster"; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > <head> <?php if (!empty($titre)) //Si le titre est indiqué, on l'affiche entre les balises <title> { echo '<title> '.$titre.' </title>'; } else //Sinon, on écrit forum par défaut { echo '<title> Forum </title>'; } ?> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <link rel="stylesheet" media="screen" type="text/css" title="Design" href="./css/design.css" /> <script> function bbcode(bbdebut, bbfin) { var input = window.document.formulaire.message; input.focus(); if(typeof document.selection != 'undefined') { var range = document.selection.createRange(); var insText = range.text; range.text = bbdebut + insText + bbfin; range = document.selection.createRange(); if (insText.length == 0) { range.move('character', -bbfin.length); } else { range.moveStart('character', bbdebut.length + insText.length + bbfin.length); } range.select(); } else if(typeof input.selectionStart != 'undefined') { var start = input.selectionStart; var end = input.selectionEnd; var insText = input.value.substring(start, end); input.value = input.value.substr(0, start) + bbdebut + insText + bbfin + input.value.substr(end); var pos; if (insText.length == 0) { pos = start + bbdebut.length; } else { pos = start + bbdebut.length + insText.length + bbfin.length; } input.selectionStart = pos; input.selectionEnd = pos; } else { var pos; var re = new RegExp('^[0-9]{0,3}$'); while(!re.test(pos)) { pos = prompt("insertion (0.." + input.value.length + "):", "0"); } if(pos > input.value.length) { pos = input.value.length; } var insText = prompt("Veuillez taper le texte"); input.value = input.value.substr(0, pos) + bbdebut + insText + bbfin + input.value.substr(pos); } } function smilies(img) { window.document.formulaire.message.value += '' + img + ''; } </script> </head> <?php if (isset ($_COOKIE['pseudo']) && !isset ($_SESSION['pseudo'])) { $_SESSION['pseudo'] = $_COOKIE['pseudo']; /* On créé la variable de session à partir du cookie pour ne pas avoir à vérifier 2 fois sur les pages qu'un membre est connecté. */ } if (isset ($_COOKIE['pseudo']) && isset ($_SESSION['pseudo'])) { //On est connecté } if (!isset ($_COOKIE['pseudo']) && !isset ($_SESSION['pseudo'])) { //On n'est pas connecté } ?> <body> <div id="banniere"></div> <div id="corps_forum"> <a href="./voirtopic.php?t=<?php echo $topic ; ?>"><?php echo stripslashes(htmlspecialchars($data1['topic_titre'])); ? ></a></p> <?php } //Enfin sinon c'est au sujet de la modération(on verra plus tard en détail) //On ne connait que le post, il faut chercher le reste elseif (isset ($_GET['p'])) { $post = (int) $_GET['p']; $requete1 = mysql_query(' SELECT post_createur, forum_post.topic_id, topic_titre, forum_topic.forum_id, forum_name, auth_view, auth_post, auth_topic, auth_annonce, auth_modo FROM forum_post LEFT JOIN forum_topic ON forum_topic.topic_id = forum_post.topic_id LEFT JOIN forum_forum ON forum_forum.forum_id = forum_topic.forum_id WHERE forum_post.post_id ="'.$post.'"')or die(mysql_error()); $data1 = mysql_fetch_array($requete1); $topic = $data1['topic_id']; $forum = $data1['forum_id']; ?> <p><a href ="./index.php">Index du forum</a> / <a href="./voirforum.php?f=<?php echo $forum ; ?>"><?php echo stripslashes(htmlspecialchars($data1['forum_name'])); ?></a> / <a href="./voirtopic.php?t=<?php echo $topic ; ?>"><?php echo stripslashes(htmlspecialchars($data1['topic_titre'])); ? ></a></p> <?php } //Ici on s'intéresse au visiteur if (isset($_SESSION['pseudo'])) // Si le membre est connecté { //Voici les options echo'<p>Vous êtes connecté en tant que <a href="./voirprofil.php?m='.intval($_SESSION['id']).'&action=consulter"> '.stripslashes(htmlspecialchars($_SESSION['pseudo'])).'</a><br /> <a href="./voirprofil.php?action=modifier">Modifier mon profil</a><br /> <a href="./messagesprives.php">Consulter mes messages privés</a><br /> <a href ="./deconnexion.php">Se déconnecter</a><br /></p>'; } // Sinon l'accès à cette page est interdit ! ^^ else { echo 'Désolé, vous devez être enregistré pour poster</div></body></html>'; exit(); } ?> <? switch($action) { case "repondre": //Premier cas on souhaite répondre ?> <h1>Poster une réponse</h1> <form method="post" action="postok.php?action=repondre&t=<?php echo $topic ; ?>" name="formulaire"> <fieldset><legend>Mise en forme</legend> <input type="button" id="gras" name="gras" value="Gras" onClick="javascript:bbcode('[g]', '/g');return(false)" /> <input type="button" id="italic" name="italic" value="Italic" onClick="javascript:bbcode('[i]', '/i');return(false)" /> <input type="button" id="souligné" name="souligné" value="Souligné" onClick="javascript:bbcode('[s]', '/s');return(false)" /> <input type="button" id="lien" name="lien" value="Lien" onClick="javascript:bbcode('[url]', '/url');return(false)" /> <br /><br /> <img src="./images/smileys/heureux.gif" title="heureux" alt="heureux" onClick="javascript:smilies(' :D ');return(false)" /> <img src="./images/smileys/lol.gif" title="lol" alt="lol" onClick="javascript:smilies(' :lol: ');return(false)" /> <img src="./images/smileys/triste.gif" title="triste" alt="triste" onClick="javascript:smilies(' :triste: ');return(false)" /> <img src="./images/smileys/cool.gif" title="cool" alt="cool" onClick="javascript:smilies(' :frime: ');return(false)" /> <img src="./images/smileys/rire.gif" title="rire" alt="rire" onClick="javascript:smilies(' XD ');return(false)" /> <img src="./images/smileys/confus.gif" title="confus" alt="confus" onClick="javascript:smilies(' :s ');return(false)" /> <img src="./images/smileys/choc.gif" title="choc" alt="choc" onClick="javascript:smilies(' :o ');return(false)" /> <img src="./images/smileys/question.gif" title="?" alt="?" onClick="javascript:smilies(' :interrogation: ');return(false)" /> <img src="./images/smileys/exclamation.gif" title="!" alt="!" onClick="javascript:smilies(' :exclamation: ');return(false)" /> </fieldset> <fieldset><legend>Message</legend><textarea cols="80" rows="8" id="message" name="message"></textarea></fieldset> <input type="submit" name="submit" value="Envoyer" /> <input type="reset" name = "Effacer" value = "Effacer"/> </p></form> <?php break; case "nouveautopic": ?> <h1>Nouveau topic</h1> <form method="post" action="postok.php?action=nouveautopic&f=<?php echo $forum ; ?>" name="formulaire"> <fieldset><legend>Titre</legend> <input type="text" size="80" id="titre" name="titre" /></fieldset> <fieldset><legend>Mise en forme</legend> <input type="button" id="gras" name="gras" value="Gras" onClick="javascript:bbcode('[g]', '/g');return(false)" /> <input type="button" id="italic" name="italic" value="Italic" onClick="javascript:bbcode('[i]', '/i');return(false)" /> <input type="button" id="souligné" name="souligné" value="Souligné" onClick="javascript:bbcode('[s]', '/s');return(false)" /> <input type="button" id="lien" name="lien" value="Lien" onClick="javascript:bbcode('[url]', '/url');return(false)" /> <br /><br /> <img src="./images/smileys/heureux.gif" title="heureux" alt="heureux" onClick="javascript:smilies(':D');return(false)" /> <img src="./images/smileys/lol.gif" title="lol" alt="lol" onClick="javascript:smilies(':lol:');return(false)" /> <img src="./images/smileys/triste.gif" title="triste" alt="triste" onClick="javascript:smilies(':triste:');return(false)" /> <img src="./images/smileys/cool.gif" title="cool" alt="cool" onClick="javascript:smilies(':frime:');return(false)" /> <img src="./images/smileys/rire.gif" title="rire" alt="rire" onClick="javascript:smilies('XD');return(false)" /> <img src="./images/smileys/confus.gif" title="confus" alt="confus" onClick="javascript:smilies(':s');return(false)" /> <img src="./images/smileys/choc.gif" title="choc" alt="choc" onClick="javascript:smilies(':O');return(false)" /> <img src="./images/smileys/question.gif" title="?" alt="?" onClick="javascript:smilies(':interrogation:');return(false)" /> <img src="./images/smileys/exclamation.gif" title="!" alt="!" onClick="javascript:smilies(':exclamation:');return(false)" /></fieldset> <fieldset><legend>Message</legend> <textarea cols="80" rows="8" id="message" name="message"></textarea> <label><input type="radio" name="mess" value="Annonce" />Annonce</label> <label><input type="radio" name="mess" value="Message" checked="checked" />Topic</label> </fieldset> <p> <input type="submit" name="submit" value="Envoyer" /> <input type="reset" name = "Effacer" value = "Effacer" /></p> </form> <?php break; //D'autres cas viendront s'ajouter ici par la suite default: //Si jamais c'est aucun de ceux là c'est qu'il y a eu un problème :o echo '<p>Cette action est impossible</p>'; } //Fin du switch mysql_close(); ?> </div> </body> </html>
-
de 118 à 120, il y a un retour à la ligne au milieu de la balise fermante de PHP :
<a href="./voirtopic.php?t=<?php echo $topic ; ?>"><?php echo stripslashes(htmlspecialchars($data1['topic_titre'])); ? ></a></p>
-
Oui c'est normal sans faire exprès le bloc note était en retour automatique à la ligne. Et toujours ce problème... pfff
-
en dessous :
<a href="./voirtopic.php?t=<?php echo $topic ; ?>"><?php echo stripslashes(htmlspecialchars($data1['topic_titre'])); ?></a></p> <?php }
tu fermes une accolade qui est déjà fermée au dessus.
-
Après l'avoir supprimer j'ai une erreur à la ligne 122 ... (Parse error: parse error in C:\mondossier\forum\poster.php on line 122)
elseif (isset ($_GET['p']))
-
Cf au-dessus ? Je ne vois pas... (désolé je ne vois pas ce que tu veux dire, je vois pas ta référence quoi)
-
>>> LÀ !!! <<<
-
Oui, mais quand je supprime cette { j'ai une erreur à la ligne 122 ... (Parse error: parse error in C:\mondossier\forum\poster.php on line 122)
elseif (isset ($_GET['p']))
-
ah déjà !
j'avais pas suivi !
-:o)
enlève la fermeture d'accolade de la ligne 108 et mets la avant le elseif.
tu auras la suivante en 136…
-
avec cette version :
http://pastebin.com/d202ad8bc
ça passe chez moi !
-
Avec ce que tu m'as donné j'ai Parse error: parse error in C:\mondossier\forum\poster.php on line 204
-
204 ???
mais y a rien !!!
ou est-ce qu'il nous voit une erreur ?
il nous gonfle à la fin, lui !
-:oD
-
Je suis bien d'accord lol.
-
as-tu avancé ?
- 1
- 2