Aller au contenu
sandrinoo

Mémoire d'une variable au rafraîchissement

Noter ce sujet :

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 ?


Partager ce message


Lien à poster
Partager sur d’autres 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 ?

Partager ce message


Lien à poster
Partager sur d’autres 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.


Partager ce message


Lien à poster
Partager sur d’autres 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

Partager ce message


Lien à poster
Partager sur d’autres 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 ?


Partager ce message


Lien à poster
Partager sur d’autres 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...

Partager ce message


Lien à poster
Partager sur d’autres sites

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


Partager ce message


Lien à poster
Partager sur d’autres 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.


Partager ce message


Lien à poster
Partager sur d’autres 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.

Partager ce message


Lien à poster
Partager sur d’autres 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.


Partager ce message


Lien à poster
Partager sur d’autres 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) ?


Partager ce message


Lien à poster
Partager sur d’autres 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)


Partager ce message


Lien à poster
Partager sur d’autres 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

Partager ce message


Lien à poster
Partager sur d’autres 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

  • Vote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

×