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] Cookies ou session dans ma classe


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut [Cookies] Cookies ou session dans ma classe
    Bonjour a tous ,j'ai une class bien sympathique mais peut pratique et je manque d'idée pour changer le système.
    Cette class utilise les cookies (pour l'instant) et je ne trouve pas cela pratique , je dirai même que sa bug sur certain serveur, navigateur (d'après les visiteurs).
    Je me demandais si l'utilisation des sessions serai une bonne chose dans mon cas.
    En fait j'enregistre dans un cookie le thème que l'utilisateur auras choisi d'afficher lorsque qu'il visite mon blog.
    J'ai questionner mes amis qui travail sur divers projet mais aucun n'as su m'aider ou même me donner une idée.

    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
    class themeSwitcherBehaviors
    {	
    	public static function changeTheme (&$core) 
    	{
    		global $__theme;
     
    	/* On donne un nom au Cookie en fonction de l'id du blog sur lequel on se trouve */	
    		$name_cookie = 'dc_theme_'.$core->blog->id;
     
    	/* Si un Cookie existe et que le nom de ce Cookie correspond bien à  un thème on défini la variable $__theme */
    		if ( !empty($_COOKIE[$name_cookie]) && $core->themes->moduleExists($_COOKIE[$name_cookie]) ) 
    		{ 
    			$__theme = $_COOKIE[$name_cookie];
    		}
     
    	/* Si on a envoyé le formulaire pour demander un nouveau thème */
    		if (!empty($_POST['theme'])) 
    		{ 
    			if (!$core->themes->moduleExists($_POST['theme'])) // Si le thème n'existe pas -> Erreur
    			{
    				header('Content-Type: text/plain');
    				die( __('Theme').' '.$_POST['theme'].' '.__('doesn\'t exists.') );
    			}
    			else // Si il existe on définit le Cookie et la variable $__theme
    			{
    				setcookie($name_cookie , $_POST['theme'] , strtotime('+3 month') , '/' , '');
    				$__theme = $_POST['theme'];
    			}
    		}
    	/* Sinon si on demande de changer de thème par l'URL (par la liste) */
    		elseif (!empty($_GET['theme'])) 
    		{
    			if (!$core->themes->moduleExists($_GET['theme'])) // Si le thème n'existe pas -> Erreur
    			{ 
    				header('Content-Type: text/plain; charset=UTF-8');
    				die( __('Theme').' '.$_GET['theme'].' '.__('doesn\'t exists.'));
    			}
    			else // Si il existe on définit le Cookie et la variable $__theme
    			{ 
    				setcookie($name_cookie , $_GET['theme'] , strtotime('+3 month') , '/' , '');
    				$__theme = $_GET['theme'];
    			}
    		}
    	/* On définit la variable qui servira à  dire au script quel thème on utilise */
    		$core->blog->settings->theme = $__theme;
    	}
    }

  2. #2
    Membre chevronné

    Avatar de Deepin
    Homme Profil pro
    Ingénieur - Chef de projet Modélisation/Simulation
    Inscrit en
    Avril 2004
    Messages
    3 164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afrique Du Sud

    Informations professionnelles :
    Activité : Ingénieur - Chef de projet Modélisation/Simulation
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 164
    Par défaut
    Salut,
    Perso j aurais utiliser les sessions pour stocker le style choisi par le user. En meme temps j ai regarder des scripts proposés sur internet et certains d entre eux utilisent aussi les cookies. Je te conseille de faire un recherche sur google à "styleswitcher PHP" pour te faire une idée.
    ++

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    La durée de vie d'une session est bien plus limitée qu'un cookie. Faites votre choix en conséquence. Je vous rappelle que les sessions sont (enfin devraient) être basées sur les cookies (la session définit un cookie dit de session donc qui est supprimé - en théorie - à la fermeture du navigateur afin de transmettre l'identifiant pour les prochaines requêtes au serveur) ...

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut
    je suis tout a fais d'accord avec vous julp et le choix des cookies étais alors une bonne idée dans mon cas mais quelque chose m'échappe tout de même
    Voici un commentaire d'un utilisateur de mon plugin :
    Merci pour ce plug qui marche super bien...
    Par contre quelques remarques : je souhaitais pouvoir l'utiliser pour switcher la css à l'insu du visiteur, en passant le thème par l'url. Hors il semblerait que cela ne fonctionne pas comme cela, mais que le thème est sélectionné une fois puis gardé en cache. Du coup le thème change d'un billet à l'autre en fonction de l'historique de navigation du site... N'y aurait-il pas moyen de rajouter (en variable de session) pour tous les liens dotclear le thème choisi ?
    Ceci n'est pas lié au cookie mais a autre chose pour que ce bug survienne
    Le problème c'est que je ne vois pas comment y remédier pour le moment, je manque d'idée a ce propos et les vôtre m'interesse afin que je règle le souçis

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Là il faut retracer les variables concernées Il y a certainement un problème dans l'ordre des tests (get devrait être la première non ?) et/ou de mise à jour des méthodes assurant une certaine persistance (cookie et session).

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut
    merci pour cette réponse
    En fait j'utilise 2 méthodes différentes d'envoi pour cause l'utilisateur peut mettre en place 3 façons d'afficher le "switcher" :
    • formulaire avec menu déroulant (_POST)
    • liste classique (url) (_GET)
    • liste en image (url) (_GET)

    Donc jumeler session et cookies serais une bonne idée , je vais me pencher sur la question

Discussions similaires

  1. perte de cookie et de session dans une page aspx
    Par lenny32 dans le forum ASP.NET
    Réponses: 5
    Dernier message: 08/12/2008, 09h54
  2. Appel variable session dans une class
    Par safisafi dans le forum ASP.NET
    Réponses: 4
    Dernier message: 04/04/2008, 10h59
  3. Réponses: 1
    Dernier message: 03/04/2007, 12h02
  4. Réponses: 3
    Dernier message: 09/01/2007, 09h44
  5. [VB.NET] Server.MapPath et Session dans une classe
    Par nancy54 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 09/09/2004, 14h23

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