Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/10/2007, 15h33   #1
Invité régulier
 
Inscription : janvier 2007
Messages : 38
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 38
Points : 8
Points : 8
Par défaut Probleme avec Internet Explorer et input image

Bonjour,

actuellement je suis entrain de créer un site avec le multi langue (français et anglais).

voici mon formulaire:
Code :
1
2
3
4
5
6
7
8
9
10
 
<form method="post" action="choix-langform.php">
 
 
    <input type="image" value="fr" name="langue" src="image/france.jpg" width="45" height="30" border="0">
 
    <input type="image" value="en" name="langue" src="image/anglais.jpg" width="45" height="30" border="0">
 
 
</form>
voici le fichier choix-langform.php :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
if($_POST['langue'] == 'fr')
{
 $date_expiration = time() + 365*24*3600; // Un an !
 setcookie('langue', 'fr', $date_expiration); // On enregistre le cookie
 
 header('location: index.php'); // On lui remontre le site depuis l'index 
}
elseif($_POST['langue'] == 'en')
{
 $date_expiration = time() + 365*24*3600;
 setcookie('langue', 'en', $date_expiration);
 
 header('location: index.php');
}
?>
Voici mon problème, en affichant mon formulaire avec des inputs images cela fonctionne avec firefox (j'arrive bien à afficher la langue souhaitée en cliquant sur l'une des images) mais pas avec IE.

sous ie, j'obtiens comme erreur :

Citation:
Notice: Undefined index: langue in c:\program files\easyphp1-8\www\multilangue\choix-langform.php on line 3

Notice: Undefined index: langue in c:\program files\easyphp1-8\www\multilangue\choix-langform.php on line 10
j'ai essayé de rajouter des "isset" avant le $_POST['langue'] et j'obtiens comme erreur:
Citation:
Parse error: parse error, expecting `','' or `')'' in c:\program files\easyphp1-8\www\multilangue\choix-langform.php on line 3
Apparemment il existe pas mal de problèmes avec les inputs images avec IE. J'ai essayé de testé les valeurs x et y de l'endroit ou l'utilisateur a cliqué en mettant
Code :
!empty($_POST["langue_x"]
mais toujours le même problème.
je ne sais plus quoi faire... c'est pourquoi je fais appel à vous ^^

Merci par avance..
wallawalla est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2007, 16h51   #2
Membre chevronné
 
Avatar de djayp
 
Inscription : avril 2004
Messages : 290
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 290
Points : 617
Points : 617
Envoyer un message via ICQ à djayp
Salut !

Je ne pense pas que cela soit lié aux "inputs images", ni à pbm IE/Firefox. Cela tient à mon avis de ton code. Il te manque effectivement la vérification avec isset(), pour s'assurer que ta variable existe :
Code :
1
2
3
4
 
if(isset($_POST['langue']) AND $_POST['langue'] == 'fr')
...
elseif(isset($_POST['langue']) AND $_POST['langue'] == 'en')
Avec ça tu ne devrais plus avoir de message d'erreur !

A+++
__________________
Djay
http://j-place.developpez.com/
djayp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2007, 17h23   #3
Invité régulier
 
Inscription : janvier 2007
Messages : 38
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 38
Points : 8
Points : 8
merci d'avoir repondu.

En effet j'ai plus de messages d'erreur sous ie mais j'obtiens une page blanche. il m'envoie sur la page choix-langform.php

C'est comme si il prenait pas en compte ma redirection
Code :
header('location: index.php');
ca marche tjs bien sous firefox...

j'avance petit a petit c'est cool ^^
wallawalla est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2007, 20h00   #4
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
Internet Explorer ne transmet pas la valeur pour les type "image" des formulaire donc tu dois transmettre la valeur en passant par le nom comme ça :
Code :
1
2
3
4
5
6
7
8
9
<form method="post" action="choix-langform.php">
 
 
    <input type="image" name="langue[fr]" src="image/france.jpg" width="45" height="30" border="0">
 
    <input type="image" name="langue[en]" src="image/anglais.jpg" width="45" height="30" border="0">
 
 
</form>
et ensuite tu récupères le choix comme ça :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$choixLangue = NULL;
 
if (isset($_POST['langue'])) {
    $cles = array_keys($_POST['langue']);
 
    if (in_array($cles[0], array('fr', 'en'))) { // vérification
        $langue = $cles[0];
    }
}
 
if (!isset($choixLangue)) {
    $choixLangue = 'fr'; // langue par défaut
}
 
$date_expiration = time() + 365 * 24 * 3600; // Un an !
setcookie('langue', $langue, $date_expiration); // On enregistre le cookie
 
header('Location: index.php'); // On lui remontre le site depuis l'index
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2007, 22h17   #5
Invité régulier
 
Inscription : janvier 2007
Messages : 38
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 38
Points : 8
Points : 8
je savais bien que c'est un probleme lié a Internet explorer et non au code.

En tout cas Merci Mathieu, ca marche nickel. J'aurais jamais pensé a cette idée.

wallawalla est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h18.


 
 
 
 
Partenaires

Hébergement Web