IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Cookies] problème de switch [Fait]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Août 2004
    Messages
    499
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 499
    Par défaut [Cookies] problème de switch
    Bonjour,
    j'éssaie d'installer un switch en vain !
    http://creatif-web.be/port_folio/index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <head>
    <link rel="stylesheet" type="text/css" media="screen" title="Style de l'utilisateur" href="<?php echo (isset($_COOKIE['feuilleStyle'])) ? $_COOKIE['feuilleStyle'] : 'style' ; ?>.css" />
    <link rel="stylesheet" type="text/css" media="screen" title="Style de l'utilisateur" href="<?php echo (isset($_COOKIE['feuilleStyle'])) ? $_COOKIE['feuilleStyle'] : 'vert' ; ?>.css" />
    </head>
    XHTML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <form action="/switch.php" method="post" class="lestyle">
     <!-- vous pouvez choisir d'utiliser la méthode GET, le fonctionnement en sera le même -->
     <fieldset>
       <legend>Changez de style...</legend>
       <select name="style">
        <option value="style1"<?php if ($_COOKIE['feuilleStyle'] == 'style') { echo ' selected="selected"'; } ?>>Style simple</option>
        <option value="vert"<?php if ($_COOKIE['feuilleStyle'] == 'vert') { echo ' selected="selected"'; } ?>>Style forêt</option>
    </select>
       <input type="hidden" name="redirection" value="http://<?=htmlspecialchars($_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'])?>" />
       <input type="submit" value="Changer" />
     </fieldset>
    </form>
    La création du cookies je l'ai mises dans un fichier "switch.php" à la racine du site
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    <?php
      $validite = time() + 60 * 60 * 24 * 31 * 2; // deux mois en secondes
     
      // on considère que register_globals est désactivée, ainsi ce script fonctionnera quel que soit la configuration
      if (isset($_GET['style'])) {
        /* le style a été passé en méthode GET, dans l'URL */
        $style = $_GET['style'];
      }
      else if (isset($_POST['style'])) {
        /* le style a été passé en méthode POST, dans les entêtes HTTP */
        $style = $_POST['style'];
      }
     
      if (isset($_GET['redirection'])) {
        /* l'adresse de la page en cours est passée en méthode GET, dans l'URL */
        $redirection = $_GET['redirection'];
      }
      else if (isset($_POST['redirection'])) {
        /* l'adresse de la page en cours a été passée en méthode POST, dans les entêtes HTTP */
        $redirection = $_POST['redirection'];
      }
     
      // protection contre les petits malins qui tenteraient de pirater le site
      // le nom du style ne peut contenir que des caractères alpha-numériques et les caractères _ et -
      $style = preg_replace('#[^a-zA-Z0-9_-]#', '', $style);
     
      // on vérifie qu'il s'agit bien d'un lien interne
      // il doit commencer par http://monsite.com/ 
      if (strpos($redirection, 'http://'.$_SERVER['SERVER_NAME'].'/') === false || strpos($redirection, 'http://'.$_SERVER['SERVER_NAME'].'/') != 0) {
        /* tentative de piratage ? on remplace par la racine du site */
        $redirection = 'http://'.$_SERVER['SERVER_NAME'].'/';
      }
     
      setcookie('feuilleStyle', $style, $validite, '/', 'http://creatif-web.be/', 0);
     
      // on n'utilise pas le HTTP_REFERER car ce n'est pas fiable et les proxy ne l'envoyent pas
      header("Location: $redirection");
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans titre</title>
    </head>
     
    <body>
    </body>
    </html>
    Le problème c'est que c'est le vert qui s'affiche, alors que celui par défault ne fonctionne pas.
    Merci d'avance
    sur mon serveur en tapant php(infos)
    j'ai sa :
    session.cookie_domain no value no value
    session.cookie_lifetime 0 0
    session.cookie_path / /
    session.cookie_secure Off Off
    Sa viens peut être de là aussi, j'héberge mes sites !

  2. #2
    Membre éclairé
    Inscrit en
    Août 2004
    Messages
    499
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 499
    Par défaut
    le tuto je les pris ici :
    http://giminik.developpez.com/articl...tyle-switcher/

    en fait j'ai vérifier dans mon fichier php.ini, il dit que c'est ok pourles cookies ?????????????? ?

Discussions similaires

  1. [Cookies] Problème avec les sessions PHP !!!
    Par boukay dans le forum Langage
    Réponses: 4
    Dernier message: 14/02/2006, 18h32
  2. [Cookies] problème cookie login automatique
    Par t-die dans le forum Langage
    Réponses: 1
    Dernier message: 26/01/2006, 17h48
  3. [Cookies] problème avec site multilingue
    Par lacfab dans le forum Langage
    Réponses: 13
    Dernier message: 31/12/2005, 00h10
  4. [Cookies] Problème dans IE mais pas dans FF
    Par Manio 54 dans le forum Langage
    Réponses: 19
    Dernier message: 15/12/2005, 19h30
  5. [Tableaux] Problème avec Switch case
    Par philippef dans le forum Langage
    Réponses: 4
    Dernier message: 07/09/2005, 17h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo