Php header auslesen?

5 Antworten

Vom Fragesteller als hilfreich ausgezeichnet
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

Luiswagener16 
Fragesteller
 24.01.2020, 17:34

sodass er mir einfach die URL ausgibt, die die Seite gerade hat

0
EinAlexander  24.01.2020, 17:52
@Luiswagener16
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'];
?>
1
Luiswagener16 
Fragesteller
 24.01.2020, 17:56
@EinAlexander

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.

0
EinAlexander  24.01.2020, 18:01
@Luiswagener16
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.

0
EinAlexander  24.01.2020, 18:19
@Luiswagener16
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

0

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.

https://www.php.net/manual/en/function.curl-init.php

Woher ich das weiß:Berufserfahrung – Web Developer bei einem mittelständischen Portalbetreiber

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.

Woher ich das weiß:Berufserfahrung – ich arbeite schon sehr lange im EDV Bereich, viele Sparten
EinAlexander  24.01.2020, 16:47
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.

0