


Lassen Sie uns über die Erweiterung der Header-Nutzung in PHP sprechen
header() wird zum Senden von Rohheadern verwendet. Weitere Informationen zu Headern finden Sie in der HTTP/1.1-Spezifikation Beispiel 1:
------------------------------------------------ - -----------------------------------------------
Beispiel 2: Deaktivieren Sie das Seiten-Caching im IE<?PHP Header("Location: http://www.php.cn"); exit;//在每个重定向之后都必须加上“exit",避免发生错误后,继续执行。 ?>
Damit Betrachter jedes Mal die neuesten Informationen erhalten, anstatt die Informationen im Proxy oder Cache:
CacheControl = no-cache Pragma=no-cache Expires = -1
<?PHP header( 'Expires: Fri, 4 Dec 2009 09:00:00 GMT' ); header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' ); header( 'Cache-Control: no-store, no-cache, must-revalidate' ); header( 'Cache-Control: post-check=0, pre-check=0', false ); header( 'Pragma: no-cache' ); //兼容http1.0和https ?>Wenn sich die Webseiten auf dem Server häufig ändern, setzen Sie Expires auf -1, was bedeutet, dass es sofort abläuft. Wenn eine Webseite jeden Tag um 1 Uhr morgens aktualisiert wird, können Sie „Ablaufzeit“ auf 1 Uhr morgens am nächsten Tag festlegen. Wenn der HTTP1.1-Server CacheControl = no-cache angibt, speichert der Browser die Webseite nicht zwischen.
Alte HTTP 1.0-Server können den Cache-Control-Header nicht verwenden. Aus Gründen der Abwärtskompatibilität mit HTTP 1.0-Servern bietet IE daher spezielle Unterstützung für HTTP mithilfe des Pragma:no-cache-Headers. Wenn der Client über eine sichere Verbindung mit dem Server kommuniziert und der Server in der Antwort den Header „Pragma:no-cache“ zurückgibt, speichert Internet Explorer die Antwort nicht zwischen. Hinweis: Pragma:no-cache verhindert das Caching nur, wenn es in einer sicheren Verbindung verwendet wird. Bei Verwendung in einer nicht sicheren Seite ist die Verarbeitungsmethode dieselbe wie Expires:-1. Die Seite wird zwischengespeichert, aber als sofort markiert . Abgelaufen.
http-equiv-Meta-Tag: Sie können http-equiv-Meta verwenden, um den angegebenen HTTP-Nachrichtenheader auf der HTML-Seite zu markieren. Ältere IE-Versionen unterstützen möglicherweise keine HTML-Meta-Tags, daher ist es am besten, HTTP-Nachrichtenheader zu verwenden, um das Caching zu deaktivieren.
--------------------------------- --- ----------------------------------
Beispiel 3: Lassen Sie den Browser des Benutzers erscheinen Dateiinformationen konnten nicht gefunden werden.
Viele Informationen im Internet besagen Folgendes: Die PHP-Funktion header() kann einen Status-Header an den Browser senden,
z. B. header("Status: 404 Not Found"). Tatsächlich lautet die vom Browser zurückgegebene Antwort jedoch:
Nachdem Sie einige Informationen überprüft haben, lautet die richtige Schreibweise:
HTTP/1.x 200 OK Date: Thu, 03 Aug 2006 07:49:11 GMT Server: Apache/2.0.55 (Win32) PHP/5.0.5 X-Powered-By: PHP/5.0.5 Status: 404 Not Found Content-Length: 0 Keep-Alive: timeout=15, max=98 Connection: Keep-Alive Content-Type: text/html
Der erste Teil ist der Version des HTTP-Protokolls (HTTP-Version); der zweite Teil ist der Statuscode (Status); der dritte Teil ist die Begründungsphrase (Reason-Phrase).
--------------------------------- --- ----------------------------------
header(”http/1.1 404 Not Found”);Beispiel 4: Benutzern das Herunterladen von Dateien ermöglichen (Versteckte Dateien (Speicherort)
HTML-Tag können einen normalen
Datei-Download erreichen. Wenn Sie die Datei vertraulich behandeln möchten und anderen den Dateilink nicht mitteilen können, können Sie die Header-Funktion zum Herunterladen der Datei verwenden. Beispiel 4: Eingabe von Inhalten vor der Header-Funktion
<?php header("Content-type: application/x-gzip"); header("Content-Disposition: attachment; filename=文件名/"); header("Content-Description: PHP Generated Data"); ?>Im Allgemeinen können HTML-Inhalte nicht vor der Header-Funktion ausgegeben werden. Zu den ähnlichen gehören setcookie() und Session-Funktionen. Die Funktion muss Nachrichtenkopfinformationen zum Ausgabestream hinzufügen. Wenn es Anweisungen wie echo gibt, bevor header() ausgeführt wird, wird beim späteren Auftreten von header() der Fehler „Warnung: Header-Informationen können nicht geändert werden – Header wurden bereits gesendet von …“ gemeldet. Das heißt, dass vor diesen Funktionen kein Text, keine Leerzeilen, kein Wagenrücklauf usw. stehen darf und es am besten ist, die Funktion „exit()“ nach der Funktion „header()“ hinzuzufügen. In der folgenden falschen Schreibweise befindet sich beispielsweise eine Leerzeile zwischen den beiden Abschnitten
PHP-Code : 原因是:PHP脚本开始执行 时,它可以同时发送http消息头部(标题)信息和主体信息. http消息头部(来自 header() 或 SetCookie() 函数)并不会立即发送,相反,它被保存到一个列表中. 这样就可以允许你修改标题信息,包括缺省的标题(例如 Content-Type 标题).但是,一旦脚本发送了任何非标题的输出(例如,使用 HTML 或 print() 调用),那么PHP就必须先发送完所有的Header,然后终止 HTTP header.而后继续发送主体数据.从这时开始,任何添加或修改Header信息的试图都是不允许的,并会发送上述的错误消息之一。 2: 下面是个很好的函数,将图片传送给浏览器显示。//some code here
<?php
//这里应该是一个空行
header(”http/1.1 403 Forbidden”);
exit();
?>
解决办法:
修改php.ini打开缓存(output_buffering),或者在程序中使用缓存函数ob_start(),ob_end_flush()等。原理是:output_buffering被启用时,在脚本发送输出时,PHP并不发送HTTP header。相反,它将此输出通过管道(pipe)输入到动态增加的缓存中(只能在PHP 4.0中使用,它具有中央化的输出机制)。你仍然可以修改/添加header,或者设置cookie,因为header实际上并没有发送。当全部脚本终止时,PHP将自动发送HTTP header到浏览器,然后再发送输出缓冲中的内容。
=================================================================
PHP 手册实例应用
1:您可以使用heder命令,强制使浏览器使用新鲜的内容(无缓存) 。
也可以给网址增加了一个唯一的编号,使其每次都读取新的内容,避免缓存。
example:<?php
print "<img src="/static/imghwm/default1.png" data-src="cs.jpg" class="lazy" mce_ alt="Lassen Sie uns über die Erweiterung der Header-Nutzung in PHP sprechen" >"; //通常读取的是缓存文件
?>
<?
print "<img src="/static/imghwm/default1.png" data-src="cs.jpg?" class="lazy" .time()."" mce_.time()."" alt="Lassen Sie uns über die Erweiterung der Header-Nutzung in PHP sprechen" >"; //增加了唯一的编号,使浏览器重新请求
w//print "<img src="/static/imghwm/default1.png" data-src="cs.jpg?" class="lazy" .rand(100,999)."" mce_.rand(100,999)."" alt="Lassen Sie uns über die Erweiterung der Header-Nutzung in PHP sprechen" >";
?>
<?php
function PE_img_by_path($PE_imgpath = "")
{
if (file_exists($PE_imgpath)) {
$PE_imgarray = pathinfo($PE_imgpath);
$iconcontent = file_get_contents($PE_imgpath);
header("Content-type: image/" . $PE_imgarray["extension"]);
header('Content-length: ' . strlen($iconcontent));
echo $iconcontent;
die(0);
}
return false;
}
?>
Das obige ist der detaillierte Inhalt vonLassen Sie uns über die Erweiterung der Header-Nutzung in PHP sprechen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Gründe für einen Phpessionsfehler sind Konfigurationsfehler, Cookie -Probleme und Sitzungsablauf. 1. Konfigurationsfehler: Überprüfen Sie die richtige Sitzung und setzen Sie die korrekte Sitzung. 2. Kookie -Problem: Stellen Sie sicher, dass der Cookie korrekt eingestellt ist. 3.Sesion läuft ab: Passen Sie die Sitzung an.

Zu den Methoden zur Debugg -Sitzungsprobleme in PHP gehören: 1. Überprüfen Sie, ob die Sitzung korrekt gestartet wird. 2. Überprüfen Sie die Lieferung der Sitzungs -ID; 3. Überprüfen Sie den Speicher und das Lesen von Sitzungsdaten. 4. Überprüfen Sie die Serverkonfiguration. Durch Ausgabe von Sitzungs-ID und Daten, Anzeigen von Sitzungsdateiinhalten usw. können Sie effektiv Diagnose und Lösen von Sitzungen im Zusammenhang mit Sitzungen diagnostizieren und lösen.

Mehrere Anrufe bei Session_Start () führen zu Warnmeldungen und möglichen Datenüberschreibungen. 1) PHP wird eine Warnung ausstellen und veranlassen, dass die Sitzung gestartet wurde. 2) Dies kann zu unerwarteten Überschreibungen von Sitzungsdaten führen. 3) Verwenden Sie Session_Status (), um den Sitzungsstatus zu überprüfen, um wiederholte Anrufe zu vermeiden.

Das Konfigurieren des Sitzungslebenszyklus in PHP kann durch Einstellen von Sitzungen erreicht werden. 1) Session.gc_maxLifetime steuert die Überlebenszeit der serverseitigen Sitzungsdaten, 2) Sitzung.cookie_Lifetime steuert den Lebenszyklus von Client-Cookies. Wenn der Keks auf 0 eingestellt ist, läuft es, wenn der Browser geschlossen ist.

Die Hauptvorteile der Verwendung von Datenbankspeichersitzungen sind Persistenz, Skalierbarkeit und Sicherheit. 1. Persistenz: Auch wenn der Server neu gestartet wird, können die Sitzungsdaten unverändert bleiben. 2. Skalierbarkeit: Anwendbar für verteilte Systeme, um sicherzustellen, dass Sitzungsdaten zwischen mehreren Servern synchronisiert werden. 3. Sicherheit: Die Datenbank bietet verschlüsselten Speicher zum Schutz vertraulicher Informationen.

Das Implementieren der benutzerdefinierten Sitzung in PHP kann durch die Implementierung der SessionHandlerInterface -Schnittstelle durchgeführt werden. Die spezifischen Schritte umfassen: 1) Erstellen einer Klasse, die SessionHandlerInterface wie CustomSessionHandler implementiert; 2) Umschreiben von Methoden in der Schnittstelle (z. B. offen, schließen, lesen, schreiben, zerstören, GC), um die Lebenszyklus- und Speichermethode von Sitzungsdaten zu definieren; 3) Registrieren Sie einen benutzerdefinierten Sitzungsprozessor in einem PHP -Skript und starten Sie die Sitzung. Auf diese Weise können Daten in Medien wie MySQL und Redis gespeichert werden, um Leistung, Sicherheit und Skalierbarkeit zu verbessern.

SessionID ist ein Mechanismus, der in Webanwendungen verwendet wird, um den Benutzersitzstatus zu verfolgen. 1. Es handelt sich um eine zufällig generierte Zeichenfolge, mit der die Identitätsinformationen des Benutzers während mehrerer Interaktionen zwischen dem Benutzer und dem Server aufrechterhalten werden. 2. Der Server generiert und sendet ihn über Cookies- oder URL -Parameter an den Client, um diese Anforderungen in mehreren Anforderungen des Benutzers zu identifizieren und zu verknüpfen. 3. Die Erzeugung verwendet normalerweise zufällige Algorithmen, um Einzigartigkeit und Unvorhersehbarkeit zu gewährleisten. 4. In der tatsächlichen Entwicklung können In-Memory-Datenbanken wie Redis verwendet werden, um Sitzungsdaten zu speichern, um die Leistung und Sicherheit zu verbessern.

Das Verwalten von Sitzungen in staatenlosen Umgebungen wie APIs kann durch Verwendung von JWT oder Cookies erreicht werden. 1. JWT ist für Staatenlosigkeit und Skalierbarkeit geeignet, aber es ist groß, wenn es um Big Data geht. 2. Kookies sind traditioneller und einfacher zu implementieren, müssen jedoch mit Vorsicht konfiguriert werden, um die Sicherheit zu gewährleisten.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor
