Tout d'abord, je ne suis absolument pas un professionnel du web. Je développe le site en auto-didacte, en reprenant des trucs à droite et à gauche. Souvent, j'opte pour une solution "moche mais efficace" car mon but n'est pas d'être un expert, pas d'avoir des trucs ultra propre pour le plaisir mais simplement avoir quelque chose qui fonctionne. Et jusqu'à présent, ça fonctionne ^^ Et aussi, btw, je ne fais pas de programmation objet (oui c'est génial, toussa, mais je n'y arrive pas. Et pas le courage d'assimiler le truc. Focus on efficacité et je m'en sors en procédural).
Habituellement, je ne poste pas sur les forums d'aide. Car, quand j'ai un souci, je lis le message d'erreur, je repère la ligne, je regarde la ligne, je bidouille, je trouve le ";" manquant et puis tout va bien. Ou le problème est plus complexe, je recherche sur le web, je trouve un post (souvent en anglais) de quelqu'un qui a le même souci, et puis voilà.
Mais aujourd'hui, je suis tombé sur un problème qui dépasse vraiment mon entendement. Voici la situation : un membre de mon club me demande de modifier un texte sur mon site (en HTML, un truc lamda à la con). Je fais la modif, sans rien toucher au PHP, je fais une copie du fichier (qui est un .php) que je transfère du serveur sur mon site (je le mets dans un dossier "SAVE"), puis j'envoie le fichier modifié. Il me répond un bug étrange :
Code : Tout sélectionner
Parse error: syntax error, unexpected '$tournoi' (T_VARIABLE) in ... on line 1Parse error: syntax error, unexpected '$tournoi' (T_VARIABLE) in ... on line 1
... c'est le drame !
Évidemment, sur ce fichier, il n'y a pas de variable $tournoi en ligne 1. Il y a :
Code : Tout sélectionner
<?php $long_title = "521 : Palmarès du championnat"; include 'base.php';Alors peut-être que "ma manière de coder" probablement dégueulasse serait à l'origine, mais a priori, j'ai eu la même manière de coder pour toutes les pages alors pourquoi là, ça déconne et pas ailleurs ?
Bon ! Je décide creuser le problème. Je fais un test sur une autre page : Palmarès Coupe. Par prudence, sur le serveur, je renomme le fichier "OLD" pour avoir une copie "d'origine" du fichier. Bien m'en fait puisque ce fichier "OLD" fonctionne, alors que si je fais le transfert serveur > PC > serveur, ça ne va plus.
Là, sur ce fichier, c'est l'array $tab_jp_an qui pose problème. Ce qui est amusant, c'est que l'erreur change en fonction de ce que je juge être un détail :
Code : Tout sélectionner
<?php
$tab_jp_an = array();
// ONLY IF GET : liste des équipes où a participé le joueur
if ($highlight != '') {
$equipes_get = mysql_query("SELECT joueur, DATE_FORMAT(date,'%Y') as an, date, place FROM palmares WHERE tournoi = '".$tournoi."' AND joueur = '".$highlight."' ORDER BY date DESC, place ASC");
while ($e_g = mysql_fetch_assoc($equipes_get)) {
$tab_jg_an[$e_g['date']] = $e_g['joueur'];
$tab_jp_an[$e_g['date']] = $e_g['place'];
}
} ?>Alors que si je fais ça :
Code : Tout sélectionner
<?php $tab_jp_an = array();
// ONLY IF GET : liste des équipes où a participé le joueur
if ($highlight != '') {
$equipes_get = mysql_query("SELECT joueur, DATE_FORMAT(date,'%Y') as an, date, place FROM palmares WHERE tournoi = '".$tournoi."' AND joueur = '".$highlight."' ORDER BY date DESC, place ASC");
while ($e_g = mysql_fetch_assoc($equipes_get)) {
$tab_jg_an[$e_g['date']] = $e_g['joueur'];
$tab_jp_an[$e_g['date']] = $e_g['place'];
}
}Parse error: syntax error, unexpected '}' in /home/echiquiez/www/palmares_coupe.php on line 1. Dans ce cas-là, c'est le if ($highlight... qui semble poser problème.
Mon hypothèse est que la version de php a changé sur le serveur depuis le temps, et que tant que le fichier était "vieux", il acceptait de l'afficher en ancienne version mais maintenant que le fichier est à jour, il force la dernière version et il y a un truc qui déconne dans cette version. Mais je suis vraiment perdu : qu'est-ce qui cloche ? Que dois-je faire ?...