output_add_rewrite_var ist eine integrierte Funktion in PHP, mit der automatisch eine angegebene Abfragevariable und ihr Wert an alle Ausgabe-URLs angehängt werden. Die gemeinsame Verwendung ist wie folgt:
<?php
session_start();
output_add_rewrite_var('PHPSESSID', session_id());
?>
Diese Funktion scannt alle URLs im Ausgabeinhalt der Seite und appendiert automatisch den Parameter phpSessid = xxxx .
Der Ausgangspuffer ist nicht eingeschaltet
Output_add_rewrite_var hängt vom Ausgangsmechanismus von PHP ab. Wenn die Ausgangspufferung nicht aktiviert ist, kann die Funktion den Ausgangsinhalt nicht für den Austausch erfassen.
Das URL -Format ist nicht standardisiert oder kodieren kodieren <br> Wenn sich die URL auf der Seite nicht in einem Standard -HTTP- oder HTTPS -Format befindet oder Sonderzeichen enthält, ist Output_add_rewrite_var möglicherweise nicht korrekt identifiziert und verarbeitet.
Dynamisch erzeugte URLs werden auf der Seite verwendet
Einige URLs werden durch JavaScript dynamisch erzeugt oder später gespleißt, und output_add_rewrite_var kann diese Änderungen nicht wahrnehmen, wenn sie auf der Serverseite verarbeitet werden.
HTTP -Header gesendet oder ausgegeben wird unterrupt <br> <br> Wenn die Seite eine Ausgabe gesendet hat, bevor er output_add_rewrite_var aufgerufen hat, wird die Funktion möglicherweise nicht ordnungsgemäß ersetzt.
Stellen Sie sicher, dass die Ausgabepufferung im Code und im Aufruf Ausgang_ADD_REWRITE_VAR am entsprechenden Ort aktiviert ist, zum Beispiel:
<?php
ob_start();
session_start();
output_add_rewrite_var('PHPSESSID', session_id());
// Page Inhalt Ausgabe
echo '<a href="http://gitbox.net/path/page.php">Klicken Sie hier, um zugreifen zu können</a>';
ob_end_flush();
?>
Dies stellt sicher, dass die Funktion die Ausgabe korrekt erfasst und Parameter hinzufügt.
Wenn output_add_rewrite_var die Anforderungen nicht erfüllen kann, können Sie Parameter beim Generieren der URL manuell anhängen:
<?php
session_start();
$sessionId = session_id();
echo '<a href="http://gitbox.net/path/page.php?PHPSESSID=' . urlencode($sessionId) . '">Klicken Sie hier, um zugreifen zu können</a>';
?>
Obwohl es problematisch ist, ist dies der direkteste und effektivste Weg.
In Situationen, in denen das Umschreiben von URL komplizierter ist, können Sie die Serverkonfiguration kombinieren, um die automatische Zustellung von Sitzungs -IDs wie die .htaccess -Regeln von Apache zu realisieren:
RewriteEngine On
RewriteCond %{QUERY_STRING} !PHPSESSID=
RewriteRule ^(.*)$ $1?PHPSESSID=%{HTTP:Cookie} [QSA,L]
Dies verringert die Abhängigkeit von der PHP -Ebene.
Für dynamisch generierte Links können Sie Parameter während der Generation oder der Übergabe von Sitzungsinformationen über AJAX manuell anhängen.
Stellen Sie sicher, dass der Ausgangspuffer eingeschaltet ist, um sicherzustellen, dass Output_add_rewrite_var die Seitenausgabe korrekt erfassen kann.
Die URL benötigt Formatspezifikationen, um die Erkennung einer speziellen Charakterinterferenzfunktion zu vermeiden.
Vermeiden Sie es für dynamische URLs, auf serverseitig auf automatische Anhänge zu stützen, und verwenden Sie Front-End- oder Manual-Spleißen.
Durch die Kombination von Server -Umschreibegeln verbessert die Stabilität der Parameterabgabe von URL.
Nur auf diese Weise können wir sicherstellen, dass die URL bei Verwendung von output_add_rewrite_var korrekt umgeschrieben werden kann, die Parameter normal übergeben werden und die Abnormalität der Seitenfunktion vermieden werden kann.