Bonjour à tous,
voilà j’ai un site installé chez online.net (aucune aide de leur part) et quand j’essaie de mettre à jour des scripts .php dans des dossiers /var/www/monsite et que je les exécute, pour mettre à jour des stats, etc. cela abouti à une page blanche erreur http 500.
Alors qu’il devrait fonctionner, testé ailleurs et sur une machine virtuelle.
Vous avez une idée ?
merci
C’est typique d’une erreur PHP.
Une fonction non gérée, un ‘;’ oublié …
Là, seul les logs PHP pourraient t’aider à y voir mieux … et parfois certains logs web service … si tu y as accès !
Revoie ton code, quand même
Salut, le script ne vient pas de moi mais du codeur lui même, testé par d’autres et sur une machine virtuel sans problème, il n’y a que chez online.net sur la machine dédiée que ça bloque.
Je ne sais pas vraiment où chercher, problème de chmod, de .htaccess ? j’ai lu pas mal de truc dessus mais je suis perdu.
Par exemple !
À toi de te renseigner chez online, si certaines fonctions PHP sont inautorisées …
Cela peut être aussi du fait d’utiliser du vieux code PHP sur du PHP 7, par exemple.
Tu exécutes quelle version de code PHP, sur quelle architecture PHP ?!
Nous, on n’est pas devin … le plus à même à t’aider est quand même le codeur
Chez Online le côté software ils ne gèrent pas à moi de mon débrouiller.
Pour le codeur ça marche chez lui et chez les autres donc c’est encore pour moi
J’ai la version php7 on me conseille de repasser à la version php5 vous auriez un tuto là dessus ?
merci
PHP Parse error: syntax error, unexpected ‘function\xc2\xa0cleanup_log’ (T_STRING) in /var/www/include/cleanup/funds_clean.php on line 20
funds_clean sur pastebin
Franchement qu’est ce qui cloche ? je ne pige pas
Avec quel éditeur avez-vous modifié le fichier /var/www/include/cleanup/funds_clean.php
?
Je pose cette question car la présence de \xc2\xa0
me fait penser à un pataquès dans les encodages, du genre vous tapez une lettre accentuée, votre éditeur mal configuré vous affiche quelque chose qui vous semble correct mais en le processus php qui relit le fichier émet une erreur car il suppose un encodage différent pour le fichier.
Ah, les joies de l’unicode ! Cherchez dans pause café une image où Martine en bave avec UTF-8
Que donne la commande
head -22 /var/www/include/cleanup/funds_clean.php | tail -4 | od -c
Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة
F. Petitjean
Ingénieur civil du Génie Maritime.
« Celui qui, parti de rien, n’est arrivé nulle part n’a de merci à dire à personne !! »
Pierre Dac
Bonjour, merci pour votre aide, j’utilise la commande nano pour éditer les fichiers .php
et voici le résultat:
0000000 f u n c t i o n 302 240 c l e a n u
0000020 p _ l o g ( $ d a t a ) \n { \n 302
0000040 240 302 240 302 240 302 240 $ t e x t 302 240 = 302
0000060 240 s q l e s c ( $ d a t a [ ’ c
0000100 l e a n _ t i t l e ’ ] ) ; \n 302
0000120 240 302 240 302 240 302 240 $ a d d e d 302 240 =
0000140 302 240 T I M E _ N O W ; \n
0000154
Euh, oui, là, ce n’est pas normal … et, même ce n’est pas le comportement normal de nano !
Salut,
[quote]cat /var/www/include/cleanup/funds_clean.php
file /var/www/include/cleanup/funds_clean.php
ls -la /var/www/include/cleanup/funds_clean.php
apt install dos2unix # Ou apt-get install suivant la version de debian que tu as
dos2unix /var/www/include/cleanup/funds_clean.php[/quote]
Tu peux donner la sortie du cat, du file e du ls ?
Et retester après le dos2unix ?
Merci,
Pas la peine de lancer dos2unix
. Les fins de ligne sont correctes.
Reste à trouver comment ont été introduites toutes ces séquences 302 140
en octal
Les sorties de
apt-cache policy nano
locale
update-alternatives --display editor
seraient intéressantes.
Avec quel éditeur de texte êtes-vous le plus à l’aise ?
Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة
F. Petitjean
Ingénieur civil du Génie Maritime.
« Moi, lorsque je n’ai rien à dire, je veux qu’on le sache. » (R. Devos)
Juste une faute de frappe : la séquence est en fait octal 302 240
octal 302 240 <=> hexa c2 a0 => UTF-8 NO-BREAK SPACE
Les caractères espace dans le fichier PHP ont sans doute été remplacés par des caractères espace insécable <=> NO-BREAK SPACE
Mais je ne sais pas quel est l’éditeur de texte qui a pu faire ça.
Peut-être une macro de l’éditeur…
Ou bien un copié/collé depuis un message d’un forum, affiché par une fenêtre d’un navigateur
passant par un presse papier depuis lequel le message a été collé dans un éditeur dont une macro aurait pu modifier ces caractères espace.
Ça fait que chacun de ces intermédiaires pourrait être suspecté
Avec la ligne de commande suivante :
sed -i.avant 's/\xc2\xa0/ /g' /var/www/include/cleanup/funds_clean.php
Les caractères espace insécable du fichier /var/www/include/cleanup/funds_clean.php
seront remplacés par un caractère espace
Et le fichier original sera sauvegardé sous le nom :
/var/www/include/cleanup/funds_clean.php.avant
cat /var/www/include/cleanup/funds_clean.php
<?php
/**
|--------------------------------------------------------------------------|
| https://github.com/Bigjoos/ |
|--------------------------------------------------------------------------|
| Licence Info: GPL |
|--------------------------------------------------------------------------|
| Copyright (C) 2010 U-232 V4 |
|--------------------------------------------------------------------------|
| A bittorrent tracker source based on TBDev.net/tbsource/bytemonsoon. |
|--------------------------------------------------------------------------|
| Project Leaders: Mindless,putyn. |
|--------------------------------------------------------------------------|
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/ \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \
( U | - | 2 | 3 | 2 )-( S | o | u | r | c | e )-( C | o | d | e )
\_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/
*/
function cleanup_log($data)
{
$text = sqlesc($data['clean_title']);
$added = TIME_NOW;
$ip = sqlesc($_SERVER['REMOTE_ADDR']);
$desc = sqlesc($data['clean_desc']);
sql_query("INSERT INTO cleanup_log (clog_event, clog_time, clog_ip, clog_desc) VALUES ($text, $added, $ip, {$desc})") or sqlerr(__FILE__, __LINE__);
}
function docleanup($data)
{
global $INSTALLER09, $queries, $mc1;
ignore_user_abort(1);
// ===Clear funds after one month
$secs = 1 * 60;
$dt = sqlesc(TIME_NOW - $secs);
sql_query("DELETE FROM funds WHERE added < $dt");
//if (mysqli_affected_rows() > 0)
$mc1->delete_value('totalfunds_');
// ===End
if ($queries > 0) write_log("Delete Old Funds Clean -------------------- Delete Old Funds cleanup Complete using $queries queries --------------------");
if (false !== mysqli_affected_rows($GLOBALS["___mysqli_ston"])) {
$data['clean_desc'] = mysqli_affected_rows($GLOBALS["___mysqli_ston"]) . " items deleted/updated";
}
if ($data['clean_log']) {
cleanup_log($data);
}
}
?>
file /var/www/include/cleanup/funds_clean.php
/var/www/include/cleanup/funds_clean.php: PHP script, UTF-8 Unicode text
ls -la /var/www/include/cleanup/funds_clean.php
-rwxrwxrwx 1 root root 2540 nov. 6 17:43 /var/www/include/cleanup/funds_clean.php
dos2unix /var/www/include/cleanup/funds_clean.php
dos2unix: converting file /var/www/include/cleanup/funds_clean.php to Unix format ...
apt-cache policy nano
nano:
Installé : 2.2.6-3
Candidat : 2.2.6-3
Table de version :
*** 2.2.6-3 0
500 http://ftp.univ-pau.fr/linux/mirrors/debian/ jessie/main amd64 Packages
100 /var/lib/dpkg/status
locale
LANG=fr_FR.UTF-8
LANGUAGE=
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"
LC_ALL=
update-alternatives --display editor
editor - mode automatique
le lien pointe actuellement sur /bin/nano/bin/nano - priorité 40
lien secondaire editor.1.gz : /usr/share/man/man1/nano.1.gz/usr/bin/vim.tiny - priorité 10
lien secondaire editor.1.gz : /usr/share/man/man1/vim.1.gz
lien secondaire editor.fr.1.gz : /usr/share/man/fr/man1/vim.1.gz
lien secondaire editor.it.1.gz : /usr/share/man/it/man1/vim.1.gz
lien secondaire editor.ja.1.gz : /usr/share/man/ja/man1/vim.1.gz
lien secondaire editor.pl.1.gz : /usr/share/man/pl/man1/vim.1.gz
lien secondaire editor.ru.1.gz : /usr/share/man/ru/man1/vim.1.gz
La « meilleure » version actuelle est « /bin/nano ».
Re, après avoir testé toutes les sorties que TrashHard & littlejohn75 m’ont demandé, j’ai essayé cette ligne de commande,
sed -i.avant ‘s/\xc2\xa0/ /g’ /var/www/include/cleanup/funds_clean.php
et je n’ai plus d’erreur http 500 !! pouvez vous un peu plus m’expliquer le pourquoi du comment ?
Merci à vous
Bonjour SanJose
sed -i.avant 's/\xc2\xa0/ /g' /var/www/include/cleanup/funds_clean.php
Cette ligne de commande a servi à remplacer chaque caractère espace insécable existant dans le fichier /var/www/include/cleanup/funds_clean.php par un caractère espace
Dans cette ligne de commande, j’ai utilisé la valeur hexadécimale c2 a0 qui correspond au caractère espace insécable
Et entre les deux barres obliques qui suivent, j’ai inséré le caractère que je voulais utiliser comme caractère de remplacement : un caractère espace
Comme le caractère espace insécable n’est pas reconnu par l’interpréteur PHP comme un caractère de séparation de mots, PHP ne pouvait pas interpréter correctement les lignes de commandes de ton fichier.
Cette ligne de commande a aussi créé une copie de sauvegarde du fichier original.
Ce fichier de sauvegarde a été nommé comme celui d’origine, mais en aboutant .avant à la fin de son nom.
Puisque maintenant tu n’as plus besoin de la copie du fichier original qui contient des espace insécables,
tu peux le supprimer en lançant la commande suivante :
rm /var/www/include/cleanup/funds_clean.php.avant
Je me suis permis de modifier l’apparence des lignes de commandes et de leur retour dans ton avant-dernier message.
Ouah merci pour cette explication, cela viendrait d’un mauvais copier/coller ? nano n’y est pour rien ?
Ma tartine est beaucoup plus lisible c’est clair
Bonsoir SanJose
À part les suppositions que je faisais quelques messages plus haut, je ne peux rien affirmer.