In PHP -Programmierung sind Session_Start () und Session_abort () beide Funktionen im Zusammenhang mit dem Sitzungsmanagement. Sie unterscheiden sich in Absicht und Verhalten, aber ob sie zusammen verwendet werden können und wie man an Sitzungen zusammenarbeitet, ist eine Frage, die es wert ist, erkunden zu werden. Dieser Artikel wird in die Funktionalität, die Unterschiede zwischen diesen beiden Funktionen und zur korrekten Verwaltung von Sitzungen eingehen.
Session_Start () ist eine Funktion in PHP, um eine Sitzung zu starten. Nach der Verwendung von Session_Start () im Skript startet PHP die Verwaltung von Sitzungsdaten, generiert eine eindeutige Sitzungs -ID und erstellt eine Sitzungsdatei auf der Serverseite, um Benutzersitzungsinformationen zu speichern. Wenn die Sitzungs -ID bereits im Browser vorhanden ist, verbindet PHP sie mit den entsprechenden Sitzungsdaten, so dass der Sitzungsstatus des Benutzers konsistent bleibt.
<span><span><span class="hljs-title function_ invoke__">session_start</span></span><span>();
</span><span><span class="hljs-variable">$_SESSION</span></span><span>[</span><span><span class="hljs-string">'user'</span></span><span>] = </span><span><span class="hljs-string">'John Doe'</span></span><span>;
</span></span>
Die Funktion Session_abort () wird verwendet, um die Verarbeitung der aktuellen Sitzung abzubrechen, was bedeutet, dass alle Daten in der aktuellen Sitzung verurteilt werden. Nach dem Aufrufen dieser Funktion speichert PHP keine Sitzungsdaten mehr, zerstört jedoch nicht die Sitzungs -ID der Sitzung. Dies bedeutet, dass die Sitzungs -ID im Cookie des Clients aufbewahrt wird und die Server -Sitzungsdatei nicht gelöscht wird.
<span><span><span class="hljs-title function_ invoke__">session_abort</span></span><span>();
</span></span>
Nach Verwendung von Session_abort () werden alle in der Sitzung vorgenommenen Änderungen (z. B. Änderungen am $ _Session -Array) verworfen. Dies ist in einigen Fällen sehr nützlich, in denen Sie den Inhalt der Sitzung vorübergehend ändern müssen, die Sitzung jedoch nicht ändern möchten.
Theoretisch können Session_Start () und Session_abort () zusammen verwendet werden, sollten jedoch mit großer Vorsicht verwendet werden, da das Verhalten dieser beiden Funktionen unabhängig voneinander ist und normalerweise nicht erforderlich ist, beide Funktionen gleichzeitig im selben Skript zu verwenden.
Normalerweise wird Session_start () verwendet, um eine Sitzung zu starten und Sitzungsdaten zu initialisieren. Wenn Session_abort () unmittelbar nach Session_Start () aufgerufen wird, werden die Daten der Sitzung nicht gespeichert oder aktualisiert, es sei denn, Sie haben bereits vor dem Aufrufen von Session_abort () in der Sitzung betrieben.
<span><span><span class="hljs-title function_ invoke__">session_start</span></span><span>(); </span><span><span class="hljs-comment">// Starten Sie eine Sitzung</span></span><span>
</span><span><span class="hljs-variable">$_SESSION</span></span><span>[</span><span><span class="hljs-string">'user'</span></span><span>] = </span><span><span class="hljs-string">'John Doe'</span></span><span>; </span><span><span class="hljs-comment">// Setzen Sie Sitzungsdaten</span></span><span>
</span><span><span class="hljs-title function_ invoke__">session_abort</span></span><span>(); </span><span><span class="hljs-comment">// Die Sitzung abbrechen,Daten wegwerfen</span></span><span>
</span></span>
In diesem Beispiel wird der von $ _Session ['Benutzer'] festgelegte Wert verworfen, da Session_abort () frühere Änderungen an der Sitzung rückgängig machen.
In den meisten Fällen hat Calling Session_abort () nicht viel praktisch, da alle Sitzungsdaten abfällt. Wenn Sie Sitzungsdaten löschen möchten, können Sie die Sitzung im Allgemeinen intuitiver und klarer über Session_unset () oder Session_destroy () bedienen.
<span><span><span class="hljs-title function_ invoke__">session_start</span></span><span>();
</span><span><span class="hljs-variable">$_SESSION</span></span><span>[</span><span><span class="hljs-string">'user'</span></span><span>] = </span><span><span class="hljs-string">'John Doe'</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">session_unset</span></span><span>(); </span><span><span class="hljs-comment">// Sitzungsdaten löschen</span></span><span>
</span></span>
oder
<span><span><span class="hljs-title function_ invoke__">session_start</span></span><span>();
</span><span><span class="hljs-variable">$_SESSION</span></span><span>[</span><span><span class="hljs-string">'user'</span></span><span>] = </span><span><span class="hljs-string">'John Doe'</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">session_destroy</span></span><span>(); </span><span><span class="hljs-comment">// Zerstöre die gesamte Sitzung</span></span><span>
</span></span>
In bestimmten Anwendungsszenarien kann Session_abort () verwendet werden, um die Sitzung vorübergehend abzubrechen, um zu verhindern, dass bestimmte sensible Daten gespeichert werden. Wenn ein Benutzer beispielsweise bestimmte Vorgänge absagt oder wenn ein Fehler auftritt, können die Sitzungsdaten nicht durch Aufrufen von Session_abort () auf dem Server gespeichert werden.
<span><span><span class="hljs-title function_ invoke__">session_start</span></span><span>();
</span><span><span class="hljs-variable">$_SESSION</span></span><span>[</span><span><span class="hljs-string">'user'</span></span><span>] = </span><span><span class="hljs-string">'John Doe'</span></span><span>;
</span><span><span class="hljs-comment">// Operation fehlgeschlagen oder benutzererkrankt storniert</span></span><span>
</span><span><span class="hljs-title function_ invoke__">session_abort</span></span><span>(); </span><span><span class="hljs-comment">// Die Sitzung abbrechen,Keine Daten gespeichert</span></span><span>
</span></span>
In diesem Szenario stellt Session_abort () sicher, dass auch wenn ein modifizierter Inhalt im $ _Session -Array vorliegt, es nicht gespeichert wird, wodurch unnötige Datenpersistenz vermieden wird.
Session_Start () wird verwendet, um eine Sitzung zu starten und Sitzungsdaten zu initialisieren.
Session_ABORT () wird verwendet, um die Verarbeitung der aktuellen Sitzung abzubrechen und alle nicht gespeicherten Sitzungsdaten zu verwerfen.
Diese beiden Funktionen können gemeinsam verwendet werden, müssen jedoch normalerweise nicht gleichzeitig verwendet werden, da ihr Verhalten unabhängig ist.
Wenn Sie Sitzungsdaten beseitigen möchten, ist Session_unset () oder Session_Destroy () intuitiver und effektiver.
In bestimmten Szenarien kann Session_abort () verwendet werden, um unnötige Datenpersistenz zu vermeiden, insbesondere wenn der Benutzer den Vorgang absagt oder auf einen Fehler stößt.
Im Allgemeinen sind Session_Start () und Session_abort () unabhängige Funktionen, die in besonderen Fällen zusammen verwendet werden können. In mehr Fällen sollte jedoch unnötige Mischen vermieden werden. Das rationale Sitzungsmanagement erfordert in der Regel genauere Reinigungs- und Zerstörungsoperationen.