Project

General

Profile

Anomalie #3272

Double # dans l'attribut action du formulaire

Added by Jean-Emmanuel [] almost 5 years ago. Updated almost 5 years ago.

Status:
Fermé
Priority:
Normal
Assignee:
-
Category:
formulaires
Target version:
-
Start date:
09/24/2014
Due date:
% Done:

0%

Resolution:
Navigateur:

Description

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 <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 .= '#';
}

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) :

<BOUCLE_test(AUTEURS){id_auteur=1}>#FORMULAIRE_ECRIRE_AUTEUR</BOUCLE_test>

History

#1 Updated by Jean-Emmanuel [] almost 5 years ago

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 ?

#2 Updated by b b almost 5 years ago

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 ?

#3 Updated by Jean-Emmanuel [] almost 5 years ago

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)

#4 Updated by cedric - almost 5 years ago

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.

<form method='post' action='[(#ENV{action}|ancre_url{formulaire_ecrire_auteur#ENV{id}})]' enctype='multipart/form-data'>

#5 Updated by cedric - almost 5 years ago

  • Status changed from Nouveau to Fermé

Also available in: Atom PDF