Double # dans l'attribut action du formulaire #3272

Closed
opened 7 years ago by miros · 5 comments
miros commented 7 years ago

Le bugfix pour internet explorer dans le fichier ecrire/balise/formulaire_.php (ligne 179) génère une url contenant deux # lorsque l'adresse courante se termine par un /, le navigateur ne peut dans ce cas défiler automatiquement vers le formulaire après validation de celui-ci.

// bug IEx : si action finit par / 
// IE croit que le  est autoferme
if (substr($action,-1)=='/') {
	// on ajoute une ancre pour feinter IE, au pire ca tue l'ancre qui finit par un /
	$action .= '#';
}

Pour voir le bug : dans une installation saine de spip, créer un fichier sommaire.html dans le dossier squelettes contenant ces lignes, puis se rendre à la racine du site (avec un / en fin d'adresse) :

#FORMULAIRE_ECRIRE_AUTEUR
Le bugfix pour internet explorer dans le fichier ecrire/balise/formulaire_.php (ligne 179) génère une url contenant deux # lorsque l'adresse courante se termine par un /, le navigateur ne peut dans ce cas défiler automatiquement vers le formulaire après validation de celui-ci. <pre> // bug IEx : si action finit par / // IE croit que le <form ... action=../ > est autoferme if (substr($action,-1)=='/') { // on ajoute une ancre pour feinter IE, au pire ca tue l'ancre qui finit par un / $action .= '#'; } </pre> Pour voir le bug : dans une installation saine de spip, créer un fichier sommaire.html dans le dossier squelettes contenant ces lignes, puis se rendre à la racine du site (avec un / en fin d'adresse) : <pre> <BOUCLE_test(AUTEURS){id_auteur=1}>#FORMULAIRE_ECRIRE_AUTEUR</BOUCLE_test> </pre>
Poster

Cette rustine à l'intention d'internet explorer (quelle version ?) pose problème, notamment dans le cas de sites en page unique, est-elle bien nécessaire ?

Cette rustine à l'intention d'internet explorer (quelle version ?) pose problème, notamment dans le cas de sites en page unique, est-elle bien nécessaire ?
b_b commented 7 years ago
Owner

Avec quel navigateur observes-tu ce problème ? Je viens de tester le cas que tu proposes sous Firefox sans problème. Par défaut le formulaire ecrire_auteur est en ajax, du coup je n'ai pas de retour sur une ancre qui pose pb.

À moins que ton test soit à effectuer avec un formulaire non ajax ?

Avec quel navigateur observes-tu ce problème ? Je viens de tester le cas que tu proposes sous Firefox sans problème. Par défaut le formulaire ecrire_auteur est en ajax, du coup je n'ai pas de retour sur une ancre qui pose pb. À moins que ton test soit à effectuer avec un formulaire non ajax ?
Poster

Manque de précision de ma part ! Oui, cela arrive avec un formulaire non ajax. Le problème peut être constaté au niveau du code source de la page ou après après validation du formulaire dans la barre d'adresse. J'utilise firefox (iceweasel à jour sous Debian / Testing)

Manque de précision de ma part ! Oui, cela arrive avec un formulaire non ajax. Le problème peut être constaté au niveau du code source de la page ou après après validation du formulaire dans la barre d'adresse. J'utilise firefox (iceweasel à jour sous Debian / Testing)
Owner

Oui le fix est bien utile, au moins tant qu'il restera des IE7 dans la nature. De mémoire il était aussi touché par le bug que IE6, il faudrait vérifier si IE8 l'est aussi.
Ici le vrai bugfix c'est de modifier le formulaire concerné et d'utiliser |ancre_url pour mettre l'ancre car on ne sait jamais ce que action peut contenir en effet.


Oui le fix est bien utile, au moins tant qu'il restera des IE7 dans la nature. De mémoire il était aussi touché par le bug que IE6, il faudrait vérifier si IE8 l'est aussi. Ici le vrai bugfix c'est de modifier le formulaire concerné et d'utiliser |ancre_url pour mettre l'ancre car on ne sait jamais ce que action peut contenir en effet. <pre> <form method='post' action='[(#ENV{action}|ancre_url{formulaire_ecrire_auteur#ENV{id}})]' enctype='multipart/form-data'> </pre>
Owner

corrigé par http://zone.spip.org/trac/spip-zone/changeset/84996
Statut changé à Fermé

corrigé par http://zone.spip.org/trac/spip-zone/changeset/84996 **Statut changé à Fermé**
Sign in to join this conversation.
No Milestone
No project
No Assignees
3 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.