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 :

Erreurs Migration PHP 4 vers PHP 5 avec <? et <?php + T_else


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Responsable Applicatif / Développeur
    Inscrit en
    Mai 2007
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Responsable Applicatif / Développeur

    Informations forums :
    Inscription : Mai 2007
    Messages : 495
    Par défaut Erreurs Migration PHP 4 vers PHP 5 avec <? et <?php + T_else
    J'ai essayé de migrer un site web de php 4 vers 5 (testé en local sous windows), et des erreurs étranges sont apparues.
    Non pas avec les fonctions modifiées comme dans http://fr.php.net/manual/en/migration5.incompatible.php

    mais avec des erreurs à des lignes ou rien n'est écrit ou alors des erreurs à la ligne 2538 alors que je n'ai que 2532 lignes.

    Des fois j'ai réussi à les corriger en remplaçant les <? par <?php mais souvent des erreurs sont apparues derriere.

    exemple : (pour un fichier de 2538 lignes)

    Parse error: syntax error, unexpected $end in admin.php on line 2538

    bon à partir de là je corrige le <? en <?php dans cette portion puis là j'ai une autre erreur qui apparait :

    Parse error: syntax error, unexpected T_ELSE in admin.php on line 2508 alors que bien sur pour ce if il y a un else et tout est bien fermé.

    Quelqu'un a une idée du problème?

  2. #2
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2006
    Messages : 37
    Par défaut
    Peut être un point virgule ou une paranthèse mal fermée ... Difficile de voir sans le code :/

    En tout cas, les balises php c'est :
    ouverture <?php
    fermeture ?>

    C'est déjà ça de corrigé !

    Ensuite pour un T_ELSE unexpected, si tu as des lignes vide en bas de page, il te les comptes dans l'erreur, c'est pour ca que si tu as l'erreur à la ligne 2538 alors que tu as réellement que 2532 lignes de code. Mais l'erreur se trouve certainement plus haut dans ta page !

    cdt.

  3. #3
    Membre éclairé
    Homme Profil pro
    Responsable Applicatif / Développeur
    Inscrit en
    Mai 2007
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Responsable Applicatif / Développeur

    Informations forums :
    Inscription : Mai 2007
    Messages : 495
    Par défaut
    dsl oui c'est difficile de montrer le code car il y a 2500 lignes dans le fichier.
    là jai corrigé tout les <? en <?php .

    maintenant j'ai une erreur avec un case :
    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
     
    		<?php
     
        break; 
     
    ###########################################################################################
    #
    #			Page de validation d'ajout de catégorie 
    #
    ###########################################################################################
     
    	case 'add_categorie_val' : 
     
    		echo '<form method="post" action="admin.php?mode=add_categorie_val_ok"><center>Etes vous sûr de vouloir ajouter ces informations :<br><br>'; 
     
    		$add_categorie_val_vars=$HTTP_POST_VARS['add_categorie_val'];
    		$add_categorie_val_vars = addslashes($add_categorie_val_vars);
     
    		$add_domaine_val_vars=$HTTP_POST_VARS['add_domaine_val'];
    		$add_domaine_val_vars=addslashes($add_domaine_val_vars);
     
    		echo "Domaine : <b>".stripslashes($add_domaine_val_vars)."</b><br>Catégorie : <b>".stripslashes($add_categorie_val_vars)."</b>";
    		echo "<input type='hidden' name='add_domaine_val_vars' value='$add_domaine_val_vars'><br>";
    		?><input type='hidden' name='add_categorie_val_vars' value="<?php echo $add_categorie_val_vars; ?>"><br><?php
    		echo "<br><input class='smbutton' type='submit' value='Valider'></center></form>";
     
        break;
    erreur :
    Parse error: syntax error, unexpected T_CASE in admin.php on line 270

    la ligne 270 est : case 'add_categorie_val' :

    mais je précise que tout le code fonctionne avec les <? sous php 4.

  4. #4
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2006
    Messages : 37
    Par défaut
    Il commence où ton switch ? C'est peut être à partir de là que c'est problématique.

    Par contre tu peux améliorer un peu les balises html aussi, ainsi les input doivent se fermé avec / ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="text" name="name" value="value" />
    Les br également :
    En fait pour résumée toute les balises html qui n'ont pas de balise de fermeture doivent être fermée une fois ouverte d'où l'ajout du / avant le >
    C'est également valable pour :
    img, hr, par exemple. C'est plus propre

    Pour le problème php en lui même, regarde du côté de ton switch ou de ton dernier break

  5. #5
    Membre éclairé
    Homme Profil pro
    Responsable Applicatif / Développeur
    Inscrit en
    Mai 2007
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Responsable Applicatif / Développeur

    Informations forums :
    Inscription : Mai 2007
    Messages : 495
    Par défaut
    merci.

    du coté de mon switch il n'y a aucun problème.
    et tout mes case ont bien un break; (celui de l'exemple est le 2eme sur une dizaine).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if(isset($HTTP_GET_VARS['mode']))
    {
     
    // On récupère la variable qui est passée par l'URL de nos pages *.htm 
    $mode = $HTTP_GET_VARS['mode']; 
     
    // On attribue la variable récuperer à une nouvelle variable qu'on utilisera dans notre commande switch 
    $execute = $mode; 
     
    //lancement de notre commande switch 
    switch($execute) 
    {

  6. #6
    Membre éclairé
    Homme Profil pro
    Responsable Applicatif / Développeur
    Inscrit en
    Mai 2007
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Responsable Applicatif / Développeur

    Informations forums :
    Inscription : Mai 2007
    Messages : 495
    Par défaut
    d'ailleur si je le met en commentaires, il dit qu'il y a une erreur au case suivant.
    La syntaxe pour les case n'aurait pas changer entre php4 et 5? je n'ai rien lu sur ça.

    mon code :

    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
    switch($execute) 
    { 
     
    ###########################################################################################
    #
    #			Page d'accueil d'ajout de domaine 
    #
    ###########################################################################################
     
     
      case 'add_domaine' : 
     
    		echo '<center>';
    		// Affichage des domaines
    		$domaine_fiche='SELECT `domaine_id`, `domaine_nom` FROM `domaine` ORDER BY `domaine_nom` ASC';
    		$domaine_fiche_query=mysql_query($domaine_fiche);
    		$nombre_de_ligne_domaine = mysql_num_rows($domaine_fiche_query);
     
            echo 'Ajouter un domaine<br><br>'; 
    		echo '<table><tr><td><center><b>Domaine</b></center></td></tr>';
     
    		while($domaine_fiche_query_echo=mysql_fetch_array($domaine_fiche_query))
    		{
    			$domaine_id_echo=$domaine_fiche_query_echo['domaine_id'];
    			$domaine_nom_echo=$domaine_fiche_query_echo['domaine_nom'];
     
    			echo "<tr><td>".$domaine_nom_echo."</td><td>&nbsp;</td>";
    			?><td bgcolor='#efefef'><a href="admin.php?mode=modify_domaine&numero=<?php echo $domaine_id_echo; ?>&domaine=<?php echo $domaine_nom_echo; ?>"><img src="images/modify.gif" border="0"></a></td><td bgcolor='#efefef'><a href="admin.php?mode=delete_domaine&numero=<?php echo $domaine_id_echo; ?>&domaine=<?php echo $domaine_nom_echo; ?>"><img src="images/delete.gif" border="0"></a></center></font>
    							</td></tr></tr>
    			<?php
    		}
    		echo'</table>';
    		?>
    		<form method="post" action="admin.php?mode=add_domaine_val">
    		<input type="text" name="add_domaine_vars"><br><br><input type="submit" value="Ajouter" class="smbutton"></center></form>
    	   <?php
     
        break; 
     
    ###########################################################################################
    #
    #			Page de validation d'ajout de domaine 
    #
    ###########################################################################################
     
        case 'add_domaine_val' : 
     
    		if(empty($HTTP_POST_VARS['add_domaine_vars']))
    		{
    					echo "<center>Erreur de saisie, veuillez rentrer un nom de domaine a inserer</center>";
    		}
    		else
    		{
    				echo '<form method="post" action="admin.php?mode=add_domaine_val_ok"><center>Etes vous sûr de vouloir ajouter le domaine :<br><br>'; 
     
    				$add_domaine_vars=addslashes($HTTP_POST_VARS['add_domaine_vars']);
     
    				echo "<b>".stripslashes($add_domaine_vars)."</b>";
    				?><input type='hidden' name='add_domaine_vars_val' value="<?php echo $add_domaine_vars; ?>"><br><?php
    				echo "<br><input class='smbutton' type='submit' value='Valider'></center></form>";
    		}
     
        break; 
     
    ###########################################################################################
    #
    #			Page deinsertion de nouveau domaine 
    #
    ###########################################################################################
     
    	case 'add_domaine_val_ok' :
     
    		echo '<center>Le DOMAINE vient d\'être ajouter dans la base de données :<br><br>'; 
     
    		$add_domaine_vars_val=$HTTP_POST_VARS['add_domaine_vars_val'];
     
    		$search='SELECT `domaine_id` FROM `domaine`';
    		$search_query=mysql_query($search) or die(mysql_error());
    		$nombre_search=mysql_num_rows($search_query);
     
    		//$nombre_search=$nombre_search+1;
     
     
    		$sql="INSERT INTO `domaine` ( `domaine_id` , `domaine_nom` ) VALUES ('', '$add_domaine_vars_val')";
    		$query=mysql_query($sql) or die(mysql_error());
     
     
    		echo "<b>".stripslashes($add_domaine_vars_val)."</b><br><br>";
     
    		echo "<b><a href='admin.php?mode=add_domaine'>Retourner sur la page d'ajout de domaine</a></b>";
     
        break; 
     
    ###########################################################################################
    #
    #			Page d'accueil de l'ajout de catégorie
    #
    ###########################################################################################
     
     
        case 'add_categorie' : 
     
    			?><center><table><tr><td colspan="2">
     
    				<?php
     
                echo '<center>Ajouter une categorie'; 
    			// Affichage des domaines
    			$domaine_fiche="select * from `domaine` ORDER BY `domaine_nom` ASC";
    			$domaine_fiche_query=mysql_query($domaine_fiche);
    			$nombre_de_ligne_domaine = mysql_num_rows($domaine_fiche_query);
    			?>
    			<FORM method=post action="admin.php?mode=add_categorie_val">
    			<b>Sélectionner le domaine ou ajouter la catégorie<br>
    			<SELECT name="add_domaine_val"><?php
    				while($domaine_fiche_query_echo=mysql_fetch_array($domaine_fiche_query))
    				{
    					$domaine_id_echo=$domaine_fiche_query_echo['domaine_id'];
    					$domaine_nom_echo=$domaine_fiche_query_echo['domaine_nom'];
    					?><OPTION><?php echo $domaine_nom_echo; ?></OPTION><?php
    				}
     
    			if(isset($HTTP_GET_VARS['nom']))
    			{
    			?>
    			<?php}?>
    			</SELECT>
    			<br><br><b>Nom de la catégorie à ajouter</b><br>
    			<input type="text" name="add_categorie_val">
    			<br>
    			<input type="submit" class="smbutton" value="Ajouter">
    			</FORM></center>
    				</td></tr><tr><td>&nbsp;</td></tr><tr><td>
     
    							<?php
    			// Affichage des domaines
    				$domaine_fiche="select * from `domaine` ORDER BY `domaine_nom` ASC";
    			$domaine_fiche_query=mysql_query($domaine_fiche);
    			$nombre_de_ligne_domaine = mysql_num_rows($domaine_fiche_query);
    			while($domaine_fiche_query_echo=mysql_fetch_array($domaine_fiche_query))
    			{
     
    			$domaine_id_echo=$domaine_fiche_query_echo['domaine_id'];
    			$domaine_nom_echo=$domaine_fiche_query_echo['domaine_nom'];
     
    			// Affichage des categories triés par domaine (pour l'affichage et génération du rowspan du tableau
    			$categorie_fiche_rowspan="select * from `categorie` where `domaine_num`= '$domaine_id_echo' ORDER BY`categorie_nom` ASC";
    			$categorie_fiche_rowspan_query=mysql_query($categorie_fiche_rowspan);
    			$nombre_de_ligne_categorie_rowspan = mysql_num_rows($categorie_fiche_rowspan_query);
     
    			?>
     
    			<tr>
    				<td rowspan="<?php echo $nombre_de_ligne_categorie_rowspan; ?>" bgcolor='#b5b5b5'><font face='Verdana' size='3'><center><b><?php echo $domaine_nom_echo; ?></b></center></font>
    				</td><?php
     
    			// Affichage des categories triés par domaine
    			$categorie_fiche="select * from `categorie` where `domaine_num`= '$domaine_id_echo' ORDER BY`categorie_nom` ASC";
    			$categorie_fiche_query=mysql_query($categorie_fiche);
    			$nombre_de_ligne_categorie = mysql_num_rows($categorie_fiche_query);
     
    			$x=0;
     
    			while($categorie_fiche_query_echo=mysql_fetch_array($categorie_fiche_query))
    				{
    				 $categorie_id_echo=$categorie_fiche_query_echo['categories_id'];
    				 $categorie_nom_echo=$categorie_fiche_query_echo['categorie_nom'];
     				 $domaine_id_echo_mod=$categorie_fiche_query_echo['domaine_num'];
     
    				 $nombre_de_ligne_categorie = mysql_num_rows($categorie_fiche_query);
     
    					// Affichage des réponses
    					$reponse_fiche="select * from `reponse` where `domaine_num`= '$domaine_id_echo' AND `categorie_num` = '$categorie_id_echo'";
    					$reponse_fiche_query=mysql_query($reponse_fiche) or die(mysql_error());
    					$nombre_de_ligne_reponse = mysql_num_rows($reponse_fiche_query);
     
    						?><td bgcolor='#efefef'><font face='Verdana' size='2'><center>&nbsp;&nbsp;<?php echo $categorie_nom_echo; ?>&nbsp;&nbsp;</td><td bgcolor='#efefef'><a href="admin.php?mode=modify_categorie&categorie=<?php echo $categorie_nom_echo; ?>&numero=<?php echo $categorie_id_echo; ?>&domaine=<?php echo $domaine_id_echo_mod; ?>"><img src="images/modify.gif" border="0"></a></td><td bgcolor='#efefef'><a href="admin.php?mode=delete_categorie&categorie=<?php echo $categorie_nom_echo; ?>&numero=<?php echo $categorie_id_echo; ?>&domaine=<?php echo $domaine_id_echo_mod; ?>"><img src="images/delete.gif" border="0"></a></center></font>
    						</td></tr>
    						<?php
    							}
    						}
    				?>
     
    				</td></tr></table></center>
    			<?php
     
        break; 
     
    ###########################################################################################
    #
    #			Page de validation d'ajout de catégorie 
    #
    ###########################################################################################
     
     
    		case 'add_categorie_val' : 
     
    		echo '<form method="post" action="admin.php?mode=add_categorie_val_ok"><center>Etes vous sûr de vouloir ajouter ces informations :<br/><br/>'; 
     
    		$add_categorie_val_vars=$HTTP_POST_VARS['add_categorie_val'];
    		$add_categorie_val_vars = addslashes($add_categorie_val_vars);
     
    		$add_domaine_val_vars=$HTTP_POST_VARS['add_domaine_val'];
    		$add_domaine_val_vars=addslashes($add_domaine_val_vars);
     
    		echo "Domaine : <b>".stripslashes($add_domaine_val_vars)."</b><br>Catégorie : <b>".stripslashes($add_categorie_val_vars)."</b>";
    		echo "<input type='hidden' name='add_domaine_val_vars' value='$add_domaine_val_vars'/><br/>";
    		?><input type='hidden' name='add_categorie_val_vars' value="<?php echo $add_categorie_val_vars; ?>"><br><?php
    		echo "<br><input class='smbutton' type='submit' value='Valider'></center></form>";
     
        break;
    Erreur donc à l'avant dernier case. cette erreur est donc apparue en changeant les<? en <?php mais avant ce changement j'avais d'autres erreurs

  7. #7
    Membre éclairé
    Homme Profil pro
    Responsable Applicatif / Développeur
    Inscrit en
    Mai 2007
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Responsable Applicatif / Développeur

    Informations forums :
    Inscription : Mai 2007
    Messages : 495
    Par défaut
    dsl oui c'est difficile de montrer le code car il y a 2500 lignes dans le fichier.
    là jai corrigé tout les <? en <?php .

    maintenant j'ai une erreur avec un case :
    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
     
    		<?php
     
           break; 
     
    	case 'add_categorie_val' : 
     
    		echo '<form method="post" action="admin.php?mode=add_categorie_val_ok"><center>Etes vous sûr de vouloir ajouter ces informations :<br><br>'; 
     
    		$add_categorie_val_vars=$HTTP_POST_VARS['add_categorie_val'];
    		$add_categorie_val_vars = addslashes($add_categorie_val_vars);
     
    		$add_domaine_val_vars=$HTTP_POST_VARS['add_domaine_val'];
    		$add_domaine_val_vars=addslashes($add_domaine_val_vars);
     
    		echo "Domaine : <b>".stripslashes($add_domaine_val_vars)."</b><br>Catégorie : <b>".stripslashes($add_categorie_val_vars)."</b>";
    		echo "<input type='hidden' name='add_domaine_val_vars' value='$add_domaine_val_vars'><br>";
    		?><input type='hidden' name='add_categorie_val_vars' value="<?php echo $add_categorie_val_vars; ?>"><br><?php
    		echo "<br><input class='smbutton' type='submit' value='Valider'></center></form>";
     
        break;
    erreur :
    Parse error: syntax error, unexpected T_CASE in admin.php on line 270

    la ligne 270 est : case 'add_categorie_val' :

    mais je précise que tout le code fonctionne avec les <? sous php 4.

Discussions similaires

  1. Réponses: 13
    Dernier message: 03/12/2010, 15h56
  2. Migration PHP 4 vers PHP 5
    Par Moull dans le forum Langage
    Réponses: 7
    Dernier message: 10/08/2009, 10h12
  3. [MySQL] table MySQL vers document XML avec PHP
    Par ecdxml dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 06/12/2007, 01h10
  4. [Forum] Des erreurs avec tous les scripts PHP
    Par sensoo dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 12
    Dernier message: 25/04/2006, 18h41
  5. Réponses: 2
    Dernier message: 08/12/2005, 05h28

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