begin process at 2012 05 30 21:58:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Divers

 > 

Je perd ma variable URL lors d'un submit()


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Je perd ma variable URL lors d'un submit()

mardi 20 novembre 2007 à 15:52:53 | Je perd ma variable URL lors d'un submit()

jimmplan

Bonjour,
j'aimerais avoir de l'aide PHP à propos du site que je suis en train de construire multilingues, multidevises.

Par défaut mon site est en français avec la devise $CAN. Mon problème est lorsque je clique sur Anglais et que je change ma devise. Mon site redevient en français. et vice versa c'est-à-dire lorsque je sélectionne un autre devise et que je clique sur Anglais ma devise revient à $CAN.

Voici comment je procède (le site pour que vous puissez voir est le suviant :  www.gimypro.com/maximeplante ) :

[b]Pour changer ma langue :[/b]
[i]Dans ma page html:[/i]
                        <td><a href=[b]"index.php?lang=fr" [/b]class="texteZoneD"><strong>Français</strong></a></td>
                        <td><a href=[b]"index.php?lang=en"[/b] class="texteZoneD"><strong>Anglais</strong></a></td>
   
[i]Et lors du chargement de ma page :[/i]

if(!isset($_GET['lang']))
{$_SESSION['lang'] = 'fr.php';}
else
{
     if ($_GET['lang'] != '')
    {$_SESSION['lang'] = ($_GET['lang'].'.php');}
}
include $_SESSION['lang'];



[b]Maintenant pour changer ma devise :[/b]
[i]Dans ma page html:[/i]

<form action="index.php" method="POST" >
<select name="currency" class="texteZoneD" style="width: 100px;" onchange="submit()">
<option value="CAD" <?php if ( isset($_POST['currency']) AND !empty($_POST['currency']) ){if(($_POST['currency'])=='CAD'){echo 'selected';}} ?>> $ Canadien</option>
<option value="USD" <?php if ( isset($_POST['currency']) AND !empty($_POST['currency']) ){if(($_POST['currency'])=='USD'){echo 'selected';}} ?>> $ Americain</option>
<option value="EUR" <?php if ( isset($_POST['currency']) AND !empty($_POST['currency']) ){if(($_POST['currency'])=='EUR'){echo 'selected';}} ?>> Euro</option>
</select>
</form>


[i] lors du chargement de ma page :[/i]

if ( isset($_POST['currency']) AND !empty($_POST['currency']) )
{$_SESSION['curr'] = $_POST['currency'];}
else
{ $_SESSION['curr'] = 'CAD';}

[i] et la conversion des prix :[/i]

   <?php
        $x = new CurrencyConverter('localhost','user','pass','convertisseurDeDevises','devises');
    echo $x->convert(2.50,'CAD',$_SESSION['curr']);      
    echo $_SESSION['curr'];
   ?>



Qu'est-ce qui ne marche pas? Je sais que lors du changement de devise je perd ma variable lang dans mon url, comment le garder? ou comment procéder?

Merci pour votre aide


Jimmy Plante
mardi 20 novembre 2007 à 16:06:19 | Re : Je perd ma variable URL lors d'un submit()

neigedhiver

Salut, Si tu stockes la langue dans une variable de session et qu'au chargement de la page tu ne vérifies que dans la variable GET, forcément, ça peut pas marcher... Il faudrait AUSSI vérifier si la langue est dans $_SESSION (puisque tu l'y mets), avant de forcer la langue en français ;)
mardi 20 novembre 2007 à 16:12:10 | Re : Je perd ma variable URL lors d'un submit()

jimmplan

À vrai dire au tout début mon code était :

if (!isset($_SESSION['lang']))
{
    $_SESSION['lang'] = 'fr.php';           
}
else
{   
    echo 'est defini';
    if (isset($_GET['lang']))
    {
        if ($_GET['lang'] != '')
        {
            $_SESSION['lang'] = ($_GET['lang'].'.php');
        }
    }
    else if(empty($_SESSION['lang']))
    {
        $_SESSION['lang'] = 'fr.php';   
    }
}

include $_SESSION['lang'];


mais ca ne marche pas plus, on dirait que mon include ne se fais pas car je fais afficher ma variable SESSION et c'est la bonne dont en.php....

Est-ce que tu saurais pourquoi le include ne se ferais pas comme il le faut ?

Merci

Jimmy P
mardi 20 novembre 2007 à 16:15:56 | Re : Je perd ma variable URL lors d'un submit()

jimmplan

Si tu vas sur www.gimypro.com/maximeplante

tu va voir au tout début en haut a gauche fr.php -> ce qui est correct
par la suite si tu clique sur anglais tu vera en.php -> ce qui est correct
Si tu change la devise, tu va voir encore en.php -> ce qui est correct car c ma variable session mais mon site redevient en francais ?

merci
jimmy p
mardi 20 novembre 2007 à 16:42:14 | Re : Je perd ma variable URL lors d'un submit()

neigedhiver

Réponse acceptée !
Ok... if (isset($_GET['lang'])) { if ($_GET['lang'] != '') Tu peux alléger en mettant ça : if (isset($_GET['lang']) && !empty($_GET['lang'])) { C'est aussi performant et plus clair. Le deuxième test (!empty() ) n'est effectué que si le premier est vrai. Ca fait un bloc en moins... (c'est juste du pinaillage, mais bon) Bon... Y'a un truc que je comprends pas dans tes tests. J'ai l'impression que tu fais pas tout dans le bon ordre. Si je comprends bien, la présence dans l'url de lang permet de forcer à changer. Donc il faut commencer par là. Pas avec le test sur la variable de session. Tu peux essayer ça ? $default_lang = 'fr'; // Langue spécifiée dans l'url if (isset($_GET['lang']) && !empty($_GET['lang'])) { // Il serait de bon ton, quand même, de vérifier que la langue est autorisée : fr ou en, pas autre chose... Sinon, on met la langue par défaut de force. $_SESSION['lang'] = $_GET['lang'] . '.php'; } // Pas de langue dans l'url else { // La variable de session n'existe pas ou est vide. On force à la valeur par défaut if (!isset($_SESSION['lang']) || empty($_SESSION['lang'])) { $_SESSION['lang'] = $default_lang . '.php'; } } // Ici, la variable de session est forcément définie et pleine. include($_SESSION['lang']); Je garantie pas que c'est correct, mais c'est déjà une piste.
mardi 20 novembre 2007 à 17:03:53 | Re : Je perd ma variable URL lors d'un submit()

jimmplan

Merci pour ton code, c'est vrai qu'il est plus clair et plus logique... cependant le tout ne marche pas encore.
Je t'ai mis à jour sur le site le code que tu ma proposé et des traces en haut de la page les commentaires en echo, tu pourra peut-être mieux voir comment réagis le site....

c'est bizarre la variable session est correctement rempli mais mon site n'inclut comme pas le bon fichier fr.php ou en.php

encore une fois
merci pour ton aide


Jimmy P.
mardi 20 novembre 2007 à 17:05:12 | Re : Je perd ma variable URL lors d'un submit()

jimmplan

www.gimypro.com/maximeplante
mardi 20 novembre 2007 à 17:37:27 | Re : Je perd ma variable URL lors d'un submit()

neigedhiver

Tu peux remettre ici le code exact tel qu'il est actuellement sur ton site ? Avec les echo et tout. Enfin juste la partie qui teste la langue, hein...
mardi 20 novembre 2007 à 21:48:03 | Re : Je perd ma variable URL lors d'un submit()

jimmplan

Dsl, je suis à l'école présentement je le ferai demain matin (Heure du québec)

merci
mardi 20 novembre 2007 à 22:13:38 | Re : Je perd ma variable URL lors d'un submit()

jimmplan

En fin de compte j'ai réussi à avoir accès à mon ftp voici le code complet de ma page.... pt que ca va mal se lire, si tu veux le .php voici mon msn jimmyplante@gmail.com...

merci encore

<?
session_start();

//Includes
include('CurrencyConverter.php');

 

$default_lang = 'fr';
// Langue spécifiée dans l'url
if (isset($_GET['lang']) && !empty($_GET['lang'])) {
        echo ' ** Langue spécifiée dans lurl **  ';
  // Il serait de bon ton, quand même, de vérifier que la langue est autorisée : fr ou en, pas autre chose... Sinon, on met la langue par défaut de force.
  $_SESSION['lang'] = $_GET['lang'] . '.php';
}
// Pas de langue dans l'url
else {
  echo ' ** pas de langue dans lurl ** ';
  // La variable de session n'existe pas ou est vide. On force à la valeur par défaut
  if (!isset($_SESSION['lang']) || empty($_SESSION['lang'])) {
  echo 'variable session existe pas ou est vide, on force a la valeur par defaut   ';
    $_SESSION['lang'] = $default_lang . '.php';
  }
}
// Ici, la variable de session est forcément définie et pleine.
echo ' ** Contenu de la variable SESSION : ';
echo $_SESSION['lang'];
echo ' **  ';
echo ' ** Ici, la variable de session est forcément définie et pleine ** ';
include($_SESSION['lang']);

/*if (!isset($_SESSION['lang']))
{
        $_SESSION['lang'] = 'fr.php';                  
}
else
{      
        echo 'est defini';
        if (isset($_GET['lang']))
        {
                if ($_GET['lang'] != '')
                {
                        $_SESSION['lang'] = ($_GET['lang'].'.php');
                }
        }
        else if(empty($_SESSION['lang']))
        {
                $_SESSION['lang'] = 'fr.php';  
        }
}

include $_SESSION['lang']; */

 

 

if ( isset($_POST['currency']) AND !empty($_POST['currency']) )
{
        $_SESSION['curr'] = $_POST['currency'];
}
else
{                      
        $_SESSION['curr'] = 'CAD';
}


?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
" [ Lien ]">
<html xmlns=" [ Lien ]">

<head>
<title><?php echo $l['titleModele']; ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<style type="text/css">td img {display: block;}</style>

<!-- Include CSS -->
<link rel="stylesheet" href="css/styles.css" type="text/css" />
<link rel="stylesheet" href="css/menu.css" type="text/css" />
 
<!-- Javascript -->
<script src="js/menu.js" type="text/javascript"></script> 
<script language="JavaScript" type="text/JavaScript">
<!--

//-->
</script>
</head>

<body bgcolor="#F6EFB9">
<center><table border="0" cellpadding="0" cellspacing="0" width="766">
 
  <!-- Header -->
  <tr>
   <td colspan="3">
        <img name="header" src="images/webdesign/header.png" width="766" height="129" border="0" id="header" alt="" />
   </td>
  </tr>
  <!-- Fin Header -->

  <!-- MENU -->
  <?php include 'menu.php'; ?>
  <!-- FIN MENU -->
                                       
  <!--Espace -->
  <tr>
   <td colspan="3" bgcolor="#FEFADA" height="5" ></td>
  </tr>
  <!-- Fin espace -->                                                                                                                                          
 
  <!-- Zone Dynamique: Language, Devise, Panier, Compte -->
        <tr>
         <td bgcolor="#FEFADA" width="10"></td>
         <td bgcolor="white" width="742" height="35">
                <table>
                   <tr>
                                <!-- Devises -->
                                <td width="190" height="40" align="left" valign="top">
                                        <div  style="padding-left: 5px; padding-top: 9px; padding-bottom: 0px;">
                                        <table border=0 summary="">
                                        <tr>
                                                <td valign="top"><span class="texteZoneD"><?php echo $ZoneD['devise']; ?></span></td>
                                                <td valign="middle">                                   
                                                <form action="index.php" method="POST" >
                                                <select name="currency" class="texteZoneD" style="width: 100px;" onchange="submit()">
                                                        <option value="CAD" <?php if ( isset($_POST['currency']) AND !empty($_POST['currency']) ){if(($_POST['currency'])=='CAD'){echo 'selected';}} ?>> $ Canadien</option>
                                                        <option value="USD" <?php if ( isset($_POST['currency']) AND !empty($_POST['currency']) ){if(($_POST['currency'])=='USD'){echo 'selected';}} ?>> $ Americain</option>
                                                        <option value="EUR" <?php if ( isset($_POST['currency']) AND !empty($_POST['currency']) ){if(($_POST['currency'])=='EUR'){echo 'selected';}} ?>> Euro</option>
                                                </select>
                                                </form></td>
                                        </tr>
                                </table>
                                </div>
                                </td>
                               
                                <!-- Barre séparatrice -->
                                <td width="16" height="40" align="left" valign="top">
                                <div style="padding-left:5px; padding-top:13px; padding-bottom:12px;"> 
                                <center><strong class="texteZoneD"> | </strong> </center> 
                                </div>
                                </td>
                               
                                <!-- Language -->
                                <td width="180" height="40" align="left" valign="top" >
                                        <div style="padding-left:5px; padding-top:10px;">      
                                        <table>
                                          <tr>
                                                <td><span class="texteZoneD"><?php echo $ZoneD['langue']; ?></span></td>
                                               
                                                <td><a href="index.php?lang=fr" class="texteZoneD"><strong>Français</strong></a></td>
                                                <td><strong class="texteZoneD"> / </strong></td>
                                                <td><a href="index.php?lang=en" class="texteZoneD"><strong>Anglais</strong></a></td>
                                          </tr>
                                        </table>       
                                        </div>
                                </td>
                               
                                <!-- Barre séparatrice -->
                                <td width="16" height="40" align="left" valign="top">
                                <div style="padding-left:5px; padding-top:13px;">      
                                <center><strong class="texteZoneD"> | </strong> </center> 
                                </div>
                                </td>
                                       
                                <!-- Panier -->
                                <td width="270" height="40" align="left" valign="top">
                                <div style="padding-left:5px; padding-top:3px; ">      
                                <table border="0" align="center" cellpadding="2" cellspacing="0" summary="">
                                        <tr>
                                                <td rowspan="2"><img src="images/webdesign/panier.png" border="0" width="25" height="26" alt=""></img></td>
                                                <td><strong class="texteZoneD2"><u><?php echo $ZoneD['panier']; ?></u></strong></td>
                                                <td></td>
                                        </tr>
                                        <tr>
                                                <td><span class="texteZoneD2"><?php echo $ZoneD['panierContient']; ?></span></td>
                                                <td><a href="" class="texteZoneD"><strong>0 items</strong></a></td>
                                        </tr>
                                </table>
                                </div>
                                </td>
                               
                                <!-- Barre séparatrice -->
                                <td width="16" height="40" align="left" valign="top">
                                <div style="padding-left:5px; padding-top:13px;">      
                                <center><strong class="texteZoneD"> | </strong> </center> 
                                </div>
                                </td>
                               
                                <!-- Connexion -->
                                <td width="140" height="40" align="left" valign="top">
                                <div style="padding-left:5px; padding-top:3px;">       
                                <table border="0" summary="">
                                        <tr>
                                                <td><a href="" class="texteZoneD2"><?php echo $ZoneD['connexion']; ?></a></td>
                                        </tr>
                                        <tr>
                                                <td><a href="" class="texteZoneD2"><?php echo $ZoneD['ouvrirCompte']; ?></a></td>
                                        </tr>
                                </table>
                                </div>
                                </td>
                               
                   </tr>
                   </table>
         </td>
         <td bgcolor="#FEFADA" width="10"></td>
        </tr>  
  <!-- Fin zone dynamique -->                                                                                   
 
  <!-- Corps du site -->
  <tr>
   <td colspan="3" bgcolor="#FEFADA"><br><br><br>
   <div style="padding-left:25px;">    
   <?php
         $x = new CurrencyConverter('localhost','jimmp','jimmp','convertisseurDeDevises','devises');
        echo $x->convert(2.50,'CAD',$_SESSION['curr']);  
        echo $_SESSION['curr'];
   ?>
   </div>
   <br><br><br>
   </td>
  </tr>
  <!-- Fin du corps -->
  
  <!-- Pied de page -->
  <?php include 'footer.php'; ?>
  <!-- Fin pied de page -->

</table></center>
</body>
</html>


1 2

Cette discussion est classée dans : page, site, session, lang, devise


Répondre à ce message

Sujets en rapport avec ce message

Problème de session ? [ par phpwankenobi ] Salut à tous...Voici un code que j'utilise pour garantir la confidentialité de la partie d'un site :session_start();if (!session_is_registered('login' session_start sur ts page de site ? [ par tibine974 ] Meuh ! Fais la vache Yo ! voilà deux questions qui me permetront je l'espére de devenir une lumiére : 1°) Dois-je mettre session_start(); sur tous l OnExit [ par maximev ] Bonjour,J'aimerais savoir s'il est possible de lancer un page lors de la sortie du visiteur du site.Je m'explique un peu: pour des raisons de sécurité Page blanche quand je mets le site en ligne [ par Shikapowa ] Mesdames mesdemoiselles messieurs bonjour.Après avoir avoir trouvé mes erreurs javascript, je me lance dans un plus grand problème: la mise en ligne d Un dossier et une page pour chaque membre du site ? [ par hakeem69 ] Bonjour, Pseudo frames et panier, perte de session... [ par alphacrash ] Bonjour !Voila mon soucis, je pense assez connu, j'utilise les pseudo frames donc une page index qui contient au debut un session_start() et cette pag Ajax et variables de sessions en temps réel [ par ICIoBRa ] Salut à tous, je cherche à afficher sur une page, la valeur d'une variable de session en temps réel, sans recharger la page.Voila un exemple, je voudr site type Myspace [ par Pierre75000 ] Bonjour à tous,je suis nouveau sur ce forum et ceci est mon premier post.J'aimerais savoir comment est conçu l'architecture d'un site du type Myspace. Ajax et variables de sessions en temps réel [ par ICIoBRa ] Salut à tous, je cherche à afficher sur une page, la valeur d'une variable de session en temps réel, sans recharger la page.Voila un exemple, je voudr (Php/sql) session administrateur [ par Gwendo69 ] Bonjour,Je démarre tout juste en php. J'ai commencé à faire un site avec une base de données.En fait, je voudrais pouvoir faire un formulaire (ça je s


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 10,889 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales