Jump to content
sandrinoo

Mémoire d'une variable au rafraîchissement

Rate this topic

Recommended Posts

Bonjour à tous, et me revoilà avec mes demandes improbables !



Voilà mon problème semble tout simple mais je pense que ma demande est impossible à réaliser :



Sur une page php qui génère des pages dynamiques j'ai :



if (condition réalisée) {$var="1"; } else {$var="0"; }

Puis rafraîchissement de la page (sur le même ordinateur ou sur un autre ordinateur avec une ip différente),



Mon but : j'aurais voulu que la variable $var soit sauvegardée sans utiliser la BD mysql, sans sessions évidemment , sans fichier txt. Bref que tout se passe sur la même page php.



Peut-être avec une fonction récursive mais je ne m'y connais pas assez...



C'est possible ou pas ? Si quelqu'un a une idée ?


Share this post


Link to post
Share on other sites

Merci pour vos réponses :



@hotgeart : cookie, local.storage => Pas possible car à partir du moment où c'est un autre navigateur on perd la donnée



Puis rafraîchissement de la page (sur le même ordinateur ou sur un autre ordinateur avec une ip différente)




@blackpage : sessions même chose non ? Ou alors c'est possible de le faire pour tous les utilisateurs ?



@Dan : j'ai essayé des choses de ce genre mais je suis pas assez douée :



test();
echo "<p>$var</p>";
if (empty($var)) {function test() {$GLOBALS['var'] = "1";}}

J'ai l'impression que c'est pas possible non ?

Share this post


Link to post
Share on other sites

Si tu ne veux pas impacter le serveur (BDD, fichier) ni le poste utilisateur (cookie, localStorage), je ne vois effectivement aucune méthode possible.


Share this post


Link to post
Share on other sites
Mon but : j'aurais voulu que la variable $var soit sauvegardée sans utiliser la BD mysql, sans sessions évidemment , sans fichier txt. Bref que tout se passe sur la même page php.

Sauvegarder sans BDD ni fichier (ni memcache ni ...) ? no way.

Les sémaphores (c'est le nom de ce type de variable si j'ai bien compris ta question) sont généralement stockés en BDD.

Tu peux passer à la question suivante wink.gif

Share this post


Link to post
Share on other sites

Tu n'as pas à l'etre, on est là pour poser des questions et y répondre quand on le peut !


Mais à quoi te servent ces variables ?


Share this post


Link to post
Share on other sites

Salut SStephane, en fait, je cherchais à trouver un moyen pour dire :

- si telle page dynamique a été chargée par le premier internaute (de n'importe quel IP), plus besoin d'effectuer le script
- ou dit autrement : charger une seule fois le script pour une page donnée

C'est pour cela que j'avais pensé à une solution style page chargée=1 et pas encore chargée=0

Je voulais un truc très simple pour garder en mémoire ce 0 ou 1 suivant chaque page créee dynamiquement...

Share this post


Link to post
Share on other sites

Dans ce cas, un système de cache php peut vraisemblablement t'aider...


Share this post


Link to post
Share on other sites

En base de données, c'est très bien alors, tu stockes la date à laquelle le script a été exécuté (ou NULL) plutôt qu'un boolean, ainsi tu pourras faire ce que tu souhaites.


Share this post


Link to post
Share on other sites
j'aurais voulu que la variable $var soit sauvegardée sans utiliser la BD mysql

la base de données n'est pas une solution Stephane

En base de données, c'est très bien alors, tu stockes la date à laquelle le script a été exécuté (ou NULL) plutôt qu'un boolean, ainsi tu pourras faire ce que tu souhaites.

Share this post


Link to post
Share on other sites

Pourquoi la base n'est pas une solution?



Sinon, créer une fichier avec la date du jour pour le nom. Je ne vois pas d'autre solution hormis celles évoquées.


Share this post


Link to post
Share on other sites

Encore juste une question, j'ai un doute :



Est-il possible d'utiliser les sessions pour conserver, lors d'un rafraîchissement, la même variable sur le même ordinateur ou sur d'autres ordinateurs avec une ip différentes ?



En plus clair : que tous les utilisateurs de différentes ip aient la même chose (variable conservée identique) ?


Share this post


Link to post
Share on other sites

Non, clairement pas avec les sessions, qui sont liées à un ordinateur (Enregistrement de l'identifiant de session dans un cookie).



Pour obtenir ce que tu souhaites, il faut enregistrer la donnée sur le serveur (Dans un fichier ou la base de données)


Share this post


Link to post
Share on other sites
Est-il possible d'utiliser les sessions pour conserver, lors d'un rafraîchissement, la même variable sur le même ordinateur ou sur d'autres ordinateurs avec une ip différentes ?

une session est liée à une machine et un seul navigateur

Share this post


Link to post
Share on other sites

Bonjour,



Php ne possède pas de "variables d'application". Ces dernières sont présentes dans l'environnement de Microsoft en ASP 3.0 et Dotnet.



Pour ton cas, tu as 3 solutions :


  1. Créer un fichier texte que tu consulteras pour savoir si tu dois rafraîchir

  2. Insérer un enregistrement dans une base de données

  3. Utiliser MemCache qui est une extension de Php

En deux lignes de code avec un fichier texte, c'est très rapide à faire.




Portekoi

  • Upvote 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...