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 :

Grand concours pour debugger unexpected T_CASE


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 78
    Par défaut Grand concours pour debugger unexpected T_CASE
    Salut à tous les codeurs chevronnés.

    A gagner: ma gratitude éternelle !!!

    Ca fait désormais 2j que je parcours et re-re-re-re-parcours mon code de fond en comble, sans pouvoir mettre la main sur le problème :

    Parse error: syntax error, unexpected T_CASE in /homez.443/opbphoto/www/HomeB.php on line 35

    Code complet HomeB.php :

    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
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
     
    <?php
    			$con = mysql_connect('server', 'login', 'pass');
    				if(!$con)
    				{
    				  	header("Location: index.html");
    					exit;	
    				}
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <script type="text/javascript" src="zoom/jquery.js"></script>
    <script type="text/javascript" src="zoom/thickbox.js"></script>
    <link rel="stylesheet" href="zoom/thickbox.css" type="text/css" media="screen" />
     
    <link rel="icon" type="image/png" href="opbfavicon.png" />
     
     
    <title>OPB Photography - Daily life contemporary work</title>
    <meta name="keywords" content="OPB.Photography, OPB, photography, photographie, modern photographie, contemporan, photographie contemporaine, street art, argentique, photographie argentique">
     
    <link rel="stylesheet" type="text/css" href="default.css" />
    <link rel="stylesheet" type="text/css" href="dspGalerie.css" />
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
     
    <script type="text/javascript">
     
      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'XXX-ID']);
      _gaq.push(['_trackPageview']);
     
      (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
      })();
     
    </script>
     
    <script type="text/javascript" src="dspScript.js"></script>
     
    </head>
    <body bgcolor="#FFFFFF">
    <div id="contentWrapper">
     
     
    	<div id="leftSidebar" class="medium">
    	<a name="page-up"></a>
    	<font class="bodyTitle">OPB Photography</font>
    	<p>
     
    	<br>PORTFOLIO
    	<br><font size="-2">//////////////////////////////////</font>
     
    	<?php
     
    			$con = mysql_connect('server', 'login', 'pass');
    				if(!$con)
    				{
    					exit;	
    				}
     
    				mysql_select_db("db", $con);
     
    				// SERIES Menu 
     
    				$result = mysql_query("SELECT * FROM Serie ORDER BY serie_pos ASC;");
    				while($row = mysql_fetch_array($result))
    				{  
    					echo "<br><A HREF=\"Home.php?page=".$row['serieID']."\">".$row['titre']."</A>";
    				}
    				mysql_close($con);
    	?>
     
     
    	<p>
    	<br>THIS IS ME
    	<br><A HREF="Home.php?page=about">About</A>
    	<br><A HREF="Home.php?page=contact">Contact</A>
    	</div>
    	<div id="mainContent">
    	<div id="rightSidebar" align="justify">
     
    	<?php
    				$pageURL = ereg('[[:digit:]]', $_GET['page']);
    				if($_GET['page']) 
    					$page = $_GET['page'];	
    				else 
    					$page= "";
     
    				if($pageURL)
    				{
    					// SERIE description
    					// Cas d'une sÈrie (page = numÈro)
     
    					$con = mysql_connect('server', 'login', 'pass');
    					if(!$con)
    					{
    						  exit;	
    					}
     
    					mysql_select_db("db", $con);
     
    					$result = mysql_query("SELECT * FROM Serie WHERE serieID=".$page.";");
    					while($row = mysql_fetch_array($result))
    					{  
    						echo $row['description'];
    					}
     
    				mysql_close($con);
    				}
    				else
    				{
    					// Pages en chargement autre qu'une s»rie
     
    					switch($page) 
            			{				
    						case 'about':	       
    									echo "<b>Analogic/film photography.</b><br>Home processing (D76, Ilfosol, C41). Cameras :";
    									echo "<p><br>. Bessa R3A";
    									echo "<br>. Yashica 35 Electro";
    									echo "<br>. Rollei 35 SE";
    									echo "<br>. Mamiya 645 (now rarely used)";
    									echo "<br>. Kiev 88 (OoS *not happy*)";
    									echo "<p><br>";
    									echo "<p><br>";
    									echo "<p><br><p>&nbsp; &nbsp;<img src=\"opb-big.jpg\" width=\"85%\" height=\"85%\"/></center>";
    									break;
     
    						case 'contact': 	require 'flickRsign.html';
    											break;
     
    						default:		break;
    					}
    				}
    	?>
    	</div>	
     
     
     
    	<?php	
     
    			$pageURL = ereg('[[:digit:]]', $_GET['page']);
    				if($_GET['page']) 
    					$page = $_GET['page'];	
    				else 
    					$page= "";
     
    				if($pageURL)
    				{
     
    					$con = mysql_connect('server', 'login', 'pass');
    					if(!$con)
    					{
    					  exit;	
    					}
    					mysql_select_db("db", $con);
     
    					// SERIE description
    					// Cas d'une sÈrie (page = numÈro)
     
    					$result = mysql_query("SELECT * FROM Photo WHERE serieID=".$page." ORDER BY photo_pos ASC;");
    					$serieT = mysql_query("SELECT * FROM Serie WHERE serieID=".$page.";");
    					$serieTitle = mysql_fetch_array($serieT);
     
     
    					echo "<div id=\"galerie\">";
      					echo "<ul id=\"galerie_mini\">";
     
    					$pos1 = true;
    					$pos1_src = null;
    					$pos1_alt = null;
     
    					while($row = mysql_fetch_array($result))
    					{  
     
    						if($pos1)
    						{
    							$pos1_src = "Serie".$i."/".$row['fichier'];
    							$pos1_alt = $row['commentaire'];
    							$pos1 = false;	
    						}
     
        					echo "<li>";		
    				  		echo  "<a href=\"Serie".$page."/".$row['fichier']."\" title=\"".$serieTitle['titre']."\" class=\"thickbox\"><img src=\"Serie".$page."/".$row['fichier']."\" width=\"25%\" height=\"25%\" alt=\"".$row['commentaire']."\" border=\"0\" /></a>";
    				  		echo "</li>";
     
    					}
     
    						echo "</ul>";	
     
    						echo "<dl id=\"photo\">";
    				  		echo "<dt>".$pos1_alt."</dt>";
        					echo "<dd><img id=\"big_pict\" src=\"".$pos1_src."\" alt=\"".$pos1_alt."\" /></dd>";
      						echo "</dl>";
    						echo "</div>";
     
     
    				mysql_close($con);
    				}
    				else
    				{
    						// Pages en chargement autre qu'une sÈrie
     
    						switch($page) 
            				{
    							case 'about': 		require 'About.php';
    												break; 
     
    							case 'contact': 	require 'Contact.php';
    												break;
     
    							default:			break;
    						}
    				}
     
    	?>
     
    	</div>
     
     
     
    </div>
    </body>
    </html>


    J'ai récupéré la partie javascript pour la disposition des photos de mes galeries sur un autre site.

    Mais l'erreur ne provient pas de l'inclusion de ce code, ni du css qui va avec, car l'erreur date d'avant cet ajout.


    Si celà peut vous aider, mon site est online et le layout html donne ce résultat (pour le moment, sans la prise en compte du tutoriel javascript):

    www.opb-photography.com



    Merci infiniment !



    EDIT >>>


    Mon problème provenait en fait des MaJ des fichiers sur mon serveur ftp hébergé, les sauvegardes en transfert de fichiers en mode "automatique" sous Filezilla n'étant apparemment pas fiables.
    J'ai dû changer pour le mode "binaire", et là, aucun soucis pour la MaJ de mes fichiers sur mon ftp, ca écrase tout comme il faut et prend en compte les modifs.

    Cf. plus bas mon message #10, qui a mis sur la piste pour mon problème identifié par le membre du forum RunCodePhp , dans son message #12 !

  2. #2
    Membre Expert
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 149
    Par défaut
    C'est une erreur PHP, donc code Javascript ou non cela ne vient pas de ça.
    Et au passage... C'est quoi tous ces mysql_connect() ? O_o
    Un seul suffit amplement ! Là tu ouvres pleins de connexions à la bdd sans jamais les fermer.

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 78
    Par défaut
    Ouais mais bon, la flemme de définir une variable globale...
    j'ai plusieurs portions <?php ?> dans la page, voilà pourquoi il y a plusieurs mysql_connect.

    Pas si grave, j'ai pas 150.000 visiteurs par jour, ce n'est pas un site marchand, comme vous l'aurez constaté !

    Mais quoiqu'il en soit, tu as raison, et promis une fois le code "réparé" je m'attèle à le rendre plus concis et performant.

  4. #4
    Membre Expert
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 149
    Par défaut
    4 connexions dans un script, aucune déconnexion.
    Pour la majorité des hébergements standard il suffirait de 3 visiteurs pour provoquer un engorgement et des erreurs sur le nombre de connexion simultanées.

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 78
    Par défaut
    Citation Envoyé par transgohan Voir le message
    4 connexions dans un script, aucune déconnexion.
    Pour la majorité des hébergements standard il suffirait de 3 visiteurs pour provoquer un engorgement et des erreurs sur le nombre de connexion simultanées.

    et ca c'est quoi :

    mysql_close($con);


    P.S: mon site est UP, malgré ces aberrations. Je viens pas ici pour çà. Tu l'as dit, c'est bon, j'ai compris.

    C'est un peu la dernière chance, ptet que j'ai raté un truc mais ca m'étonnerait... ca fait un paquet de fois que je relis le code ligne après ligne.

  6. #6
    Membre Expert
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 149
    Par défaut
    Bah écoutes moi je peux t'assurer que c'est pas le code que tu nous montres qui génère cette erreur PHP.
    Vu que c'est du plain text à la ligne concernée.

  7. #7
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Je test ma variable $page qui est de type string (contient du texte), et si c'est lié à NULL, par défaut je lui alloue $page ="" avant de rentrer dans les switch
    Ce que tu soupçonne ce trouverait vers la ligne 118 ou 207 par rapport au code que tu as mis au début.

    Parse error: syntax error, unexpected T_CASE in /homez.443/opbphoto/www/HomeB.php on line 35
    Or, Php détecterait une erreur vers la ligne 35.

    Cette ligne 35 contiendrait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    Ce qui à première vu n'a strictement rien avoir avec un switch().

    Faudrait peut être faire le point sur le N° de ligne du code qui causerait problème.
    Au passage, j'ai rarement vu Php se tromper ou perdre les pédales au niveau des erreur, raison de plus sur une erreur de syntaxe.


    Admettons malgré tout que l'erreur viendrait de ce switch, remplace les par un simple : if/elseif
    D'autant plus qu'il n'y a que 2 conditions : about ou contact.


    Par ailleurs, si le switch/case n'effectue strictement rien par défaut, il est en toute logique inutile de mettre des :
    default: break;

    Au même titre que de faire 10 connexions à MySQL, qui au passage n'a absolument pas besoin de créer une variable globale, c'est d'ailleurs la grande particularité des fonction mysql_* (du driver), ce qui n'est pas le cas de PDO ou MySQLi.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/05/2011, 00h29
  2. Google lance un grand concours d'applications pour Chrome
    Par Gordon Fowler dans le forum Google Chrome
    Réponses: 5
    Dernier message: 02/05/2011, 10h30
  3. Réponses: 0
    Dernier message: 19/03/2010, 01h11
  4. [Debutant]Probleme pour Debugger sours JCreator
    Par Flam dans le forum Environnement de Développement Intégré (EDI)
    Réponses: 1
    Dernier message: 12/05/2004, 19h27

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