Forum Clubic

Methode "POST" - Impossible d'afficher la page

Bonjour,

Je rencontre un problème avec certains visiteurs de mon site.

Lorsque j’utilise des formulaires avec la method “POST” et non “GET”, ils obtiennent le message d’erreur “Impossible d’afficher la page”.

L’un d’eux m’a donné la version de son Navigateur : Internet Explorer 6. J’ai essayé avec la même version chez moi et ça fonctionne.
Je suis assez embêté avec ce problème… Quelqu’un sait-il de quoi ça peut venir ?

Aussi j’aimerais pouvoir reproduire le problème sur mon propre poste pour m’assurer que le problème viens bien de là.

Merci d’avance !

Fait plutôt voir le code html du formulaire, et vérifie dans tes logs Apache s’ils arrivent à se connecter?

Dans le genre, est-ce que c’est ton serveur qui merde ou leur IE6 qui a un souci?

Voici un exemple de formulaire utilisant la méthode “POST” et générant une page “Impossible d’afficher la page…” d’après le visiteur


echo "
<form method='post' action='index.php?page=Accueil' name='formacheter'>
".type_input("hidden","action","PanierAddReference",0,0)."
<hr><b>Acheter</b><br>
".type_input("text", "PanierAddReference", "", 10, 256)." 
".type_input("text", "PanierAddReferenceQte", 1, 2, 256)." 
<input border=0 src='images/panier.jpg' type='image' width='21' height='21' Value='submit'> 
</form>";

Un autre formulaire, cette fois-ci utilisant la méthode “GET” et qui la fonctionne très bien pour les personnes rencontrant des problèmes.

	
echo "					
<form method='get' action='index.php' name='formrecherche'>
".type_input("hidden","page","Rechercher",0,0)."
<hr><b>Rechercher</b><br>".type_input("text", "Recherche", "", 17, 256)."
<input border=0 src='images/view.gif' type='image' value='submit'>
</form>
</td></tr>";	

Les fonctions PHP type_input() correspondent au code suivant :


function type_input($type, $nom, $value, $size, $maxlength, $options="")
{
	// Convertit les caractères spéciaux de $value en entités HTML
	$value = htmlSpecialChars($value);
	$s = "<INPUT TYPE='$type' NAME=\"$nom\" VALUE=\"".$value."\" SIZE='$size' MAXLENGTH='$maxlength' $options>";
	// Pour les type Checkbox et Radio, on affiche le titre des cases à cocher.
	if(($type == "CHECKBOX") || ($type == "RADIO"))
	{
		$s .= " ".$value;
	}
	// On retourne la chaine à afficher
	return $s;
}


Pour se qui est des logs apache, je n'y ai pas accès, il s'agit d'un serveur mutualisé chez OVH

Essaye en passant entièrement par post. là, tu passe par Get et Post (?page=accueil). A toi de gérer ça via un champ caché du même nom, et de gérer ça dans ton pseudo include
Edité le 01/12/2008 à 20:37

Ta logique me semble bonne je vais essayer ça.

Par contre j’aimerais bien reproduire le problème sur mon propre PC sent être obligé de demander au visiteur de faire le beta testeur… Le hic, c’est que j’ai la même version de IE que lui. Est-ce que ça pourrait venir du moteur java par exemple ?

Me revoilà.

Il semble qu’effectivement le fait de repasser ma variable page en $_POST règle le problème. Merci !!!

Par contre je m’aperçois que de façon aléatoire, lorsque je clique sur un lien sur mon site, j’obtiens quand même la page d’erreur :

Je réessaye derrière, soit avec Actualiser, ou en faisant précédent et en recliquant sur mon lien et ça remarche… J’ai du mal à comprendre. Ça me le fait aussi sur des pages ou je n’utilise ni POST ni GET. Par contre j’utilise des sessions PHP…

Je précise que avec Firefox, je n’ai pas ce problème.

Une petite idée ?
Edité le 03/12/2008 à 16:41

Sous IE, penses à désactiver les erreurs simplifiées.

Et toujours, consulte tes logs Apache si possible quand tu navigues sur ton site : ça te renseignera sur la nature de ton erreur (erreur 404, ie trop con, etc)

Euh, les logs Apache ça peut se voir sur le client ?

Car je n’ai pas accès au serveur, il est mutualisé (OVH)

bah tu paies un hébergement? Donc en principe tu devrais pouvoir