Php header auslesen?
Ich möchte durch eine PHP Funktion den Header (example.de/daswasichmöchte) und in die Datenbank eintragen. Aber wie bekomme ich den Header heraus?
5 Antworten
Php header auslesen?
Was genau meinst Du mit Header? Das was im HTML oft als Inhalt des <head>-Elements steht oder den HTTP-Header?
Alex
sodass er mir einfach die URL ausgibt, die die Seite gerade hat
das hat mit dem Header nichts zu tun. Den URL der aktuellen Seite erhältst Du mit
<?php
echo $_SERVER['SCRIPT_FILENAME'];
?>
danke, dass wars! Eine Frage noch, wie heißt die Abfrage, die schaut ob ich von einer bestimmten Seite gekommen bin. Zum Beispiel ich muss von der Login Page kommen um auf die Startseite zu kommen. Doch wenn ich so auf die Startseite gehe, dann werde ich direkt zur Login Page weitergeleitet.
Eine Frage noch, wie heißt die Abfrage, die schaut ob ich von einer bestimmten Seite gekommen bin
Das ist der referer (ist kein Schreibfehler, heißt wirklich so), den Du abfrägst mit
<?php
echo $_SERVER['HTTP_REFERER'];
?>
Allerdings ist auf diesen Wert kein Verlass. Der Referer kann im Browser abgestellt werden oder verfälscht werden.
Doch wenn ich so auf die Startseite gehe, dann werde ich direkt zur Login Page weitergeleitet.
Das löst man so, indem man eine Session Variable setzt, wenn der User auf der Loginseite ist. Beim Aufruf der Startseite wird abegfragt, ob diese Session Variable gesetzt ist. Wenn ja, ist alles in Ordnung, wenn nicht wird per redirect zur Loginseite weitergeleitet.
und wie mache ich das mit der Session?
und wie mache ich das mit der Session?
Auf jede PHP Seite schreibst Du ganz oben
session_start();
Auf die Loginseite, die zuerst besucht werden muss, schreibst Du ganz oben
session_start();
$_SESSION['eingeloggt'] = 'ja';
Auf die Startseite schreibst Du ganz oben
session_start();
if($_SESSION['eingeloggt'] != 'ja')
{
header('Location: https://www.example.com/login.php');
exit;
}
Somit ist ein Besuch der Startseite nur dann möglich, wenn die Session Variable $_SESSION['eingeloggt'] den Wert 'ja' enthält. Existiert sie nicht oder enthält sie einen anderen Wert, wird weitergeleitet zur Login-Seite
https://www.example.org/login.php
Wow! Echt vielen vielen Dank dafür!!! <3
der HTTP-Header wie Zum Beispiel www.example.de/register.php
Die Request Header des aktuellen Request kannst du via getallheaders anfordern. Beachte, dass die Funktion für den Apache Webserver ausgerichtet ist. Weitere Informationen findest du auf der verlinkten Seite.
Ist denn das Head Tag im HTML Quelltext gemeint?
Wenn Du mehr wissen willst, was in einem Response von einem Aufruf steckt dann könnte man mit der curl Funktion arbeiten.
Schaue Dir diese Variablen an:
$_SERVER['HTTP_HOST']
$_SERVER['REQUEST_URI']
Du liest einfach die ganze Seite als String ein. Und danach suchst Du nach
<head>
und <\head>
und schneidest das dazwischen aus.
Du liest einfach die ganze Seite als String ein. Und danach suchst Du nach <head> und <\head> und schneidest das dazwischen aus.
Das funktioniert nicht auf Seiten, auf denen der Autor das <head>-Element nicht explizit gesetzt hat.
sodass er mir einfach die URL ausgibt, die die Seite gerade hat