Version complète: sur le forum Webmaster Hub : Cherchez l'erreur ? php javascript cookies comment bien les mixer?
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
Yohann73
Bonjour bonjour chères experts du PHP et javascript,commençons par le contexte de ma question :

L'utilisateur se log , je récupère des données dans ma base sql et les ranges dans des variables de session. Pour l'une d'entre elle que je décompose j'en fait des cookie

CODE
<?php
                $_SESSION['email'] = $email;
        $sqllog = "SELECT * FROM tbl_user WHERE email = '$email'";
        $reqlog = mysql_query($sqllog);  
        $data = mysql_fetch_array($reqlog);
        $ido = explode("/",$data['practice']);
        for ($i=0; $i<count($ido); $i++) {$_SESSION[$ido[$i]] = 1;                        setcookie('practice'.$i, $ido[$i]);}
        header("location: member.php?id=".$id['id']);
?>


Dans la page member.php j'ai plein de petites images qui ne s'affiche seulement si certaines variables sont présentes et varie donc suivant les utilisateurs


CODE
<div  id="widebar">
<div  id="widebar_content">
  <div id="profile_photo"></div>
  <img src="images/bmx.gif" alt="BMX" name="bmx" width="60" height="60" id="BMX" style="display: none;"/>
  <img src="images/skate.gif" alt="skateboard" name="skateboard" width="60" height="60" id="Skateboard" style="display: none;"/>
  <img src="images/roller.gif" alt="roller" name="roller" width="60" height="60" id="Roller" style="display: none;"/>
  <img src="images/snowboard.gif" alt="snowboard" name="snowboard" width="60" height="60" id="Snowboard" style="display: none;"/>
  <img src="images/ski.gif" alt="ski" name="ski" width="60" height="60" id="Ski" style="display: none;"/>
  <img src="images/climb.gif" alt="climb" name="climb" width="60" height="60" id="Climb" style="display: none;"/>
  <img src="images/surf.gif" alt="surf" name="surf" width="60" height="60" id="Surf" style="display: none;"/>
  <img src="images/wakeboard.gif" alt="wakeboard" name="wakeboard" width="60" height="60" id="Wakeboard" style="display: none;"/>
  <img src="images/kytesurf.gif" alt="kytesurf" name="kytesurf" width="60" height="60" id="Kytesurf" style="display: none;"/>
  <img src="images/funboard.gif" alt="funboard" name="funboard" width="60" height="60" id="Funboard" style="display: none;"/>
  <img src="images/skydive.gif" alt="skydive" name="skydive" width="60" height="60" id="Skydive" style="display: none;"/>
  </div>
</div><!-- end #widebar -->
<?php          
        $sqlpractice = "SELECT practice FROM tbl_user WHERE email = '$email'";
        $reqpractice = mysql_query($sqlpractice);  
        $member_practice = mysql_fetch_array($reqpractice);
        $ido = explode("/",$member_practice['practice']);
for ($i=0; $i<count($ido); $i++) {
        $member_practice = $ido[$i];
        if (isset($_SESSION[$ido[$i]])){
?>
<script language="javascript">
for(var i=0; i<6; i++){
var member_practice = GetCookie(practice+i);
show(member_practice);
};
</script>
<?php
}};
?>


pour info la fonction show permet simplement de changer le "display" du div pour le passer de none à qqchose qui l'affiche

Bref ce code ne fonction pas pour moi pas plus que les autres solution que j'ai pu essayer en utilisant directement la variable PHP ... nonono.gif

Ma requête est donc la suivante ...si quelqu'un à une petite suggestion ou simplement vois l'erreur dans mon code n'hésitez pas ! a_thumbsup_20.gif
smile
Bon je peux me tromper mais le souci ne vient pas de l'appel en java script:

CODE
var member_practice = GetCookie(practice+i);


mais plutôt :
CODE
var member_practice = GetCookie('practice'+i);
Yohann73
J'ai ajouté les guillemets autour de practice mais je n'ai toujours aucun affichage dots.gif , le problème doit être ailleur ... merci quand même .
Yohann73
PLus personne n'as d'idée sur ce sujet ? whistling.gif Je vous relance car ça ne me parai pas être un problème compliqué il me faut juste un regard extérieur pour trouver l'erreur ... please help .... sad.gif
Yohann73
J'ai finalement trouvé tout seul voila la solution adopté :

CODE
<?php          
$sqlpractice = "SELECT practice FROM tbl_user WHERE email = '$email'";
$reqpractice = mysql_query($sqlpractice);  
$member_practice_ALL = mysql_fetch_array($reqpractice);
$ido = explode("/",$member_practice_ALL['practice']);
for ($i=0; $i<count($ido); $i++) {
if (isset($_SESSION[$ido[$i]])){
?>
<script language="javascript">
show("<?php echo $_SESSION[$ido[$i]]?>");
</script>
<?php
};};
?>
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.