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

astuces_jeux Messages postés 731 Date d'inscription mercredi 15 novembre 2000 Statut Membre Dernière intervention 27 mai 2010 - 7 nov. 2006 à 18:29
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???

3 réponses

cs_alexscott Messages postés 54 Date d'inscription vendredi 28 février 2003 Statut Membre Dernière intervention 10 novembre 2006
7 nov. 2006 à 19:45
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 ;)
0
cs_chapata Messages postés 214 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 9 avril 2010 5
8 nov. 2006 à 13:39
Et oui, la casse (majuscule - minuscule) est à respecter à la lettre sinon, marche pas !
0
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
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)
0
Rejoignez-nous