Page 1 sur 1

'Bloquer' une valeur d'une fonction

Posté : 10 oct. 2020, 13:10
par MK7
Bonjour à tous,

je viens vous voir pour de l'aide,
je souhaite attribuer une valeur fixe à une variable, et quelle ne soit pas modifié/réécrite

Le contexte, attribuer une valeur fixe( comme un identifiant) à une personne qui se connecte sur le site, et cette valeur doit rester la même pour toute la durée de navigation sur le site par l'utilisateur( jusqu’à la fermeture du navigateur).

J'ai essayé avec uniqueid() mais la valeur change à chaque appel de uniqueid().

Il y a la valeur du cookie PHPSESSID, qui représente ce que je souhaite, cependant, la valeur des cookies peuvent être modifiés...

Auriez-vous des façon de faire à me conseiller ? :wink:

Merci à vous,
Cordialement,

Nb:
faire un système de valeur incrémentable automatique comme $count++, pour voir le 'nombre d'éxécution'. si le nombre est > 1 donc plus d'un 1 appel, ne rien faire, sinon attribuer la valeur/définir l'identifiant!
Pensez-vous que cette solution est viable ?

Re: 'Bloquer' une valeur d'une fonction

Posté : 10 oct. 2020, 14:30
par @rthur
Bonjour,
Le contexte, attribuer une valeur fixe( comme un identifiant) à une personne qui se connecte sur le site, et cette valeur doit rester la même pour toute la durée de navigation sur le site par l'utilisateur( jusqu’à la fermeture du navigateur).
La solution est de stocker un uniqid() dans une variable de session.
Et au début de chacune de tes pages PHP tu regardes si l'utilisateur qui l'appelle a déjà cette variable initialisée, si oui alors tu ne fais rien, si non c'est que c'est un nouvel utilisateur et tu lui crées cette variable avec un identifiant unique.

En gros, moi je ferai un truc du genre :
<?php
session_start();

if (isset($_SESSION['user_id']) === false) $_SESSION['user_id'] = uniqid();

echo "L'identifiant de l'utilisateur courant est : ".$_SESSION['user_id'];

Re: 'Bloquer' une valeur d'une fonction

Posté : 10 oct. 2020, 16:53
par MK7
Bonjour,

Merci pour votre réponse, j'ai réutilisée votre méthode qui est courte, efficace! :)

Merci à vous