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 :

Utilisation de variables superglobales


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 11
    Points : 8
    Points
    8
    Par défaut Utilisation de variables superglobales
    Bonjour à tous,

    Je souhaite utiliser des variables et les partager entre tous mes utilisateurs. (Chaque utilisateur doit pouvoir modifier le contenu de ces variables)

    Les sessions sont donc exclues d'office...

    Je pensais utiliser les variables superglobales, et notamment _ENV, mais je perd ce que j'ai définis d'une page à l'autre...

    Est il possible de mettre une donnée en mémoire, la rendre accessible à tout le monde, depuis n'importe quelle page, sans avoir à la redéfinir à chaque fois ?

    Merci pour vos réponses.

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2012
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2012
    Messages : 131
    Points : 242
    Points
    242
    Par défaut
    Salut,

    Je ne vois pas pkoi tu exclus l'usage des sessions

    sinon pour stocker en memoire, j'ai trouvé ca : http://php.net/manual/en/wrappers.php.php (php://memory)

  3. #3
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    si c'est pour partager entre tous les utilisateurs, soit une base de donnée, soit une autre base de donnée (genre http://dev.mysql.com/doc/refman/5.0/...ge-engine.html ) soit un simple fichier qui contient une variable serialisée (ou un tableau de variable sérialisé) (http://us2.php.net/manual/fr/function.serialize.php) La 2e solution ressemble a une session mais n'en est pas une: la session NE se partage PAS entre tous les utilisateurs.

  4. #4
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    Oui pour envisager la possibilité de lecture et d’écriture pour tout les user les dites informations doivent être stockées sur ton serveur soit dans un fichier texte soit dans une petite base de données (MySQL par exemple).
    A savoir que si tu veux garder une traçabilité des modifications apportés sur les variables (qui quand etc) il va te falloir passer sous base de donnes car cela risque d’être assez compliqué a mettre en oeuvre dans un fichier

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Merci pour vos réponses.

    L'idée est de faire un pad (like etherpad), et je réfléchit sur comment envoyer et mettre à jour ma variable que j'appelle globale et multi utilisateurs toutes les secondes.

    Je ne souhaite donc pas passer par une base de données ou un fichier car un traitement régulier toutes les secondes, va faire tomber rapidement mon serveur...

    Je vais regarder du côté du lien donné par gene69 http://dev.mysql.com/doc/refman/5.0/...ge-engine.html

    Sinon, que pensez-vous de apc_fetch, apc_store ? Pensez-vous que cela puisse répondre à mes besoins ?

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Informaticien Free-Lance
    Inscrit en
    Avril 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Informaticien Free-Lance
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2008
    Messages : 54
    Points : 33
    Points
    33
    Par défaut
    Je ne vois pas pourquoi le faite d'envoyer toutes les secondes des variables à tes utilisateurs poserait problème si tu fais cela avec une bdd.
    Prends un serveur robuste (dédié surtout) et tu pourras facilement faire ce que tu veux. Ensuite limite les envoie en http ou utilise ajax pour ne recharger qu'une petite partie de ta page, optimise ton code php, mysql et tous tes scripts ajax... Et puis voilà...

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Ce qui m’inquiète, ce n'est pas d'envoyer des variables toutes les secondes, mais des requêtes SQL ou des accès disque toutes les secondes.

    Peut être que je me trompe, si vous pensez que mysql peut accepter et traiter correctement une requête pas utilisateur chaque seconde, (et gérer plusieurs centaines d'utilisateurs), alors je fonce utiliser ma base de données

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Informaticien Free-Lance
    Inscrit en
    Avril 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Informaticien Free-Lance
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2008
    Messages : 54
    Points : 33
    Points
    33
    Par défaut
    je ne vois que cette solution, mysql te permttra en plus et uniquement si tu le souhaite de créer et gérer des stats etc... sur l'envoi de ces informations à tes users.
    Perso, c'est ce que je ferais... des sites ont des 100 de milliers de visiteurs plusieurs requêtes en même temps par utilisateurs (à chaque rafraichissement de pages par exemple. Et leur site fonctionne, si tu es limité en ressource, optimise à fond ton code, mais il n'y a rien qui devrait coincer...

  9. #9
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    Et surtout pourquoi toutes les secondes?
    Ne peut tu pas envoyer la variable que si il y a changement??

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Informaticien Free-Lance
    Inscrit en
    Avril 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Informaticien Free-Lance
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2008
    Messages : 54
    Points : 33
    Points
    33
    Par défaut
    Apparemment ces variables sont modifiés par des centaines d'users, il y a donc de fortes changes que vérifier si elles ont changées puis de les envoyer soit plus long que les envoyer directement

  11. #11
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    ya pas si longtemps google utilisait mysql.

  12. #12
    Membre éclairé Avatar de EIN-LESER
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 703
    Points : 778
    Points
    778
    Par défaut
    Pas besoin de verifier tout le temps non plus.
    Je suppose que la modif se fera par un formulaire donc il suffit de déclencher l'envoi aux users par le biais du formulaire apres le update.
    Me parais logique mais apres tout on est vendredi et je peux me tromper

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Pas de formulaire, tous est "presque" en temps réel et transparent pour l'utilisateur.

    J'ai un textarea, avec du contenu sur lequel plusieurs utilisateurs peuvent travailler dessus en même temps. (Tout le monde travail sur le même texte)

    Chaque seconde, je récupère les changements du textarea de chaque poste utilisateur, et je les envoi au serveur (en ajax).

    Le serveur lui, renvoi ces changements à chaque poste utilisateur, puis mise à jour du contenu du textarea via du javascript.

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Je vais tenter l'utilisation de la base de données (même si j'ai un peu peur que les temps de traitement soit effroyables) mais sinon, j'ai peut être trouvé mon bonheur du côté de apc_store('foo', $bar); et echo apc_fetch('foo');


    Je récupère bien la même variable et la même donnée d'un poste à l'autre.

  15. #15
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Points : 2 273
    Points
    2 273
    Par défaut
    Effectivement apc semble une meilleure option, en revanche je suis curieux de voir comment tu vas gérer l'interface utilisateur. Si un user est en train de taper un mot, un autre user vire le mot, le précédent user tape la fin du mot qui n'existe plus, etc. A l'usage ça me parait peu envisageable. En général dans les collecticiels on passe par des systèmes de lock mais si tu as d'autres idées, je serais bien intéressé.

Discussions similaires

  1. Utilisation de variables dans plusieurs classes
    Par dedeloux dans le forum Langage
    Réponses: 3
    Dernier message: 20/07/2005, 17h25
  2. Réponses: 4
    Dernier message: 11/07/2005, 11h03
  3. Réponses: 7
    Dernier message: 07/09/2004, 14h16
  4. [XSL] utiliser une variable pour nom d'élément
    Par luta dans le forum XSL/XSLT/XPATH
    Réponses: 13
    Dernier message: 07/09/2004, 13h58
  5. Utiliser des variables d'environnements
    Par Xam335 dans le forum C++Builder
    Réponses: 2
    Dernier message: 14/08/2004, 14h15

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