Plusieurs cookies ds une page ...

Statut
N'est pas ouverte pour d'autres réponses.
K

kEr0

ex membre
J'ai appris que si l'ont met plusieurs cookie dans une page, il s'annulent l'un après l'autre ... Qqun peut me faire une sorte de tuto bien comprhéensible plz ??? Pcque j'pige po trop cmt ca fonctionne ces trucs ...

Pour exemple si y faut, ... Je dois en utiliser au moins un pour la selection du style (css) et un pour la langue du site ...
 
1er
OP
K

kEr0

ex membre
J'ai vu un truc de ce genre ...

Code:
<?
$compte++;
SetCookie("Compte", $compte);
SetCookie("Caddie[$compte]", $item);
?>
Donc je pourrais faire ceci ? :

Code:
<?
$cookie++;
SetCookie("Lang[$cookie]", $language);
SetCookie("Style[$cookie]", $stylecss);
?>
Alors ? :roll:
 
R

RedCross

ex membre
Sorry, je sais pas t'aider. Ça m'intéresse à fond de savoir.

Par contre je me demande pourquoi tu mets pas les 2 infos dans un seul cookie. Enfin, ça me regarde p'têtre pas :D
 
1er
OP
K

kEr0

ex membre
RedCross a dit:
Sorry, je sais pas t'aider. Ça m'intéresse à fond de savoir.

Par contre je me demande pourquoi tu mets pas les 2 infos dans un seul cookie. Enfin, ça me regarde p'têtre pas :D
Euh on sais faire ca ? Et comment ?

Code:
<? 
SetCookie("Portal", "$language , $stylecss"); 
?>
Comme ca ?? J'en sais rien moi .. Mais dès j'pose un truc sur le php ici ... Jms personne pour me répondre pffff :evil:
 

Azinou

Ancienne LV
p'tetre paske tu pose des truc tro kompliker ossi :roll:
j'y connais rien o php moa... :oops:
 
1er
OP
K

kEr0

ex membre
Aznar a dit:
p'tetre paske tu pose des truc tro kompliker ossi :roll:
j'y connais rien o php moa... :oops:
Mouais ... UP :)
 
1er
OP
K

kEr0

ex membre
Bon v'la mon code fini (pr le mom) :

Code:
<? // On crée la post-incrémentation des cookies.
   $cookie++;
?>

<? // Choix du language.
   // On crée le cookie gardant en mémoire la langue choisie par l'utilisateur.
   SetCookie("kero_portal[$cookie]", $language);

   if($language == 'FR') // Si le language sélectionné est "FR", la langue devient le Français.
                        {
                         $language_path = ''.$portal_lang_path.'/French/';
                        }
   else // Si pas de language sélectionné, la langue sera le Français.
       {
        $language_path = ''.$portal_lang_path.'/French/';
       }

   // On inclus le(s) fichier(s) de base dans la langue choisie.
   include(''.$language_path.'lang_main.'.$phpEx.'');
?>

<? // Choix du style [CSS].
   // On crée le cookie gardant en mémoire le style choisi par l'utilisateur.
   SetCookie("kero_portal[$cookie]", $stylecss);

   if($stylecss == 'BLACK_ORANGE') // Si le style sélectionné est "BLACK_ORANGE", le style devient "BLACK_ORANGE".
                                  {
                                   $style_file = ''.$portal_styles_path.'black_orange.'.$phpEx.'';
                                  }
   else // Si pas de style sélectionné, le style devient "BLACK_ORANGE"
       {
        $style_file = ''.$portal_styles_path.'black_orange.'.$phpEx.'';
       }

   // On inclus le(s) fichier(s) de base dans la langue choisie.
   include($style_file);
?>
Je sais pas si ca fontionne, mais bon ... See you ... :wink:
 
R

RedCross

ex membre
SOrry Kero, le but est bien de faire évoluer ce forum html vers la haut niveau qualité et temps de réponse ;)
Peros, je touche au php, mais j'suis pas vraiement une bête non plus.

T'as déjà jeté un oeil sur le manuel ?
http://www.php.net/manual/fr/function.setcookie.php
 
1er
OP
K

kEr0

ex membre
RedCross a dit:
SOrry Kero, le but est bien de faire évoluer ce forum html vers la haut niveau qualité et temps de réponse ;)
Peros, je touche au php, mais j'suis pas vraiement une bête non plus.

T'as déjà jeté un oeil sur le manuel ?
http://www.php.net/manual/fr/function.setcookie.php
Si j'en lis ca :

Vous pouvez aussi utiliser les cookies avec des tableaux, en utilisant la notation des tableaux. Cela a pour effet de créer autant de cookies que votre tableau a d'éléments, mais lorsque les cookies seront reçus par PHP, les valeurs seront placées dans un tableau :


Code:
<?php
  setcookie( "cookie[three]", "cookiethree" );
  setcookie( "cookie[two]", "cookietwo" );
  setcookie( "cookie[one]", "cookieone" );
  if ( isset( $cookie ) ) {
    while( list( $name, $value ) = each( $cookie ) ) {
      echo "$name == $value<br>\n";
    }
  }
?>
Je pense que mon code doit être bon ... :roll: Si qqun qui s'y connait passe ENFIN, qu'il puisse donner son avis ..
 

SUEd

Touriste
alors, tu peux mettre plusieurs infos dans une seule cookie !

Pour cela, il faut utiliser la commande serialize() et unserialize() :)

Il me semble en avoir parler et l'avoir déjà expliqué dans un autre post de ce forum !!!:)

https://www.gamerz.be/forum/viewtopic.php/t-35826.html

tu vas au niveau de mon post et on explique pour mettre plusieurs infos dans une seule cookie ;)
 
1er
OP
K

kEr0

ex membre
SUEd a dit:
alors, tu peux mettre plusieurs infos dans une seule cookie !

Pour cela, il faut utiliser la commande serialize() et unserialize() :)

Il me semble en avoir parler et l'avoir déjà expliqué dans un autre post de ce forum !!!:)

https://www.gamerz.be/forum/viewtopic.php/t-35826.html

tu vas au niveau de mon post et on explique pour mettre plusieurs infos dans une seule cookie ;)
Je vois mais +- ... Tu pourrais pas modif mes cookies sur mon code ? En mettant par en orange les ligne de cookie ke tu changes plz ??? Pour que tout soit correct :oops: ?
 

SUEd

Touriste
Création de la cookie :
Code:
<?
$var['lang'] = $language;
$var['theme'] = $theme;
$donnees = serialize($var);
setcookie("kero_portal", $donnees);
?>
Vérif de l'exitence d'une cookie et si c'est le cas, création des variables (sinon, variable par défaut) :
Code:
<?
if (isset($HTTP_COOKIE_VARS['kero_portal'])) {
   $var = unserialize (stripslashes ( $HTTP_COOKIE_VARS['kero_portal'] ) );
   $language = $var['lang'];
   $theme = $var['theme'];
}
else {
   // pas de cookies donc, mettre les choix par défaut
   // par exemple, ce qui suit :
   $language = "FR";
   $theme = "BLACK_ORANGE";
}
?>
choix des fichiers suivant les valeurs des variables :
Code:
<?
switch($language) {
   case "FR": $lang_path = "fr/xyz.php"; break;
}
switch($theme) {
   case "BLACK_ORANGE": $theme_path = "bl_or/xyz.php"; break;
}
?>
on finit avec les includes :
Code:
<?
include($lang_path);
include($theme_path);
?>
voilà un exemple, à toi de l'adapter !:p
 

Azinou

Ancienne LV
rien a voir mais,...
c bon les ookies :)
ok g :arrow:
 
1er
OP
K

kEr0

ex membre
BOn , bon ... J'ai ca now :

Code:
<? // On crée le cookie.
   $cookie_var['lang'] = $language;
   $cookie_var['style'] = $stylecss;
   $cookie = serialize($cookie_var);
   SetCookie("kero_portal", $cookie);
?>

<? // On crée les variables du cookie si celui-ci n'en contient pas encore.
   if(isset($HTTP_COOKIE_VARS['kero_portal']))
                                              {
                                               $cookie_var = unserialize(stripslashes($HTTP_COOKIE_VARS['kero_portal']));
                                               $language = $cookie_var['lang'];
                                               $stylecss = $var['style'];
                                              }
   // On crée tous les "ElseIf" pour les langues.
   elseif($language == 'FR') // Si le language sélectionné est "FR", la langue devient le Français.
                            {
                             $language_path = ''.$portal_lang_path.'/French/';
                            }
   // On crée tous les "ElseIf" pour les styles.
   elseif($stylecss == 'BLACK_ORANGE') // Si le style sélectionné est "BLACK_ORANGE", le style devient "BLACK_ORANGE".
                                      {
                                       $style_file = ''.$portal_styles_path.'black_orange.'.$phpEx.'';
                                      }
   else // Si pas de cookie, on met les choix par défaut.
       {
        $language = "FR";
        $stylecss = "BLACK_ORANGE";
       }
?>

<? // On inclus les fichiers d'après le cookie.
   // On inclus le(s) fichier(s) de base dans la langue choisie.
   include(''.$language_path.'lang_main.'.$phpEx.'');
   // On inclus le(s) fichier(s) de base dans la langue choisie.
   include($style_file);
?>
Oui je transfo tjrs un peu a chak fois :p :D

Euh par contre ... Cmt k'on fait un formulaire en menu deroulant avec raffraichissement de la page pour ca ?? :oops:
(Avec bouton SUBMIT je préfère) ...

Un exemple pour la langue suffit, je saurai le transformer pour le style :p
 
1er
OP
K

kEr0

ex membre
Up :roll:
 

SUEd

Touriste
à la place d'utiliser des elseif (comme tu le fais et qui, à mon avis, foireront), utilise des switch, c'est plus simple !!! :p

Code:
switch($var) {
   case "xx":
      instruction11;
      instruction12;
      etc;
      break;
   case "yy":
      instruction21;
      instruction22;
      etc;
      break;
   default:
      instruction31;
      instruction32;
      break;
}
en fait, le switch évalue la valeur de $var et ensuite, il compare aux différents cas que tu as prévu (case).
S'il trouve le bon cas, il fait la suite d'instructions que tu as prévue et lorsqu'il rencontre le break; il sort du switch().
S'il ne trouve pas le bon cas, alors, il fait le cas par défaut (default).
Il ne faut donc jamais oublier de break; à la fin de chaque cas ;)

Sinon, tu apprendras avec le temps que c'est bien plus clair (surtout si tu veux faire des modifications par la suite) de séparer les choses (partie qui s'occupe des cookies, partie pour les langues, partie pour les themes).

Si jamais tu veux encore modifier à ta façon, et garder ton if etc...
alors, syntaxiquement, tes elseif sont faux ! (le PHP étant un langage très flexible, ca pourrait ptet fonctionner, mais c'est pas propre du tout ! :)

il vaut mieux faire :
Code:
if ....... // cookie existe
else // cookie n'existe pas

if .......... // langue = fr
elseif ...... // langue = en
elseif ....... // langue = nl
else // langue par défaut

if ......... // theme = black orange
elseif ...... // theme = orange orange :P
else // theme par défaut
(sorry de pas avoir retaper toutes les conditions, mais j'avais po envie de tout copier/coller :p)
 
1er
OP
K

kEr0

ex membre
Mouais bon je pense avoir compris cmt ca fonctionne now ... :oops:

Euh je modif a "TA FACON" pi je remet le code ici ... Tu pe me dire pr les menu deroulante plz ?

avec ossi boite de msg disant : langue X chosie pi qd on appuie sur ok ca recharge la page ... :roll:
 
N

niafron

ex membre
kEr0 a dit:
J'ai appris que si l'ont met plusieurs cookie dans une page, il s'annulent l'un après l'autre ... Qqun peut me faire une sorte de tuto bien comprhéensible plz ??? Pcque j'pige po trop cmt ca fonctionne ces trucs ...

Pour exemple si y faut, ... Je dois en utiliser au moins un pour la selection du style (css) et un pour la langue du site ...
bon c des couilles
si tu veux plusieurs cookies il fo kils aient des nom different


-- oui sued a raison aussi ( pour les cookies c une eme possibilite ) --

pour le reste g pas tout compris donc SUed a raison ( lol )
 

SUEd

Touriste
pour le formulaire, je te fais un truc "type" :)

Code:
<?
// on affiche le formulaire (dans tous les cas)
echo "
   <form method=\"POST\" action=\"".$PHP_SELF."\">
   <select size=\"1\" name=\"Menu\">
      <option selected value=\"1\">Accueil</option>
      <option value=\"2\">Membres</option>
   </select>
   <input type=\"submit\" name=\"submit\" value=\"Go!\">
   </form>
";
if (!empty($submit)) { // dans le cas où on a appuyé sur Go!
   switch($Menu) {
      case 1: $page = "accueil.php"; break;
      case 2: $page = "membres.php"; break;
      default: $page = "accueil.php"; break;
   }
}
?>
Le switch permet de garnir la var $page avec le nom de la page à inclure :)

il ne te reste donc plus qu'à mettre un include à l'endroit où la page doit être incluse :)

Bon, ça, c'est un truc général ! :)
Je te conseille vivement de le modifier car c'est vraiment général et pour l'inclure dans un design, faut le modifier :) c'est juste pour que tu captes le principe ;)
 

SUEd

Touriste
kEr0 a dit:
Mouais bon je pense avoir compris cmt ca fonctionne now ... :oops:

Euh je modif a "TA FACON" pi je remet le code ici ... Tu pe me dire pr les menu deroulante plz ?

avec ossi boite de msg disant : langue X chosie pi qd on appuie sur ok ca recharge la page ... :roll:
bin, en fait, le pb, c'est que tu faisais :
Code:
if cookie existe
elseif lang = fr
elseif theme = blackorange
else // cookie n'existe pas
ce qui n'est pas super logique quoi :)
il vaut mieux séparer les notions (cookie, langue, theme) en plusieurs if :)
Maintenant, que tu utilises le switch ou le if, c'est ton problème :p mais par la suite, tu seras content d'avoir séparer les notions, si jamais tu dois faire des modifications :p
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut