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 :

Variable de session globales à tous les visiteurs


Sujet :

Langage PHP

  1. #1
    Membre émérite
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Thaïlande

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 563
    Points : 2 390
    Points
    2 390
    Par défaut Variable de session globales à tous les visiteurs
    Bonjour,

    Hier soir, j'ai repensé à une idée que j'avais eu, dont j'ai déjà vu des demande sur ces forums et qui a surement déjà traversé l'esprit de bon nombre d'entre vous.

    L'idée est d'avoir un peu comme des variables de "session" communes, accessibles et modifiables par tous les visiteurs d'un site.
    Ce qui veut dire que si cette variable est modifiée par un visiteur, cela se répercutera pour tout le monde contrairement aux variables de session classiques qui "n'appartiennent" qu'au visiteur qui l'a créé et donc invisible pour les autres.

    En gros, ce sont comme les variables $_SERVER dont les valeurs peuvent être modifiées mais qui ne se réinitialise pas à chaque exécution de script.

    Après, peut être existe il une possibilité de faire cela avec les variables serveur ? Mais peut être pas aussi facilement que l'idée le voudrait.

    On peut se demander quel serait leurs intérêts ?

    Se passer d'utiliser une base de données ou l'écriture de fichiers pour simuler ces variables comme beaucoup de script le font, notamment, pour prendre un exemple simple, un script qui va afficher le nombre d'utilisateurs en ligne.
    Cela permettrait de soulager la BDD pour ce genre de choses, et éventuellement avoir de meilleures performances même si on utilise des tables MEMORY. De plus, si l'on peut se passer d'une BDD, cela rend le script indépendant de celle ci.

    Peut être un jour, PHP implémentera t il ce genre de variables ?
    Zend Certified PHP Engineer

    « Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana

  2. #2
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Salut,
    Bonne idée, et si tu te servais des fichiers ?
    Développeur | Zend Certified Engineer

    Étapes Pour mieux se servir du forum:
    1. Commencez par lire les cours et tutoriels ;
    2. Faites une recherche;
    3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

    Nix>_Rien n'est plus pratique que la théorie

  3. #3
    Membre émérite
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Thaïlande

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 563
    Points : 2 390
    Points
    2 390
    Par défaut
    J'en ai parlé dans mon post.

    Écrire dans des fichiers peut demander pas mal de ressources processeur surtout lorsque les fichiers commencent à devenir gros. De plus, ce n'est pas très intuitif comparé à l'assignation d'une valeur à une variable.

    Ici, je ne cherche pas d'aide, je sais comment faire autrement.
    Je me demande juste si il existe une raison qui fait que ceci n'a pas été implémenté dans PHP alors que cela pourrait être très pratique.
    Zend Certified PHP Engineer

    « Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Points : 822
    Points
    822
    Par défaut
    Démarrer une session revient à demander à PHP d'écrire et de lire des fichiers, ça change pas grand chose en fait.

    Quant à un système d'utilisateurs en ligne, tu auras tout bénef à utiliser une DB pour cela.
    Pourfendeur de singletons en croisade

  5. #5
    Membre émérite
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Thaïlande

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 563
    Points : 2 390
    Points
    2 390
    Par défaut
    Certes, mais on peut en dire de même pour les bases de données.
    Au final ce sont aussi des fichiers mais ça va beaucoup plus vite.

    Tout dépend de la façon dont c'est géré.
    Zend Certified PHP Engineer

    « Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana

  6. #6
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    +1 pour l'utilisation d'une bdd, avec une précision utile dans ce cas : utiliser des tables temporaires accélérera le traitement et répond quasiment entièrement à ta question.
    Voir le type de table MEMORY de MySQL par exemple.
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  7. #7
    Membre régulier
    Inscrit en
    Janvier 2009
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 155
    Points : 103
    Points
    103
    Par défaut
    En quoi la non initialisation des variables $_SERVEUR est gênante ?
    Dans le cas du nombre de visiteurs du site, la variable sera initialisé avec sa valeur enregistrée dans une bdd ou un fichier par la première occurrence du script chargée.

  8. #8
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    Par défaut
    contrairement à Java, qui possède des variables avec un niveau d'accès "application", PHP ne reste pas en mémoire entre 2 appels de page donc il ne peut pas y avoir de variables stockées en mémoire vive et partagées entre 2 pages.
    c'est pour ça que pour les sessions par exemple, le fonctionnement de base est de stocker les variables de session dans un fichier que PHP lit à l'appel suivant pour recréer le tableau $_SESSION

    donc pour avoir des données stockées au niveau "application" il faut obligatoirement avoir une base de données externe à la mémoire de PHP, que se soit un simple fichier texte ou un SGBD
    GNAP !

  9. #9
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Citation Envoyé par nosferapti Voir le message
    contrairement à Java, qui possède des variables avec un niveau d'accès "application", PHP ne reste pas en mémoire entre 2 appels de page donc il ne peut pas y avoir de variables stockées en mémoire vive et partagées entre 2 pages.
    c'est pour ça que pour les sessions par exemple, le fonctionnement de base est de stocker les variables de session dans un fichier que PHP lit à l'appel suivant pour recréer le tableau $_SESSION

    donc pour avoir des données stockées au niveau "application" il faut obligatoirement avoir une base de données externe à la mémoire de PHP, que se soit un simple fichier texte ou un SGBD
    +2
    Développeur | Zend Certified Engineer

    Étapes Pour mieux se servir du forum:
    1. Commencez par lire les cours et tutoriels ;
    2. Faites une recherche;
    3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

    Nix>_Rien n'est plus pratique que la théorie

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/01/2012, 10h04
  2. [MySQL] Variable qui s'actualise tous les jours
    Par zathuros dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 03/11/2008, 13h22
  3. Réponses: 9
    Dernier message: 23/11/2007, 10h47
  4. Variable de session dans toute les pages
    Par Interface dans le forum Langage
    Réponses: 3
    Dernier message: 03/10/2007, 13h02
  5. Variable de session globale
    Par cbroissa dans le forum Langage
    Réponses: 1
    Dernier message: 09/10/2006, 15h14

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