关于session的几个补充函数
session|函数
在PHP下,关于session的讨论很多,其实在PHP4中还有几个函数是我们平时没有注意到的。
下面我把它们介绍给大家吧。
其中的session_set_save_handler()可真是个好东西。
//********************
session_unset (PHP4 >= 4.0b4)
void session_unset(void);
这个函数可以把当然注册的所有的session变量置为空。注意它不是unregister,也不同于destroy。
下面这个例子,对此函数做了很好的说明。
session_register(''a'',''b'',''c''); //auto-session-start
$a=1;
$b=2;
$c=3;
session_unregister(''a''); //unregistrered $a
echo "A: $a - reg:".session_is_registered(''a'')."
"; // but the global $a remains
session_unset(); // unsets $b und $c
echo "B:$b - reg:".session_is_registered(''b'')."
"; // the registration remains !
echo "C:$c - reg:".session_is_registered(''c'')."
";
echo session_encode();
?>
输出:
A: 1 - reg:
B: - reg:1
C: - reg:1
!b|!c|
//********************************
session_get_cookie_params (PHP4 >= 4.0RC2)
array session_get_cookie_params (void);
返回一个数组,记录了当前session的cookie的一些信息。
有:
"lifetime" - cookie的生存期。
"path" - cookie的保存路径。
"domain" - cookie的域。
//*******************************
session_set_cookie_params (PHP4 >= 4.0b4)
void session_set_cookie_params (int lifetime [, string path [, string domain]])
设置session的cookie的一些参参数,类似于php.ini中的设置,但本函数所作的设置,只对当前脚本文件有效。
//*******************************
下面要介绍的这个函数应是对大家都很有用的,你是不是对自定义一个不用cookie来保存的session有兴趣呢?这个函数就可以实现你这样的设想。
让我想想,如果不用cookie的好处是什么?至少一点,你不用担心客户端的的cookie的功能是否打开了,对吧。
session_set_save_handler (PHP4 >= 4.0b4)
void session_set_save_handler (string open, string close, string read, string write, string destroy, string gc)
这个函数可以定义用户级的session的保存函数(打开、关闭、写入等)。
比如,我们想把session保存在本地的一个数据库中时,本函数就很有用了。
!!!注意:使用本函数前,先要配置php.ini文件,session.save_hadler=user ,否则,session_set_save_handler()不会生效。
此外,根据我的测试,你如果想让这样的session跨页面使用,还要在每一个用到session的脚本文件中加入你自定的函数及session_set_save_handler,所以,最好的方法是做成一个单独的文件,在每一个要用到session的脚本中用include来包含进来。
下面这个例子提供了一个最基本的session保存法,类似于默认的files方法。
如果你想用数据库来实现,这也是很容易做到的。
Example 1. session_set_save_handler() example
function open ($save_path, $session_name) {
global $sess_save_path, $sess_session_name;
$sess_save_path = $save_path;
$sess_session_name = $session_name;
return(true);
}
function close() {
return(true);
}
function read ($id) {
global $sess_save_path, $sess_session_name;
$sess_file = "$sess_save_path/sess_$id";
if ($fp = @fopen($sess_file, "r")) {
$sess_data = fread($fp, filesize($sess_file));
return($sess_data);
} else {
return("");
}
}
function write ($id, $sess_data) {
global $sess_save_path, $sess_session_name;
$sess_file = "$sess_save_path/sess_$id";
if ($fp = @fopen($sess_file, "w")) {
return(fwrite($fp, $sess_data));
} else {
return(false);
}
}
function destroy ($id) {
global $sess_save_path, $sess_session_name;
$sess_file = "$sess_save_path/sess_$id";
return(@unlink($sess_file));
}
/*********************************************
* WARNING - You will need to implement some *
* sort of garbage collection routine here. *
*********************************************/
function gc ($maxlifetime) {
return true;
}
session_set_save_handler ("open", "close", "read", "write", "destroy", "gc");
session_start();
// proceed to use sessions normally
// 现在你就可以象往常一样地使用session了。
?>
//***************************************
session_cache_limiter (PHP4 CVS only)
string session_cache_limiter ([string cache_limiter])
本函数可以设置或取得session.cache_limiter的值。
在php.ini中也可以做同样的设置。其值有 nocache,public,private。
本函数是通过HTTP的header发送到客户端的。如果为nocache,将禁止任何客户端的cache。而public将允许cache,但是private相对public而言,更为安全一点。
缺省值是在php.ini中的设置,如果你要使用它,必须在每次调用session_start()之前调用本函数。
此函数现在只能在CVS模式下运行,但是PHP4.0.3将支持它。
Example 1. session_cache_limiter() examples
# set the cache limiter to ''private''
session_cache_limiter(''private);
$cache_limiter = session_cache_limiter();
echo "The cache limiter is now set to $cache_limiter
";
?>
//*****************************

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Les cookies sont généralement stockés dans le dossier cookie du navigateur. Les fichiers cookies dans le navigateur sont généralement stockés au format binaire ou SQLite. Si vous ouvrez le fichier cookie directement, vous pouvez voir du contenu tronqué ou illisible, il est donc préférable d'utiliser Utiliser. l'interface de gestion des cookies fournie par votre navigateur pour visualiser et gérer les cookies.

L'échec de la session est généralement dû à l'expiration de la durée de vie de la session ou à l'arrêt du serveur. Les solutions : 1. Prolonger la durée de vie de la session ; 2. Utiliser le stockage persistant ; 3. Utiliser les cookies ; 4. Mettre à jour la session de manière asynchrone ; 5. Utiliser un middleware de gestion de session ;

Les cookies sur votre ordinateur sont stockés dans des emplacements spécifiques de votre navigateur, en fonction du navigateur et du système d'exploitation utilisés : 1. Google Chrome, stocké dans C:\Users\YourUsername\AppData\Local\Google\Chrome\User Data\Default \Cookies etc.

Solution au problème inter-domaines de PHPSession Dans le développement de la séparation front-end et back-end, les requêtes inter-domaines sont devenues la norme. Lorsque nous traitons de problèmes interdomaines, nous impliquons généralement l'utilisation et la gestion de sessions. Cependant, en raison des restrictions de la politique d'origine du navigateur, les sessions ne peuvent pas être partagées par défaut entre les domaines. Afin de résoudre ce problème, nous devons utiliser certaines techniques et méthodes pour réaliser le partage de sessions entre domaines. 1. L'utilisation la plus courante des cookies pour partager des sessions entre domaines

Les cookies sur le téléphone mobile sont stockés dans l'application de navigation de l'appareil mobile : 1. Sur les appareils iOS, les cookies sont stockés dans Paramètres -> Safari -> Avancé -> Données du site Web du navigateur Safari 2. Sur les appareils Android, les cookies sont stockés ; dans Paramètres -> Paramètres du site -> Cookies du navigateur Chrome, etc.

Le principe de fonctionnement des cookies implique que le serveur envoie des cookies, que le navigateur stocke les cookies et que le navigateur traite et stocke les cookies. Introduction détaillée : 1. Le serveur envoie un cookie et le serveur envoie un en-tête de réponse HTTP contenant le cookie au navigateur. Ce cookie contient certaines informations, telles que l'authentification de l'identité de l'utilisateur, les préférences ou le contenu du panier. Une fois que le navigateur aura reçu ce cookie, il sera stocké sur l'ordinateur de l'utilisateur. 2. Le navigateur stocke les cookies, etc.

Avec la popularité d’Internet, l’utilisation de navigateurs pour surfer sur Internet est devenue un mode de vie. Dans l'utilisation quotidienne des navigateurs, nous rencontrons souvent des situations où nous devons saisir les mots de passe de comptes, comme les achats en ligne, les réseaux sociaux, les e-mails, etc. Ces informations doivent être enregistrées par le navigateur afin qu'elles n'aient pas besoin d'être saisies à nouveau lors de votre prochaine visite. C'est alors que les cookies sont utiles. Que sont les cookies ? Le cookie fait référence à un petit fichier de données envoyé par le serveur au navigateur de l'utilisateur et stocké localement. Il contient le comportement des utilisateurs de certains sites Web.

Les effets de la suppression des cookies incluent la réinitialisation des paramètres et des préférences de personnalisation, affectant l'expérience publicitaire et la destruction du statut de connexion et des fonctions de mémorisation du mot de passe. Introduction détaillée : 1. Réinitialiser les paramètres et préférences personnalisés. Si les cookies sont effacés, le panier sera réinitialisé et les produits devront être rajoutés. La suppression des cookies entraînera également la perte du statut de connexion sur les plateformes de médias sociaux, ce qui nécessitera. ré-ajout. Entrez votre nom d'utilisateur et votre mot de passe ; 2. Cela affecte l'expérience publicitaire. Si les cookies sont effacés, le site Web ne sera pas en mesure de comprendre nos intérêts et nos préférences, et affichera des publicités non pertinentes, etc.
