Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/06/2007, 06h21   #1
Membre éprouvé
 
Avatar de gtraxx
 
Homme Aurélien Gérits
Développeur Web
Inscription : mai 2006
Messages : 1 045
Détails du profil
Informations personnelles :
Nom : Homme Aurélien Gérits
Âge : 30
Localisation : Belgique

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

Informations forums :
Inscription : mai 2006
Messages : 1 045
Points : 498
Points : 498
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 :
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;
	}
}
__________________
Au petit déjeuner, je prend du PHP et au souper du jQuery.
AFUP 2009 : Bien optimiser son code pour le référencement
Mon projet open source de librairie PHP 5: magix cjquery
gtraxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2007, 19h34   #2
Rédacteur/Modérateur
 
Avatar de Deepin
 
Homme Deepin
Ingénieur - Chef de projet Modélisation/Simulation
Inscription : avril 2004
Messages : 1 341
Détails du profil
Informations personnelles :
Nom : Homme Deepin
Localisation : Ile Maurice

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

Informations forums :
Inscription : avril 2004
Messages : 1 341
Points : 7 056
Points : 7 056
Envoyer un message via Skype™ à Deepin
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.
++
Deepin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2007, 19h42   #3
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
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) ...
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2007, 19h49   #4
Membre éprouvé
 
Avatar de gtraxx
 
Homme Aurélien Gérits
Développeur Web
Inscription : mai 2006
Messages : 1 045
Détails du profil
Informations personnelles :
Nom : Homme Aurélien Gérits
Âge : 30
Localisation : Belgique

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

Informations forums :
Inscription : mai 2006
Messages : 1 045
Points : 498
Points : 498
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 :
Citation:
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
__________________
Au petit déjeuner, je prend du PHP et au souper du jQuery.
AFUP 2009 : Bien optimiser son code pour le référencement
Mon projet open source de librairie PHP 5: magix cjquery
gtraxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2007, 11h57   #5
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
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).
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2007, 20h18   #6
Membre éprouvé
 
Avatar de gtraxx
 
Homme Aurélien Gérits
Développeur Web
Inscription : mai 2006
Messages : 1 045
Détails du profil
Informations personnelles :
Nom : Homme Aurélien Gérits
Âge : 30
Localisation : Belgique

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

Informations forums :
Inscription : mai 2006
Messages : 1 045
Points : 498
Points : 498
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
__________________
Au petit déjeuner, je prend du PHP et au souper du jQuery.
AFUP 2009 : Bien optimiser son code pour le référencement
Mon projet open source de librairie PHP 5: magix cjquery
gtraxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h51.


 
 
 
 
Partenaires

Hébergement Web