<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// PersonnaliserSessionHandler</span></span><span>
</span><span><span class="hljs-class"><span class="hljs-keyword">class</span></span></span><span> </span><span><span class="hljs-title">CustomSessionHandler</span></span><span> </span><span><span class="hljs-keyword">extends</span></span><span> </span><span><span class="hljs-title">SessionHandler</span></span><span>
{
</span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">create_sid</span></span><span>(</span><span><span class="hljs-params"></span></span><span>)
{
</span><span><span class="hljs-comment">// Ici16String aléatoire d'octet + L'horodatage actuel constitue une sessionID,Garanti pour être unique et imprévisible</span></span><span>
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">bin2hex</span></span><span>(</span><span><span class="hljs-title function_ invoke__">random_bytes</span></span><span>(</span><span><span class="hljs-number">16</span></span><span>)) . </span><span><span class="hljs-string">'-'</span></span><span> . </span><span><span class="hljs-title function_ invoke__">time</span></span><span>();
}
}
</span><span><span class="hljs-comment">// 实例化Personnaliser的processeur</span></span><span>
</span><span><span class="hljs-variable">$handler</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">CustomSessionHandler</span></span><span>();
</span><span><span class="hljs-comment">// 设置Personnaliser的Sessionprocesseur</span></span><span>
</span><span><span class="hljs-title function_ invoke__">session_set_save_handler</span></span><span>(</span><span><span class="hljs-variable">$handler</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);
</span><span><span class="hljs-comment">// démarrerSession,使用Personnaliser会话IDGénérer des règles</span></span><span>
</span><span><span class="hljs-title function_ invoke__">session_start</span></span><span>();
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"actuelSession ID:"</span></span><span> . </span><span><span class="hljs-title function_ invoke__">session_id</span></span><span>();
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Le deuxième paramètre de session_set_save_handler () est défini sur true , ce qui signifie que PHP appellera automatiquement Open () , Close () , Read () , Write (), Detrère () , GC () et d'autres méthodes implémentées par le processeur enregistré. Après avoir hérité du SessionHandler , le comportement par défaut est conservé sans toute réécriture.
create_sid () est uniquement responsable de la génération d'ID de session et n'implique pas la logique de stockage des données de session.
L'ID généré doit être suffisamment aléatoire et unique pour éviter les conflits d'identification de session.
Après la personnalisation de l'ID de session, l'ancien format d'identification de session peut être incompatible et vous devez être en ligne avec prudence.
Étiquettes associées:
SessionHandler