Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

syntax error

22 réponses
Avatar
Pascal
Bonjour
Je tourne en rond avec ce probl=E8me : ici http://scalpa.info/1.html
Si je mets le contenu du javascript dans le fichier 1.html =E7a marche... S=
i j'appelle le javascript externalis=E9 comme dans le fichier en lien cela =
ne fonctionne plus....
Y a un truc qui m'=E9chappe....
Help !
merci

10 réponses

1 2 3
Avatar
Olivier Miakinen
Le 23/11/2012 13:58, SAM a écrit :

Je ne comprends rien au PHP
mais il m'avait bien semblé qu'il ne fallait *absolument RIEN* avant :
<?php
au début du fichier



Dans l'absolu, ce n'est pas tout à fait exact. Si tu as une page
écrite en PHP qui ne gère pas de session et qui n'a aucun autre
entête HTTP à envoyer, alors avoir des caractères avant le premier
<?php ne gêne personne. Mais ce cas n'arrive pratiquement jamais
dans un site professionnel, en particulier les sites marchands
qui ont besoin d'identifier le visiteur pour gérer son panier de
commandes.

Et donc, vu que les sites doivent envoyer des entêtes HTTP, et
que le premier caractère de contenu signe la fin des entêtes, le
BOM met le bazar puisque ce sont des octets de données envoyés
avant que l'on ait la moindre chance de définir des entêtes.

Je ne sais pas si je suis très clair, là... N'hésite pas à
demander des précisions si nécessaire.

Cordialement,
--
Olivier Miakinen
Avatar
SAM
Le 23/11/12 14:51, Olivier Miakinen a écrit :
Le 23/11/2012 13:58, SAM a écrit :

Je ne comprends rien au PHP
mais il m'avait bien semblé qu'il ne fallait *absolument RIEN* avant :
<?php
au début du fichier



Dans l'absolu, ce n'est pas tout à fait exact.



Oui, bien sûr : *si* du PHP au début alors *jamais* de bom

Bien que ...
les caractères bom, je me demande s'il ne cacadent pas aussi pour la
balise doctype ?

--
Stéphane Moriaux avec/with iMac-intel
Avatar
Olivier Miakinen
Le 23/11/2012 15:25, SAM a écrit :

les caractères bom, je me demande s'il ne cacadent pas aussi pour la
balise doctype ?



Je n'y avais pas pensé, mais tu as raison. Visiblement ça fait passer IE
en mode quirks : <https://www.google.fr/#q=bom+doctype>.
Avatar
Pascal
Merci à tous pour ces commentaires avisés et instructifs (mais je n'ai pas tout compris...).
J'en retiens :
1. qu'il ne faut pas de BOM dans l'utf-8 pour le php et javascript associ é.
2. que le javascript en fichier externalisé peut être appelé depuis b ody avec un doctype en xhtml si on y met //<![CDATA[ .............//]]> et que les balises <!--............... //--> elles, ne sont plus utiles.
3. que l'affichage du texte dans une page web, c'est toujours un drôle de patakess (voir comment s'affiche les posts de SAM sur mon pc ici : http:// cjoint.com/?BKyosocIJ4H ) Etrange ! même en changeant l'encodage des cara ctères dans les options du navigateur.

Je crois avoir trouvé d'où vient le problème avec mon fichier http:// scalpa.info/1.html de test:
Il me semble que cela vient de mon fichier .htaccess que j'ai mis dans les dossiers (et sous-dossier) du site pour en protéger le contenu afin que l es documents ne soient pas directement accessibles depuis un autre domaine.
Le code qu'il contenait à la racine du site auparavant servait à rediri ger la page si jamais on tombait sur un dossier ou fichier inexistant.:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /erreur_404.php

J'y ai ajouté :

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://www.scalpa.net [NC]
RewriteCond %{HTTP_REFERER} !^http://www.scalpa.info [NC]
RewriteCond %{HTTP_REFERER} !^http://www.scalpa.fr [NC]
RewriteCond %{HTTP_REFERER} !^http://scalpa.net [NC]
RewriteCond %{HTTP_REFERER} !^http://scalpa.info [NC]
RewriteCond %{HTTP_REFERER} !^http://scalpa.fr [NC]
RewriteRule /* http://www.scalpa.info [R,L]

Il est donc devenu :
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /erreur_404.php

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://www.scalpa.net [NC]
RewriteCond %{HTTP_REFERER} !^http://www.scalpa.info [NC]
RewriteCond %{HTTP_REFERER} !^http://www.scalpa.fr [NC]
RewriteCond %{HTTP_REFERER} !^http://scalpa.net [NC]
RewriteCond %{HTTP_REFERER} !^http://scalpa.info [NC]
RewriteCond %{HTTP_REFERER} !^http://scalpa.fr [NC]
RewriteRule /* http://www.scalpa.info [R,L]

J'avais aussi mis un fichier .htaccess dans chaque sous dossier du site :
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://www.scalpa.net [NC]
RewriteCond %{HTTP_REFERER} !^http://www.scalpa.info [NC]
RewriteCond %{HTTP_REFERER} !^http://www.scalpa.fr [NC]
RewriteRule /* http://www.scalpa.info [R,L]

que j'ai transformé en :
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://www.scalpa.net [NC]
RewriteCond %{HTTP_REFERER} !^http://www.scalpa.info [NC]
RewriteCond %{HTTP_REFERER} !^http://www.scalpa.fr [NC]
RewriteCond %{HTTP_REFERER} !^http://scalpa.net [NC]
RewriteCond %{HTTP_REFERER} !^http://scalpa.info [NC]
RewriteCond %{HTTP_REFERER} !^http://scalpa.fr [NC]
RewriteRule /* http://www.scalpa.info [R,L]

Il semble que ces modifications aient résolu mon problème....
Ce que je ne comprends toujours pas... C'est pourquoi du jour au lendemain il a fallu que je fasse ces modifications pour retrouver le fonctionnement de mes pages en php ???!!!

Encore merci à tous et bon week-end.

pascal
Avatar
SAM
Le 24/11/12 14:39, Pascal a écrit :
Merci à tous pour ces commentaires avisés et instructifs (mais je n'ai pas tout compris...).
J'en retiens :
1. qu'il ne faut pas de BOM dans l'utf-8 pour le php et javascript associé.
2. que le javascript en fichier externalisé peut être appelé depuis body avec un doctype en xhtml si on y met //<![CDATA[ .............//]]> et que les balises <!--............... //--> elles, ne sont plus utiles.
3. que l'affichage du texte dans une page web, c'est toujours un drôle de patakess (voir comment s'affiche les posts de SAM sur mon pc ici : http://cjoint.com/?BKyosocIJ4H ) Etrange ! même en changeant l'encodage des caractères dans les options du navigateur.



Ça c'est Google qui merdoie !
Il est très fâché avec les français ! (avec l'ISO-trucBidule)

Je ne comprends pas pourquoi tu ne viens pas nous voir avec Thunderbird
(par exemple)

Je crois avoir trouvé d'où vient le problème avec mon fichier http://scalpa.info/1.html de test:http://scalpa.info/1.html



He Ben NON !
Je tombe sur : http://www.scalpa.info/
et Fx qui me dit :
« *La page n'est pas redirigée correctement*
Firefox a détecté que le serveur redirige la demande
pour cette adresse d'une manière qui n'aboutira pas. »

revoir ta copie pour ton htaccess ?


Nota : je post en utf-8 pour voir si Gougueul ça lui plait.
--
Stéphane Moriaux avec/with iMac-intel
Avatar
SAM
Le 24/11/12 16:02, SAM a écrit :
Le 24/11/12 14:39, Pascal a écrit :

Je crois avoir trouvé d'où vient le problème avec mon fichier
http://scalpa.info/1.html de test:http://scalpa.info/1.html



He Ben NON !
Je tombe sur : http://www.scalpa.info/
et Fx qui me dit :
« *La page n'est pas redirigée correctement*



Bon, essayé + tard

ça a bien ramé et ça s'est affiché (j'ai peut-être un pb d'ADSL)

ça a demandé mon nom
j'ai zappé !
il m'appelle Anonyme
je suis flatté ;-)
mon dentiste a réussi à cureter ma dent, super !

--
Stéphane Moriaux avec/with iMac-intel
Avatar
Pascal
Vindieu j'ai du mal.... J'ai viré les htaccess des sous-dossiers et gard é seulement 1 à a racine.
les nouveaux exo ici http://scalpa.info/fr_conj_pr8_eter_crossword.php semb lent fonctionner.

Tes derniers posts s'affichent correctement, merci

oui avant quand ne renseignait pas son nom ça affichait bonjour NULL, cel a faisait désordre... Les mômes pensaient que je me moquais?

pascal
Avatar
Pierre Goiffon
Le 23/11/2012 11:54, Paul Gaborit a écrit :
Par ce que, déjà, pour de l'utf-8 déclarer une entête BOM ne sert
strictement à rien et est totalement inutile.



C'est assez lapidaire : si l'on a besoin de mécanisme d'auto-détection
la présence du BOM (prévu et tout à fait valide dans n'importe quel des
codages Unicode : http://www.unicode.org/faq//utf_bom.html#bom4) peut
être fort utile.



La logique de l'argumentaire ne tient pas une minute.


(...)
Dans un contexte plus général où tous les codages existants (pas
uniquement ceux liés à Unicode) co-existent (le cas typique d'un
navigateur), l'auto-détection ne marche pas (il ne faut pas oublier que
les BOM Unicode peuvent être considérer comme une suite de caractères
tout à fait valides pour des codages non Unicode).



Aucun mécanisme d'auto détection ne produira un résultat sur lequel on
pourra se baser avec certitude. On est réduit à des probabilités de
détection en fonction des types de contenu que l'on traite...

Comme le dis Olivier dans sa réponse, sur des contenus avec uniquement
des scripts latins on peut arriver à se débrouiller sans BOM. Vous le
dites aussi, un BOM peut être une séquence valide.
Mais considérez les probabilités d'un faux positif, si vous avez une
suite logique d'octets qui parait un bon contenu UTF-8 en latin ET que
vous avez un BOM en tête de flux !

J'ai de mon côté travaillé avec des portages de la librairie Rhino de
Mozilla, et l'analyse d'un BOM éventuel avant passage par Rhino permet
d'augmenter considérablement les bons résultats.

Oui évidemment, ça n'est pas parfait, mais dans ces cas toute aide est
la bienvenue.

Bon, ça ne sert à rien d'épiloguer, on ne devrait pas avoir à être
confronté à ces cas, mais quand ça arrive on remercie le consortium
Unicode d'avoir pensé à systématiser les BOM sur tous les encoding scheme.

Quoi qu'il en soit, les navigateurs, même très récents, n'aiment pas du
tout du tout un JS en UTF-8 avec BOM



C'est d'autant plus normal que le BOM pourrait venir en contradiction
avec l'encodage annoncé par les meta-informations du protocole de
transport.



je ne comprend pas bien votre argument ? Si le fichier est servit avec
une information de charset dans l'entête http différent du codage réel
du fichier, qu'il y ait bom ou pas ça ne changera pas grand chose
n'est-ce pas ? Au contraire, le navigateur pourrait utiliser le bom pour
se douter que quelque chose ne va pas... (il me semble avoir vu quelque
chose comme ça sur mozilla suite à l'époque, pour lire une page en
utf-16 même si elle est servit avec un codage iso latin-1).
Avatar
Paul Gaborit
À (at) Mon, 17 Dec 2012 10:56:22 +0100,
Pierre Goiffon écrivait (wrote):

Comme le dis Olivier dans sa réponse, sur des contenus avec uniquement
des scripts latins on peut arriver à se débrouiller sans BOM. Vous le
dites aussi, un BOM peut être une séquence valide.
Mais considérez les probabilités d'un faux positif, si vous avez une
suite logique d'octets qui parait un bon contenu UTF-8 en latin ET que
vous avez un BOM en tête de flux !

J'ai de mon côté travaillé avec des portages de la librairie Rhino de
Mozilla, et l'analyse d'un BOM éventuel avant passage par Rhino permet
d'augmenter considérablement les bons résultats.


[...]

je ne comprend pas bien votre argument ? Si le fichier est servit avec
une information de charset dans l'entête http différent du codage réel
du fichier, qu'il y ait bom ou pas ça ne changera pas grand chose
n'est-ce pas ? Au contraire, le navigateur pourrait utiliser le bom pour
se douter que quelque chose ne va pas... (il me semble avoir vu quelque
chose comme ça sur mozilla suite à l'époque, pour lire une page en
utf-16 même si elle est servit avec un codage iso latin-1).



Vous ne vous placez pas du même côté de la barrière. Il y a ceux qui
produisent et ceux qui recoivent. Comme le disait J.Postel : « Soyez
tolérant dans ce que vous acceptez, et pointilleux dans ce que vous
envoyez. »

Qu'un navigateur sache se débrouiller avec tous les contenus bancals
qu'il reçoit, tant mieux. Mais cela ne veut pas dire qu'on peut se
permettre de produire n'importe quoi. Donc n'utiluisez pas de BOM utf-8
(mais si vous écrivez un programme qui lit des fichiers, attendez-vous à
en recevoir).


--
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>
Avatar
Pierre Goiffon
Le 17/12/2012 13:18, Paul Gaborit a écrit :
Vous ne vous placez pas du même côté de la barrière.



:D
Etre catégorique ne change pas grand chose quand on est confronté à une
situation qui ne correspond pas aux grandes théories... Malheureusement,
beaucoup de développeurs sont un peu trop "ayatollahs" (et Paul, je ne
vous vise pas du tout en disant celà, j'apprécie grandement la qualité
de vos interventions !) et oublient que la technique est là pour
répondre aux besoins.

Bref, on sert le développement et c'est notre joie !

;o)
1 2 3