Lien du genre http://www.monsite.com/index.php?l=fr problème

Messages postés
731
Date d'inscription
mercredi 15 novembre 2000
Statut
Membre
Dernière intervention
27 mai 2010
- - Dernière réponse : audayls
Messages postés
373
Date d'inscription
samedi 9 juillet 2005
Statut
Membre
Dernière intervention
11 août 2008
- 8 nov. 2006 à 14:41
j'ai fait un code qui sert a faire un adresse du genre http://www.monsite.com/index.php?lang=fr (?lang=fr) un lien comme sa avec la question pour la langue voici mon code :::


<?Php


      if( isset( $_GET[ 'l' ] ) )
      {


         $language = htmlentities( addslashes( $_GET[ 'l' ] ) );


        $LANGUE = Array(
                            //Exemple pour le francais
                            Array( 'fr', './fr/index.html' ),
                           
                            //Exemple pour l'anglais  
                            Array( 'en', './en/index.html' ),
                           
                            //Exemple pour l'espagnole
                            Array( 'es', './es/index.html' ),


                        );


               for( $index = 0; $index < count( $LANGUE ); $index++ )
               {


                  if( $LANGUE[ $index ][ '0' ] == $LANGUAGE )
                  {
                        if(
                            [mailto:!@header !@header]( "Location: " . $LANGUE[ $index ][ '1' ] )
                           )
                           {


                              $MSG = "<script language="javascript">\r\n";                              $MSG ."   location.href '";
                              $MSG .= $LANGUE[ $index ][ '1' ];
                              $MSG .= "';\r\n";
                              $MSG .= "</script>";


                              die( $MSG );
                           }
                  }


               }


      }


?>




et jai une erreur : erreur a la ligne 23 : Notice: Undefined variable: LANGUAGE in c:\program files\easyphp1-8\www\cdd\fr\testcdd.php on line 23


la ligne :
                  if( $LANGUE[ $index ][ '0' ] == $LANGUAGE )


on peut maider svp???
Afficher la suite 

3 réponses

Messages postés
55
Date d'inscription
vendredi 28 février 2003
Statut
Membre
Dernière intervention
10 novembre 2006
0
Merci
ben tout simplement la casse est importante ta variable doit etre en majuscule ou en minuscule mais partout pareil ...
http://fr3.php.net/variables un peu de lecture ca te ferait du bien ;)
Commenter la réponse de cs_alexscott
Messages postés
215
Date d'inscription
mercredi 2 février 2005
Statut
Membre
Dernière intervention
9 avril 2010
3
0
Merci
Et oui, la casse (majuscule - minuscule) est à respecter à la lettre sinon, marche pas !
Commenter la réponse de cs_chapata
Messages postés
373
Date d'inscription
samedi 9 juillet 2005
Statut
Membre
Dernière intervention
11 août 2008
0
Merci
Salut,
Il faut faire attention aux majuscules et aux minuscules dans les variables.
Pas la peine (enfin je crois c'est à vérifier) de faire "htmlentities" et "addslashes" sur ta variable car tu ne la stockes pas
Utilise "while" à la place de "for" c'est plus rapide (de vraiment pas beaucoup mais c'est toujours çà lol) (Voir le test de Anthomicro)
Pour les redirections utilises seulement "header" (au pire utilise une redirection html, pas la peine d'utiliser du javascript içi)

<?php
if(isset($_GET['l'])) {
    $langue = array(array('fr', '/fr/index.html'),array('en', '/en/index.html'),array('es', '/es/index.html'));
    $i = count($langue);
    $j = 0;
    while ($j < $i) {
        if ($langue[$j][0] === $_GET['l']) {
            $temp = dirname($_SERVER['PHP_SELF']);
            $temp = str_replace('\\','',$temp);
            $temp .= $langue[$j][1];
            header('Location: '.$temp);
        }
        $j++;
    }
}
?>

For every choice, a consequence (Fable)
Commenter la réponse de audayls