automatische Weiterleitung
René
- php
Hallo Leute, bin ganz neu hier und hab ein Problem:
ich bastle gerade an einem Login-Script. Darin kommt dann die Abfrage, wenn der User eingeloggt ist, includiere Datei xy.php:
if (logged_in())
{
include("./xy.php");
}
Jetzt mein Problem:
ich will nicht, das Datei xy.php icludiert wird, sondern das man automatisch weitergeleitet wird. Das Login-Script befindet sich innerhalb eines html-bodys und ich möchte auf eine ganz neue Seite weiterleiten - möglichst ohne Javascript - wenn´s geht.
Danke und Gruß, René
Schon mal mit header() versucht? Einfach
<?php
header("location: <URL>");
?>
und du wirst weitergeleitet. Problem bei der Sache: Header-Informationen müssen oben stehen, ansonsten kann es zu Fehlern führen.
Gruß
Chris
Danke für den Tipp, aber ich glaube, das das nicht funzt.
Das Ding ist, das die login.php bereits in eine html-Seite includiert ist und ich mit der weiterleitung (wenn man denn erfolgreich eingeloggt ist) zur xy.php will, die wiederum dafür zuständig ist, eine neue html-Seite zu generieren.
Da die login.php wie gesagt in eine html-Seite includiert ist, kann ich nix mehr oben rein schreiben...
...oder irre ich?
Danke, René
Hi René,
Da die login.php wie gesagt in eine html-Seite includiert ist, kann ich nix mehr oben rein schreiben...
...oder irre ich?
Und wie nimmst du die includierung in deiner html Seite vor? Warum machst du aus
der html nicht einfach eine .php Seite?
Grüße aus H im R,
Engin
Hi Engin,
Und wie nimmst du die includierung in deiner html Seite vor? Warum machst du aus
der html nicht einfach eine .php Seite?
...naja, die html ist eine php, die ja letztendlich eine html ausgibt (wenn man sich den Quelltext im Browser anschaut, steht die inculdierte login.php innerhalb des html-bodys.
Gibt´s vielleicht noch ne andere Möglichkeit, diese Abfrage (wenn richtig eingeloggt, dann...) - Weiterleitung (bringe mich auf die Seite xy.php (oder .html) zu schreiben - ich hab keinen Plan, bin wie gesagt Neuling.
René
Hi René,
Gibt´s vielleicht noch ne andere Möglichkeit, diese Abfrage (wenn richtig eingeloggt, dann...) - Weiterleitung
Mit den wenigen Informationen die du uns gibts nicht. Wie funktioniert denn dein login? Session - IP?
Du kannst auch über das <form action nach submit auf eine gewünschte Seite umleiten.
Auf der Seite, auf die dann dein User gelenkt wird musst du natürlich abfragen, ob dein User eingeloggt ist.
Mit session wäre das beispieslweise
<?
if(!isset($_SESSION["user"]))
{
echo 'du bist nicht eingeloggt';
exit;
}
else{
echo 'was auch immer der eingeloggte sehen soll';
}
?>
Grüße aus H im R,
Engin
Hi,
Da die login.php wie gesagt in eine html-Seite includiert ist, kann ich nix mehr oben rein schreiben...
richtig erkannt. Also ändere Dein Konzept und prüfe in jeder Datei (bzw. in der index, wenn hier alles eingebunden wird) als erstes das Login und reagiere entsprechend.
Dabei brauchst Du noch nicht einmal weiterleiten, sondern kannst in Abhängigkeit vom Login-Status auch direkt die passenden Ausgaben generieren.
freundliche Grüße
Ingo
Mahlzeit,
Danke für den Tipp, aber ich glaube, das das nicht funzt.
Wenn Du es richtig machst, schon.
Das Ding ist, das die login.php bereits in eine html-Seite includiert ist und ich mit der weiterleitung (wenn man denn erfolgreich eingeloggt ist) zur xy.php will, die wiederum dafür zuständig ist, eine neue html-Seite zu generieren.
Schon klar.
Da die login.php wie gesagt in eine html-Seite includiert ist, kann ich nix mehr oben rein schreiben...
Schon mal was vom EVA-Prinzip gehört?
Auf PHP bezogen:
1. alle evtl. "Eingaben" (also $_GET-, $_POST- und $_SESSION-Parameter) prüfen,
2. das tun, was das Skript tun soll und
3. erst JETZT Ausgaben generieren.
So kannst Du jederzeit in Schritt 2. je nach Stand/Status der Verarbeitung (z.B. "User ist eingeloggt", "Keine Daten bei Datenbankabfrage vorhanden", "Verbindung nach hierundda verloren") u.a. auch per header("Location: $url") woanders hin weiterleiten - da zu dem Zeitpunkt noch keine Ausgaben gemacht wurden.
...oder irre ich?
Ja.
MfG,
EKKi