automatische Weiterleitung

Pablo_de_la_Cruz

Grünschnabel
Folgendes Problem:
Ich habe da ein Formular, einen Submit-Button, eine Kontrollfunktion und einen SQL-Befehl (INSERT INTO ...)!
Also nach dem Ausfuellen des Formulars klickt man auf den Submit, die Seiteschickt nun die Daten an sich selbst.
Nun werden die Daten via PHP geprueft, gibt es Unstimmigkeiten so wie das Problem beschrieben.
Ist alles OK, werden die Daten zur MySQL-DB geschickt.
Das alles funktioniert auch alles und tut nicht mal all zu viel Sache.
Nun der Pferdefuss: Ich bleibe nach dem senden auf der selbigen Seite, das will ich aber nicht und will auch keinen Link, wie "hier geht´s weiter".
Das ist mir ein Klick zu viel!

Wie kann ich es mit PHP realisieren, dass ich nach der Pruefung und dem Versandt auf einer anderen Seite lande?
 
Am besten verwendest du da
PHP:
header("Location: neueseite.php");
um von der Seite wegzukommen.
Diese Weiterleitung muss aber vor jeder Ausgabe geschehen, sonst kommt eine nette Fehlermeldung *gg*
 
Wo man sich aber wieder fragen kann, welche Clients das nicht unterstützen - ich arbeite mit allen möglichen Browsern und bisher ist mir noch nie untergekommen, dass es einer nicht unterstützt *gg*
 
Und der erste Kunde der einen Browser benutzt, der es nicht unterstützt wird es dir bestimmt danken ;)

Oder wenn die Browser anfangen HTTP Spezifikationen 1:1 umzusetzen... Dann hast du viel Spaß mit deiner Software, die plötzlich nicht mehr richtig funktioniert.
 
Probleme mit Browsern darf es einfach nicht geben.
Gibt es noch eine andere Moeglichkeit, dies zu realisieren?

Und wie genau nutze ich diese header-Funktion?
Koennte mir bitte jemand einen Codeschnipsel posten, um die Handhabung etwas zu verstehen?

Diese Weiterleitung muss aber vor jeder Ausgabe geschehen, sonst kommt eine nette Fehlermeldung

Was soll das eigentlich heissen, "vor jeder Ausgabe"?

Entschuldigt meine Unwissenheit! :confused:
 
Hi Pablo,
wenn es auch mit html/JS geht:
HTML:
<html>
<body>

<script language="javascript">
<!--
window.location.href="http://www.abc.de/Index.php";
// -->
</script>

<h1> Einen Moment Bitte, Sie werden automatisch weitergeleitet. Falls dies nicht der Fall sein sollte, <a href="http://www.abc.de/Index.php">klicken Sie bitte hier</a> </h1>
</body>
</html>
Wäre das was ?
 
Hallo,

Und wie genau nutze ich diese header-Funktion?
Koennte mir bitte jemand einen Codeschnipsel posten, um die Handhabung etwas zu verstehen?
Ich glaube da habe ich vorhin was in diesem Thread davon gelesen :rolleyes:
DDSD hat gesagt.:
Am besten verwendest du da
PHP:
header("Location: neueseite.php");
um von der Seite wegzukommen.
neueseite.php ist die Seite, auf die weitergeleitet wird.

Was soll das eigentlich heissen, "vor jeder Ausgabe"?
Das heißt, dass du NICHTS vor Aufruf dieser Funktion ausgeben darfst.

PHP:
<?php
$var = 0; //man kann jeden Code vorher ausführen, außer Funktionen wie print, echo usw
header("Location: $PHP_SELF"); //leitet auf die gleiche Seite weiter (sinnvoll z.B. nach Übermittlung von POST-Daten
echo "Ausgabe.......";
?>
Ausgabe...
<?php
//danach kann alles ausgegeben werden
?>
Obiger Code ist korrekt.

PHP:
$var0 = false;
$var1 = @mysql_num_rows($var0) OR PRINT("Fehler"); //einfach irgendwas, das einen Fehler ausgeben würde
header("Location: $PHP_SELF"); //würde Fehler "Headers already sent.[...]" oder sowas ausgeben
Obiger Code ist nicht korrekt.

Ich hoffe ich konnte dir damit helfen!

killerkirsche hat gesagt.:
es gibt ne html-weiterleitung in HTML ohne PHP, die nach ner gewissen Zeit die Seite neu lädt.
HTML:
<meta http-equiv="refresh" content="5; URL=http://de.selfhtml.org/">
wäre das nix?
Das dauert dann doch immer so lange, bis der die Seite refresht, würde mich als Benutzer mehr stören, als ein Klick :-)

Edit: Man kann allerdings (auch vor jeglicher Ausgabe) den Ausgabepuffer aktivieren.
Damit werden die Header noch nicht sofort gesendet, weshalb dann auch ein Aufruf von header() nach einer Ausgabe möglich wäre.
Dazu einfach vor jeglicher Ausgabe die Funktion
PHP:
ob_start();
aufrufen ;)

crazymischl hat gesagt.:
Hi Pablo,
wenn es auch mit html/JS geht:
HTML:
[...]
Wäre das was ?
Das fände ich auch noch gut, allerdings muss dann JavaScript beim Benutzer aktiviert sein, und das haben nicht alle (z.B. ich :-) )

MfG
Fabsch
 
Zuletzt bearbeitet:
Zurück