IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Probleme avec Internet Explorer et input image


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 38
    Points : 18
    Points
    18
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 :

    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:
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    !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..

  2. #2
    Membre éclairé
    Avatar de djayp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 295
    Points : 687
    Points
    687
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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+++

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 38
    Points : 18
    Points
    18
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    header('location: index.php');
    ca marche tjs bien sous firefox...

    j'avance petit a petit c'est cool ^^

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 308
    Points : 15 638
    Points
    15 638
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 38
    Points : 18
    Points
    18
    Par défaut
    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.


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Joomla!] probleme avec internet explorer :(
    Par tkhchkhiche dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 29/12/2011, 14h43
  2. probleme avec Internet Explorer
    Par passion_info dans le forum Windows XP
    Réponses: 2
    Dernier message: 16/04/2009, 02h12
  3. Probleme avec Internet Explorer.
    Par Diaz06 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 21/07/2007, 11h50
  4. HELP : probleme avec internet explorer
    Par moggaby dans le forum Flash
    Réponses: 8
    Dernier message: 11/05/2007, 22h11
  5. problemes avec internet explorer
    Par mouna201 dans le forum IE
    Réponses: 3
    Dernier message: 04/01/2006, 12h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo