Servus miteinander,
mein Blog soll eine Sessioncontrol bekommen, die ich selber schreiben möchte.
Damit ich einen Redirekt mittels header machen kann muss ich mit php eine Ausgabe machen, bevor irgendwas an den Browser zurückgegeben wurde.
Daher meine Frage: wer schickt denn die erste Ausgabe an den Browser zurück?
Versuch hab ich schon die header.php - und war mir ziemlich sicher, dass sie das ist - aber anscheinend wird nich was vorher gezogen...
Kann mir jemand sagen, welche php die erste Ausgabe an den Browser zurück schickt?
vielen Dank schon mal
Andy
wer macht die erste Ausgabe
-
-
- Gerade eben
- Anzeige
Hallo!
Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.
- ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
- ✔️ Deutsche Server & DSGVO-konform
- ✔️ Persönlicher Support (kein 0815-Ticket-System)
-
Du solltest sowas über ein Plugin realisieren, eine Übersicht über mögliche Hooks findest du in der Doku:
Plugin API/Action Reference « WordPress CodexEventuell ist dieser Hook für dich interessant:
Zitatinit
Runs after WordPress has finished loading but before any headers are sent. Useful for intercepting $_GET or $_POST triggers.Möglich ist vielleicht auch, die functions.php des Themes zu verwenden. Was die Verwendung natürlich auf dieses Theme beschränkt.
-
JEAH - genau was ich wollte!!!
function in der functions.php definiert, mit add_action an init gehängt - und TUT!
supergenial! Danke!! -
funzt wirklich - allerdings könnte man das nicht noch besser machen???
Diese Lösung ist ja nur für dieses Theme (ok, jetzt hab ich die Bemerkung von oben auch verstanden...) und auch bei einem ThemeUpgrade weg!
Wie hänge ich solche Änderungen in WP ein, dass sie auch einen WP-Update überleben? Hat's da auch einen Mechanismus??? Also ein File, in dem man permanente Änderungen hinterlegen kann, die bei einem Update nicht überschrieben werden...
schon mal vielen Dank vorweg
Andy -
Ja. Wie oben bereits erwähnt: erstelle dir für den Code ein Plugin. Verwende deine Funktion aus der functions.php, schreibe einen Plugin-Header in die Datei:
PHP
Alles anzeigen<?php /* Plugin Name: Name Of The Plugin Plugin URI: http://URI_Of_Page_Describing_Plugin_and_Updates Description: A brief description of the plugin. Version: The plugin's Version Number, e.g.: 1.0 Author: Name Of The Plugin Author Author URI: http://URI_Of_The_Plugin_Author */ /* Put your Code here... */ ?>
und speichere das ganze im Plugin-Verzeichnis ab. Jetzt siehst du das Plugin im Backend und kannst es dort aktivieren. -
RTFM wirkt manchmal echt Wunder... das mit dem PlugIn ist ja deutlich einfacher als ich dachte....
Aaaaalso hab ich den Code aus dem Theme in ein Plugin geklatscht, es tatsächlich gefunden und aktiviert.
Fehlermeldung: Cannt declade function twice!
Okok, das ist einfach, steht ja beim Theme noch drin.... Dort also gelöscht und Fehlermeldung ist weg.
Aaaaaber: Jetzt motzt WP
"Warning: session_start() [[COLOR=#0000ff]function.session-start[/COLOR]]: Cannot send session cache limiter - headers already sent "
und das, obwohl der Code der gleiche ist wie vorher....
Wann wird das Plugin geladen?
Wenn ich meine function nach wie vor an init hänge sollte doch alles gehen wie vorher???
totalverwirrt
Andy
(PS: gerne nehme ich auch ein RTFM als AW. :-> ) -
Vielleicht noch irgendwelche Leerzeilen im Plugin-Code außerhalb von <?php ... ?> ?
Plugins an sich werden natürlich vor der 1. Ausgabe an den Browser geladen und ausgeführt. (Irgendwo im Codex gabs auch ne Beschreibung, wann was ausgeführt wird, aber die Stelle finde ich grade nicht... ;-))
-
Hey, kannst Du Hellsehen????
NEIN, keine Leerzeile, ein simples Space hinter dem ?> hat genügt - und das ist im Editor schon mal schnell untergegangen.... :oops:
Gracie mille!
ichhhabeinplugingeschrieben!ichhhabeinplugingeschrieben!ichhhabeinplugingeschrieben! -
Nein, aber die berühmte Glaskugel hatte mal einen klaren Moment. ;-)
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!