Zum Inhalt springen

php weiterleitung


Empfohlene Beiträge

danke, aber das scheint mir auf die schnelle etwas zu kompliziert.

Spricht etwas gegen das hier?


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>MobiTruck Daten hinzufuegen</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<?php
echo "<meta http-equiv=\"refresh\" content=\"3; URL=datei.html\">"
?>
</head>
<body>

[/PHP]

Link zu diesem Kommentar
Auf anderen Seiten teilen

ja, schon klar. Es sieht ja auch eher so aus:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<title>MobiTruck Daten hinzufuegen</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<?php
//hier arbeitet mein script irgendwas
//Fallunterscheidung für $weiterleitung

echo "<meta http-equiv=\"refresh\" content=\"3; URL=" . $weiterleitung . "\">"
?>
</head>
<body> [/PHP]

Ach ja, und kann ich sicher gehen dass mein script abgearbeitet ist bevor weitergeleitet wird? Auch wenn ich eine zeit von 0 angebe?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ah ok, hätt ich mir zwar denken können, aber mal wieder verplant :rolleyes:

PHP parst Zeile für Zeile, von oben nach unten durch das Script. Also wenn du das Echo wirklich ganz am Schluss hast, sollte dein Script auch wirklich funktionieren.

//Edit: Ok, diesmal hab ich noch dran gedacht, nachzudenken *g*

Du kannst dir auch ne If Schleife bauen, die z.b. abfragt, ob $weiterleitung schon gesetzt wurde:

<?
// Viel Gefasel vom Script

if (isset($weiterleitung)) {
echo "Das ding für weiterleitung was ich nich c&pn kann weil dat bei edit nich geht hmpf";
}
?>[/php]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich bräuchte auch etwas ähnliches. Ich möchte nach Abarbeitung eines PHP-Skripts, an eine andere Seite weiterverlinken ohne dass der Benutzer es merkt, bzw nicht wirklich bemerkt, wissen darf er es schon.

Ich müsste an die Zieldatei GET-Parameter anhängen und das geht ja mit include('blabla.php'); nicht, include ist ja in dem Sinn auch keine Weiterleitung.

Was ich bei obigem nicht verstehe:

die Meta-Tags müssen ja im HTML-Head stehen, und das wiederum steht ja am Anfang der HTML-Datei. Wie kann ich dann am Schluss des Skripts ein Meta-Tag machen??

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich bräuchte auch etwas ähnliches. Ich möchte nach Abarbeitung eines PHP-Skripts, an eine andere Seite weiterverlinken ohne dass der Benutzer es merkt, bzw nicht wirklich bemerkt, wissen darf er es schon.

Ich müsste an die Zieldatei GET-Parameter anhängen und das geht ja mit include('blabla.php'); nicht, include ist ja in dem Sinn auch keine Weiterleitung.

Was ich bei obigem nicht verstehe:

die Meta-Tags müssen ja im HTML-Head stehen, und das wiederum steht ja am Anfang der HTML-Datei. Wie kann ich dann am Schluss des Skripts ein Meta-Tag machen??

du müsstest dann am besten mit dem outputbuffer arbeiten:

http://de3.php.net/manual/en/function.ob-start.php

am anfang nen output buffer gestartet und dann kannst du deine weiterleitung machen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Was ich bei obigem nicht verstehe:

die Meta-Tags müssen ja im HTML-Head stehen, und das wiederum steht ja am Anfang der HTML-Datei. Wie kann ich dann am Schluss des Skripts ein Meta-Tag machen??

Das PHP-Script befindet sich VOR dem Meta Tag: (praktisch im head der html Datei)


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Titel</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<?php
//hier arbeitet mein script irgendwas!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//Fallunterscheidung für $weiterleitung !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//zum Schluss kommt das:
echo "<meta http-equiv=\"refresh\" content=\"3; URL=" . $weiterleitung . "\">" //hier kannst du dann die Weiterleitung mit echo ausgeben
?>
</head>
<body>[/PHP]

Link zu diesem Kommentar
Auf anderen Seiten teilen

und wo ist jetzt noch das problem?

Ich hab keins, ich wollte FinalFantasy nur sagenk, dass damit sein Problem (so wie ich es verstanden habe) schon gelöst sein dürfte.

Einfach:


$weiterleitung = "naechsteseite.html?irgendwashintendran";
echo "<meta http-equiv=\"refresh\" content=\"3; URL=" . $weiterleitung . "\">" [/PHP]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hmm, stimmt, wenn ich das PHP-Skript noch im Head mache, könnte es gehen.

Hatte jedenfalls das Problem, dass headers('Location xyz.php'); bei mir lokal auf dem XAMPP funktionierte (genau wie session_start() nicht am Anfang vom Script) auf meinem Webspace aber dann Probleme gemacht hat, da Could not send Header, because already sent.....

Ich probiers heut nachmittag mal.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dann könnte es natürlich auch sein, daß session_start() nicht nur header-Informationen sendet, sondern auch schon HTML-Code

session start sendet definitiv keine Ausgaben, sonst würde alle meine Anwendungen nicht laufen....

poste dochma deinen code der ausgeführt wird bis es zum Aufruf von session_start() kommt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nun, das Script wird serverseitig ausgeführt. Der Client bekommt gar keinen PHP-Code zu sehen. Er bekommt nur noch das HTTP-Packet, bestehend aus dem Header und üblicherweise einem HTML-Inhalt. Daher ist sogar ganz nett, z.B. Formulare an sich selbst zu senden, die Eingabedaten zu verarbeiten und, wenn alles korrekt lief über einen Header-Befehl (sofern noch keine Ausgabe stattfand) auf eine Hauptseite/Erfolgsseite/wasauchimmer weiterzuleiten.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also:

1. Client fordert eine Seite von einem Server an

2. Server überprüft (je nach config), was es ist (html, php, perl, cgi etc.)

3. Wenn es in unserem Falle eine PHP-Datei ist, dann liefert er die Datei nicht direkt aus, sondern übergibt sie ersteinmal an den PHP-Interpreter

4. Der PHP-Interpreter "interpretiert",durchläuft das PHP-Script

5. Alle Ausgaben, die mit echo, print oder ähnlichem gemacht werden, werden nun an den Client weitergegeben. In der Regel sollten das also HTML-konforme Ausgaben sein.

5.1. Wenn nun im PHP-Script irgendwo eine header()-Anweisung steht, dann sollte dies geschehen, bevor eine Ausgabe mit print oder echo geschieht. Dieser Befehl sendet dann den im Parameter übergebenen String als Header-Befehl. (Zur Erinnerung: Ein HTTP-Paket ist aufgeteilt in Header und Content. Im Header stehen alle Steuer- und Status-Informationen, im Content der eigentliche Inhalt).

5.1.1. Wenn im PHP-Script nun ein header("Location: blabla.htm"); steht, wird der Client dann zwar umgeleitet, ohne daß der Benutzer es mitbekommt, das PHP-Script wird trotzdem fertig abgearbeitet, es wird dort nicht automatisch abgebrochen oder so. Erst der Client erhält mit diesem Header-Befehl die Aufforderung, nun blabla.htm anzufordern, das tut nicht der Server.

Ich hoffe, das war richtig und nicht zu konfus.

Benjamin

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja, man muss hier ganze genau unterscheiden, was auf Clientseite und Serverseite passiert. Ich hatte schon dass Problem, dass ich nen Header gesendet hab, und nicht dran gedacht habe, dass das Script ja weiterläuft.

Ich sags immer so, PHP baut eigentlich nur eine HTML-Seite zusammen, die dann an den Client geschickt wird. Im Prinzip könnte man auch alles aus statischem HTML machen, nur dass halt dann die Inhalte auch fest wären.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...