Problème switch

Résolu
Bonjour, afin de créer un forum, je fais ce tutoriel : <lien url="http://www.siteduzero.com/tutoriel-3-9953-poster.html">. Cependant pour la switch j'ai une erreur de marqué :
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&amp;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&amp;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

Résumé de la discussion

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.

Bobot (l’IA à votre service)
  1. Oui je vais essayer ça. Merci pour toutes tes réponses ! Bonne fin de journée !
    1. Contributeur
      et si tu essayer de remplacer le switch par if elseif…

      si non en réorganisant ton fichier et en faisant des include des différentes parties au lieu de mélanger trop PHP et HTML ?
      1. J'ai retapé les lignes "à la main" mais rien n'y fait.... Quand même bizar...
        1. Contributeur
          à part un problème de caractère incorrect je ne vois pas…
          essaie d'effacer les lignes 204-206 et de les retaper entièrement (sans copier/coller).
          1. Voici le code : http://pastebin.com/m72205dfd
            Et le message d'erreur : Parse error: parse error in C:\monDossier\forum\poster.php on line 205
            1. Contributeur
              salut,

              tu nous colles le message d'erreur ici et le code sur pastebin.com, stp ?
              1. Contributeur
                204 ???
                mais y a rien !!!
                ou est-ce qu'il nous voit une erreur ?

                il nous gonfle à la fin, lui !
                -:oD
                1. Avec ce que tu m'as donné j'ai Parse error: parse error in C:\mondossier\forum\poster.php on line 204
                  1. Contributeur
                    avec cette version :
                    http://pastebin.com/d202ad8bc

                    ça passe chez moi !
                    1. Contributeur
                      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…
                      1. 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']))
                        1. 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)
                          1. 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']))
                            
                            1. Contributeur
                              cf. au dessus.
                          2. Contributeur
                            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.
                            1. Oui c'est normal sans faire exprès le bloc note était en retour automatique à la ligne. Et toujours ce problème... pfff
                              1. Contributeur
                                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>
                                • 1
                                • 2