IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

T_CASE Syntax error - j'en peux plus!


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 78
    Points : 26
    Points
    26
    Par défaut T_CASE Syntax error - j'en peux plus!
    Aïe aïe aïe......

    Quel est le salopard qui a inventé cette fichue erreur sous PHP ??
    Ca fait 15 fois que je relis mon code, que je parcours le web et tout ce que je trouve pour me renseigner, c'est des cas (et des développeurs) aussi désespérés que ce qu'il m'arrive.

    Mon code est on ne peut plus bateau. Pas de code spaghetti, pas d'imbrications de boucles démentielles; bref j'ai tout vérifié X fois , le nb d'accolades ouvrantes/fermantes...

    Que faire docteur ?

    Parse error: syntax error, unexpected T_CASE in /homez.443/www/Home2.php on line 158
    Déjà pourquoi l'erreur fait état de "homez.443" ? Mon fichier s'appelle Home2.php.



  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Que faire docteur ?
    Ben déjà, si tu vas chez le docteur et que tu lui dis
    Docteur, je suis malade, qu'est-ce que j'ai ?
    la première chose qu'il va te demander, c'est de lui montrer (ou décrire) ce que tu as, sinon, il ne peut rien te dire !
    C'est pareil pour nous, tant qu'on aura pas vu ton code (notamment la ligne incriminée), on ne peut rien faire !!!

    Déjà pourquoi l'erreur fait état de "homez.443" ? Mon fichier s'appelle Home2.php.
    Parse error: syntax error, unexpected T_CASE in /homez.443/www/Home2.php on line 158

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 78
    Points : 26
    Points
    26
    Par défaut
    Tu as raison.

    Les quelques lignes aux environs de celle incriminée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
                    // CONTENU 
    		echo "<div id=\"mainContent\">";
    		echo "<div id=\"rightSidebar\" align=\"justify\">";
     
    		$browsedID = $_GET['page'];
    		$pageURL = ereg('[[:digit:]]', $browsedID);
     
                    if($pageURL)
    		{
    			// Cas d'une sÈrie (page = numÈro)
                            // ... 
                    }

  4. #4
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 78
    Points : 26
    Points
    26
    Par défaut
    Encore plus:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
     
    <?php		
     
    		// PHP-MYSQL
     
    		$con = @mysql_pconnect("SERVER", "LOGIN", "PWD");
    		if(!$con)
    		{
    		  	header("Location: index.html");
    			exit;	
       	    }
     
       	    @mysql_select_db("photography", $con);
     
     
       	    // CHARGEMENT DE LA BASE UTILE
       	    //****************************
     
       	    // -------------------------------------------------------------------------- 
       	    // Codification tableau: 
       	    // $Series[0][0] stocke le nombre total de séries enregistrées ($nbSeries).
       	    // $Series[i][0] stocke le TITRE de chaque série i.
       	    // Par conséquent, la 1ère image de la 1ère série est $Series[1][1] ... 
     
       	    // $Series[i][j] stocke le nom de fichier de la j-ième image (position) de la série i.
       		// $Textes[1] contient la description de la 1ère Série ...
       	    // --------------------------------------------------------------------------
     
     
       	 	// Nombre de séries enregistrées   
       	    $req = @mysql_query("SELECT * FROM Serie;");
       	    $nbSeries = @mysql_num_rows($req);
     
       	    // -----------------
       	    // INIT TABLEAU
       	    // -----------------
     
       	    $Series = array($nbSeries+1);
       	    $Textes = array($nbSeries+1);
     
       	    for($i=1; $i<=$nbSeries; $i++)
       	    {
     
       	    	// association du serieID dans le bon ordre d'affichage
       	    	$req = @mysql_query("SELECT serieID FROM Serie WHERE serie_pos=".$i.";");
       	    	$sID = @mysql_fetch_array($req);
       	    	$sID = $sID['serieID'];
     
       	    	// Cmb photos dans chaque série
       	    	$req = @mysql_query("SELECT fichier FROM Photo WHERE serieID=".$sID." ORDER BY photo_pos ASC;");
       	    	$content = @mysql_fetch_array($req);
       	    	$nbPics = @mysql_num_rows($req);
       	    	$Series[$i] = array($nbPics+1); 
     
       	    	// Enregistrement chemin d'accès fichiers images
       	    	$j = 1;
       	    	while($content)
       	    	{
       	    		$Series[$i][$j] = $content['fichier'];
       	    		$j++;
       	    		$content = @mysql_fetch_array($req);
       	    	}
     
       	    	// Enregistrement du TITRE de série
       	    	// Enregistrement du TEXTE de série
       	    	$req = @mysql_query("SELECT titre, description FROM Serie WHERE serieID=".$i.";");
       	    	$content = @mysql_fetch_array($req);
       	    	while($content)
       	    	{
       	    		$Series[$i][0] = $content['titre'];
       	    		$Textes[$i] = $content['description'];
       	    		$content = @mysql_fetch_array($req);
       	    	}
       	    }
     
       	    // Enregistrement
       	    $Series[0][0] = $nbSeries; 
     
       	    // -----------------
       	    // FIN INIT TABLEAU
       	    // -----------------
     
     
       	    // FIN CHARGEMENT BASE UTILE
       	    //****************************
     
       	    @mysql_close($con);
     
     
     
     		// PAGE HTML
     		//-------------------------------------------------------------------------------------------------------
     
     
     		echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">";
    		echo "<html>";
    		echo "<head>";
    		echo "<script type=\"text/javascript\" src=\"zoom/jquery.js\"></script>";
    		echo "<script type=\"text/javascript\" src=\"zoom/thickbox.js\"></script>";
    		echo "<link rel=\"stylesheet\" href=\"zoom/thickbox.css\" type=\"text/css\" media=\"screen\" />";
     
    		echo "<link rel=\"icon\" type=\"image/png\" href=\"opbfavicon.png\" />";
     
     
    		echo "<title>OPB Photography - Daily life contemporary work</title>";
    		echo "<meta name=\"keywords\" content=\"OPB.Photography, OPB, photography, photographie, modern photographie, contemporan, photographie contemporaine, street art, argentique, photographie argentique\"/>";
     
    		echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"default.css\">";
    		echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">";
     
    		echo "<script type=\"text/javascript\">";
     
      		echo "var _gaq = _gaq || [];";
      		echo "_gaq.push(['_setAccount', 'UE-1232JHD194-1']);";
      		echo "_gaq.push(['_trackPageview']);";
     
     		echo "(function() {";
        	echo "var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;";
        	echo "ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';";
        	echo "var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);";
     		echo " })();";
     
    		echo "</script>";
     
    		echo "</head>";
     
    		// BODY 
     
    		echo "<body bgcolor=\"#FFFFFF\">";
     
    		echo "<div id=\"contentWrapper\">";
     
     
    		echo "<div id=\"leftSidebar\" class=\"medium\">";
    		echo "<a name=\"page-up\"></a>";
    		echo "<font class=\"bodyTitle\">OPB Photography</font>";
    		echo "<p>";
     
    		echo "<br>PORTFOLIO";
    		echo "<br><font size=\"-2\">//////////////////////////////////</font>";
     
    		// COLONNE GAUCHE (TITRES SERIES)
       	    for($i=1; $i<=$nbSeries; $i++)
       	    	echo "<br><A HREF=\"Home.php?page=".$i."\">".$Series[i][0]."</A>";
     
       	    // COLONE GAUCHE (SUITE MENU)
       	    echo "<p>";
    		echo "<br>THIS IS ME";
    		echo "<br><A HREF=\"Home.php?page=about\">About</A>";
    		echo "<br><A HREF=\"Home.php?page=contact\">Contact</A>";
    		echo "</div>";
     
    		// CONTENU 
    		echo "<div id=\"mainContent\">";
    		echo "<div id=\"rightSidebar\" align=\"justify\">";
     
     
    		$browsedID = $_GET['page'];
    		$pageURL = ereg('[[:digit:]]', $browsedID);

    Merci d'avance.

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    c'est pas propre dutout

    déjà enlève les @, faut corriger les erreurs pas les supprimer
    et met le PHP dans le HTML et non l'inverse
    corrige ton indentation

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 051
    Points : 1 638
    Points
    1 638
    Par défaut
    La page est complète ?

    Sinon c'est bof d'inclure tout le HTML dans le PHP avec tes echo On voit des echo "}()"; ... pas facile à comprendre.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 78
    Points : 26
    Points
    26
    Par défaut
    C'est pas propre du tout? A mon avis c'est mieux dans ce sens là plutôt qu'une page .html contenant X portions <?php ?> ...

    Bref, c'est mon choix. C'est discutable, et vous avez peut être raison.

    L'indentation est bonne sur mon document. C'est le copier/coller qui chamboule un peu tout.

    Pour les @, je ne les ai jamais utilisées jusqu'à présent. C'est juste au cas où il y ait une erreur, pour qu'elles ne s'affichent pas à l'utilisateur. Mais, encore une fois dans mon cas présent: c'est un site tout à fait basique et qui fonctionne (mis en ligne depuis plus d'un an), sans erreur...

    Merci quand même pour tes remarques.

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    normale qu'il n'y ai pas d'erreur puisque tu ne les affiches pas, pour l'indentation c'est mieux d'avoir 4 espaces qu'une tabulation

  9. #9
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 78
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    normale qu'il n'y ai pas d'erreur puisque tu ne les affiches pas, pour l'indentation c'est mieux d'avoir 4 espaces qu'une tabulation
    Je veux dire que dans la version online (qui fonctionne depuis 1 an), j'ai une page Home.php que j'ai écrite conforme à vos remarques (du <?php?> dans du html et pas l'inverse , et pas de @ devant mes requêtes).

    Vous avez décidé de m'accuser de tous les maux, c'est ça ?

  10. #10
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par n1n0x Voir le message
    Vous avez décidé de m'accuser de tous les maux, c'est ça ?
    t'es là pour te demander de l'aide non ? faut accepter nos remarques, elles sont la pour t'aider pas pour autres choses.

  11. #11
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 78
    Points : 26
    Points
    26
    Par défaut
    Dis-moi, tu vas changer de ton parce que je ne vois aucune animosité de ma part, et j'accepte les remarques qui m'ont été faites; alors garde-toi de vouloir m'aider et remballe ta condescendance mon gars.

    Merci.

  12. #12
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par n1n0x Voir le message
    Dis-moi, tu vas changer de ton parce que je ne vois aucune animosité de ma part, et j'accepte les remarques qui m'ont été faites; alors garde-toi de vouloir m'aider et remballe ta condescendance mon gars.

    Merci.
    Y'pas de condescendance de ma part, c'est juste que tu prends mal ce que ton dis et c'est bien dommage.

    Si t'as fait les modifs montre les et dis nous les erreurs sinon on peux pas t'aider.

    ps : et reste polis stp

  13. #13
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 78
    Points : 26
    Points
    26
    Par défaut
    Peut-on essayer d'en revenir au mesasge d'erreur en lui-même ??
    Ce fameux Parse error: syntax error, unexpected T_CASE, il viendrait d'où ?

    J'ai lu que ca venait des switch. J'en ai qu'un dans toute ma page, et il est situé bien après le n° de ligne mentionné dans l'erreur......

  14. #14
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 051
    Points : 1 638
    Points
    1 638
    Par défaut
    La ligne 158 correspond à ton $_GET. Justement ton switch n'affecterait-il pas ce GET où il l'influencerait pas d'une quelconque façon ? Si tu pouvais poster la page en entier.

  15. #15
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par n1n0x Voir le message
    Peut-on essayer d'en revenir au mesasge d'erreur en lui-même ??
    Ce fameux Parse error: syntax error, unexpected T_CASE, il viendrait d'où ?

    J'ai lu que ca venait des switch. J'en ai qu'un dans toute ma page, et il est situé bien après le n° de ligne mentionné dans l'erreur......
    montre ton code corrigé

  16. #16
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 78
    Points : 26
    Points
    26
    Par défaut
    Mmmh, j'ai viré le switch et ca déconne tjs:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
     
    $browsedID = $_GET['page'];
     
    $pageURL = ereg('[[:digit:]]', $browsedID);
     
     
    		if($pageURL)
    		{ 
                            // le paramètre d'URL est une valeur numérique
                    }
    		else
    		{
                           // c'est une chaine de caractère ("about", "contact", ...)
                    if($browsedID=="about") 
       			{				       
    								require 'About.php';	
    			}
    			else if($browsedID=="contact") 
    			{						
    								require 'Contact.php';
     
    			}
    			else							
    			{		
    				//----------- Visionneuse
    			}
     
    		}


    Avant j'avais mon switch à l'intérieur du else{} global, c-a-d que le paramètre d'URL n'est pas un chiffre, mais une chaine de caractère.
    Normalement donc, aucun problème d'interprétation du switch puisqu'il était uniquement utilisé dans le cas légitime d'une chaine de caractère...

    J'ai donc voulu tester en le virant complètement, au profit de if...else if...else.

    Pas mieux !

  17. #17
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    montre toujours le code complet, avec l'erreur (même si c'est la même)

Discussions similaires

  1. Parse error: syntax error, unexpected T_CASE
    Par Kemzy dans le forum Langage
    Réponses: 12
    Dernier message: 16/07/2008, 14h07
  2. [urgent] Rave report je n'en peux plus->impression via co
    Par zax-tfh dans le forum Bases de données
    Réponses: 2
    Dernier message: 29/02/2004, 09h15
  3. Réponses: 7
    Dernier message: 27/02/2004, 21h14
  4. [IB71] Je ne peux plus supprimer mes foreign key...
    Par BoeufBrocoli dans le forum InterBase
    Réponses: 3
    Dernier message: 19/09/2003, 14h39
  5. "vector" provoque "syntax error", malgré
    Par seenkay dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 24/08/2003, 03h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo