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 :

Problème cookie value select


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 207
    Par défaut Problème cookie value select
    Bonjour,
    Après plusieurs heures de recherche et de teste je fait appel a votre savoir car je trouve pas ni sur google ni par moi même.

    J'essaie de mémorisé le choix de la couleur choisir via un cookie voici 3 exemple de code que j'ai testé parmi plusieurs autre solution.

    Page index.php 1er Teste
    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
    <select name="couleur" id="couleur" style="width:150px">
    <option value="0" style="background-color:#FFFFFF" <?php if ( !isset($_COOKIE['couleur'] )) { echo "selected=\"selected\""; } ?>>Blanc</option>
    <option value="1" style="background-color:#000000;color:white" selected="selected" <?php if ( !isset($_COOKIE['couleur'] )) { echo "selected=\"selected\""; } ?>>Noir</option>
    <option value="2" style="background-color:#000080;color:white" <?php if ( !isset($_COOKIE['couleur'] )) { echo "selected=\"selected\""; } ?>>Bleu foncé</option>
    <option value="3" style="background-color:#008000;color:white" <?php if ( !isset($_COOKIE['couleur'] )) { echo "selected=\"selected\""; } ?>>Vert foncé</option>
    <option value="4" style="background-color:red" <?php if ( !isset($_COOKIE['couleur'] )) { echo "selected=\"selected\""; } ?>>Rouge</option>
    <option value="5" style="background-color:#800000;color:white" <?php if ( !isset($_COOKIE['couleur'] )) { echo "selected=\"selected\""; } ?>>Rouge foncé</option>
    <option value="6" style="background-color:#800080;color:white" <?php if ( !isset($_COOKIE['couleur'] )) { echo "selected=\"selected\""; } ?>>Violet</option>
    <option value="7" style="background-color:#FF8000" <?php if ( !isset($_COOKIE['couleur'] )) { echo "selected=\"selected\""; } ?>>Orange</option>
    <option value="8" style="background-color:yellow" <?php if ( !isset($_COOKIE['couleur'] )) { echo "selected=\"selected\""; } ?>>Jaune</option>
    <option value="9" style="background-color:#00FF00" <?php if ( !isset($_COOKIE['couleur'] )) { echo "selected=\"selected\""; } ?>>Vert clair</option>
    <option value="10" style="background-color:#008080" <?php if ( !isset($_COOKIE['couleur'] )) { echo "selected=\"selected\""; } ?>>Turquoise</option>
    <option value="11" style="background-color:#8080FF" <?php if ( !isset($_COOKIE['couleur'] )) { echo "selected=\"selected\""; } ?>>Bleu clair</option>
    <option value="12" style="background-color:#FFFFFF" <?php if ( !isset($_COOKIE['couleur'] )) { echo "selected=\"selected\""; } ?>>Bleu Clair</option>
    <option value="13" style="background-color:#FF00FF" <?php if ( !isset($_COOKIE['couleur'] )) { echo "selected=\"selected\""; } ?>>Rose</option>
    <option value="14" style="background-color:#808080" <?php if ( !isset($_COOKIE['couleur'] )) { echo "selected=\"selected\""; } ?>>Gris foncé</option>
    <option value="15" style="background-color:#C0C0C0" <?php if ( !isset($_COOKIE['couleur'] )) { echo "selected=\"selected\""; } ?>>Girs clair</option>
    </select>
    Page index.php 2eme Teste
    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
    <select name="couleur" id="couleur" style="width:150px">
    <?php echo stripslashes($_COOKIE['couleur']); ?> </option><?php if ( isset($_COOKIE['couleur'])) { ?>
    <option value="0" style="background-color:#FFFFFF">Blanc</option>
    <option value="1" style="background-color:#000000;color:white" selected="selected">Noir</option>
    <option value="2" style="background-color:#000080;color:white">Bleu foncé</option>
    <option value="3" style="background-color:#008000;color:white">Vert foncé</option>
    <option value="4" style="background-color:red">Rouge</option>
    <option value="5" style="background-color:#800000;color:white">Rouge foncé</option>
    <option value="6" style="background-color:#800080;color:white">Violet</option>
    <option value="7" style="background-color:#FF8000">Orange</option>
    <option value="8" style="background-color:yellow">Jaune</option>
    <option value="9" style="background-color:#00FF00">Vert clair</option>
    <option value="10" style="background-color:#008080">Turquoise</option>
    <option value="11" style="background-color:#8080FF">Bleu clair</option>
    <option value="12" style="background-color:blue;color:white">Bleu foncé</option>
    <option value="13" style="background-color:#FF00FF">Rose</option>
    <option value="14" style="background-color:#808080">Gris foncé</option>
    <option value="15" style="background-color:#C0C0C0">Girs clair</option>
    <?php } ?></select>
    Page index.php 3eme Teste
    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
    <select name="couleur" style="width:150px">
    <option value="0" style="background-color:#FFFFFF" <?php if ( !isset($_COOKIE['couleur'] )); ?>>Blanc</option>
    <option value="1" style="background-color:#000000;color:white" selected="selected" <?php if ( !isset($_COOKIE['couleur'] )); ?>>Noir</option>
    <option value="2" style="background-color:#000080;color:white" <?php if ( !isset($_COOKIE['couleur'] )); ?>>Bleu foncé</option>
    <option value="3" style="background-color:#008000;color:white" <?php if ( !isset($_COOKIE['couleur'] )); ?>>Vert foncé</option>
    <option value="4" style="background-color:red" <?php if ( !isset($_COOKIE['couleur'] )); ?>>Rouge</option>
    <option value="5" style="background-color:#800000;color:white" <?php if ( !isset($_COOKIE['couleur'] )); ?>>Rouge foncé</option>
    <option value="6" style="background-color:#800080;color:white" <?php if ( !isset($_COOKIE['couleur'] )); ?>>Violet</option>
    <option value="7" style="background-color:#FF8000" <?php if ( !isset($_COOKIE['couleur'] )); ?>>Orange</option>
    <option value="8" style="background-color:yellow" <?php if ( !isset($_COOKIE['couleur'] )); ?>>Jaune</option>
    <option value="9" style="background-color:#00FF00" <?php if ( !isset($_COOKIE['couleur'] )); ?>>Vert clair</option>
    <option value="10" style="background-color:#008080" <?php if ( !isset($_COOKIE['couleur'] )); ?>>Turquoise</option>
    <option value="11" style="background-color:#8080FF" <?php if ( !isset($_COOKIE['couleur'] )); ?>>Bleu clair</option>
    <option value="12" style="background-color:#FFFFFF" <?php if ( !isset($_COOKIE['couleur'] )); ?>>Bleu Clair</option>
    <option value="13" style="background-color:#FF00FF" <?php if ( !isset($_COOKIE['couleur'] )); ?>>Rose</option>
    <option value="14" style="background-color:#808080" <?php if ( !isset($_COOKIE['couleur'] )); ?>>Gris foncé</option>
    <option value="15" style="background-color:#C0C0C0" <?php if ( !isset($_COOKIE['couleur'] )); ?>>Girs clair</option>
    </select>
    Etc... parmi d'autre que je n'est pas gardé car y na trop

    Page distant qui contiens mes valeur du cookie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
     
    if (!$_POST['psd']) { header("Location: http://www.tchat-fusion.org/"); exit; }
    $psd = htmlspecialchars($_POST['psd']);
    $couleur = htmlspecialchars($_POST['couleur']);
    $font = htmlspecialchars($_POST['font']);
    }
    if ( $svn == "on" ) { $expire = time () + 31536000; } else { $expire = 0; }
    setcookie ( "svn" , $svn , $expire , "/" );
    setcookie ( "psd" , $psd , $expire , "/" );
    setcookie ( "couleur" , $couleur , $expire , "/" );
    ?>
    puis le paramètre qui va dire ou affiché la couleur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <PARAM name="write_color" value="<?php echo $couleur; ?>">
    Donc voila le but de se cookie c'est quand je coche la case svn (input)
    sa garde en mémoire la couleur choisir et si aucune couleur n'est choisir que sa mais la couleur Noir par exemple par defaux

    Merci infiniment de votre aide

    Cordialement Stéphane

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 420
    Par défaut
    Quand tu fais des tests, fais les sur une deux ou trois lignes représentatives (sinon tu perds du temps et en plus c'est moins facile à lire).

    Sinon fais aussi un contrôle de tes variables (en début de page) pour voir si elles sont bien passées.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php 
    echo '<pre>';
    print_r($_POST);
    echo '</pre>';
    ?>
    Par ailleurs les cookies ne seront disponibles que quand tu rechargera la page. Et dernière chose comme je vois que tu utilise un pass, tu dois certainement utiliser les sessions. Dans ce cas tu pourrais peut-être aussi utiliser une variable de session pour la couleur plutôt qu'un cookie ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 207
    Par défaut
    Bonjour ABCIWEB,
    Merci de ton aide
    dans mon code je voie pas ou tu voie que j'utilise un passe mais oui effectivement j'utilise un passe pour identifié les users sur le tchat.

    Sinon je fait aussi des testes sur 2 ou 3 lignes ou plusieurs.
    Mais le souci c'est que sa retiens pas le cookie ou a chaque ouverture de la page sa change de select exemple si je choisir la couleur vert quand j'actualise la page ou que je la ferme et que je le re ouvre la couleur vert dis-paré et se change en une autre couleur au hasard.

    Citation Envoyé par ABCIWEB Voir le message
    Quand tu fais des tests, fais les sur une deux ou trois lignes représentatives (sinon tu perds du temps et en plus c'est moins facile à lire).

    Sinon fais aussi un contrôle de tes variables (en début de page) pour voir si elles sont bien passées.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php 
    echo '<pre>';
    print_r($_POST);
    echo '</pre>';
    ?>
    Par ailleurs les cookies ne seront disponibles que quand tu rechargera la page. Et dernière chose comme je vois que tu utilise un pass, tu dois certainement utiliser les sessions. Dans ce cas tu pourrais peut-être aussi utiliser une variable de session pour la couleur plutôt qu'un cookie ?
    Cordialement Stéphane

  4. #4
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 420
    Par défaut
    Tes options devraient être de la forme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <option value="0" style="background-color:#FFFFFF" <?php if ( isset($_COOKIE['couleur'] ) && $_COOKIE['couleur'] == "0") { echo 'selected="selected"'; } ?>>Blanc</option>
    ou encore

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <option value="#FFFFFF" style="background-color:#FFFFFF" <?php if ( isset($_COOKIE['couleur'] ) && $_COOKIE['couleur'] == "#FFFFFF") { echo 'selected="selected"'; } ?>>Blanc</option>
    Sinon ce que je t'ai montré pour les variables $_POST est aussi valable pour les cookie.
    Donc pour les vérifier en phase de débuggage tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    echo '<pre>';
    print_r($_COOKIE);
    echo '</pre>';
    ?>

Discussions similaires

  1. []Problème avec un "Select Case" : Instructions et..
    Par Olun dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 07/09/2005, 14h32
  2. Liste déroulante chainée : problème avec value
    Par jpascal dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/08/2005, 22h06
  3. Problème avec un SELECT
    Par birkoss dans le forum Langage SQL
    Réponses: 2
    Dernier message: 16/08/2005, 20h04
  4. Problème d'utilisation select () avant recv sous windows
    Par init dans le forum Développement
    Réponses: 3
    Dernier message: 16/03/2005, 20h36
  5. [struts][JSP][select] problème avec le select
    Par redge_touch dans le forum Struts 1
    Réponses: 4
    Dernier message: 14/01/2004, 11h05

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