Aktueller Standort: Startseite> Neueste Artikel> Wie kann bei der Kombination von Session_Start () die SessionHandler :: Create_SID -Funktion verwendet werden, um die exklusive Sitzungs -ID anzupassen?

Wie kann bei der Kombination von Session_Start () die SessionHandler :: Create_SID -Funktion verwendet werden, um die exklusive Sitzungs -ID anzupassen?

M66 2025-06-21

3. Beispiel für Implementierungsschritte

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// AnpassenSessionHandler</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">// Hier16Byte zufällige Zeichenfolge + Der aktuelle Zeitstempel ist eine SitzungID,Garantiert einzigartig und unvorhersehbar</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">// 实例化Anpassen的Prozessor</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">// 设置Anpassen的SessionProzessor</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">// Start-upSession,使用Anpassen会话IDRegeln erzeugen</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">"aktuellSession ID:"</span></span><span> . </span><span><span class="hljs-title function_ invoke__">session_id</span></span><span>();
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

4. Anweisungen und Vorsichtsmaßnahmen

  • Der zweite Parameter von Session_set_Save_handler () ist auf true gesetzt, was bedeutet, dass PHP automatisch Open () , Close () , Read () , Write (), Destroy () , GC () und andere vom registrierte Prozessor implementierte Methoden aufruft. Nach der Erben des SessionHandlers wird das Standardverhalten ohne alle Umschreibungen beibehalten.

  • create_sid () ist nur für die Generierung von Sitzungs -IDs verantwortlich und beinhaltet nicht die Speicherlogik von Sitzungsdaten.

  • Die generierte ID sollte zufällig und eindeutig genug sein, um Sitzungs -ID -Konflikte zu vermeiden.

  • Nach dem Anpassen der Sitzungs -ID ist das alte Sitzungs -ID -Format möglicherweise unvereinbar und Sie müssen mit Vorsicht online sein.