Wie kann ich eine PHP) - Funktion aufrufen, wenn die Ausführung abgeschlossen ist?
Beispielsweise:
<?php
//SOMETHING DONE
GOTO(http://example.com/thankyou.php);
?>
Folgendes würde mir wirklich gefallen ...
<?php
//SOMETHING DONE
GOTO($url);
?>
Ich möchte so etwas machen:
<?php
//SOMETHING DONE THAT SETS $url
header('Location: $url');
?>
<?
ob_start(); // ensures anything dumped out will be caught
// do stuff here
$url = 'http://example.com/thankyou.php'; // this can be set based on whatever
// clear out the output buffer
while (ob_get_status())
{
ob_end_clean();
}
// no redirect
header( "Location: $url" );
?>
Sie könnten immer nur das Tag verwenden, um die Seite zu aktualisieren - oder einfach das erforderliche Javascript in die Seite am Ende einfügen, wodurch die Seite umgeleitet würde. Sie können dies sogar in eine Onload-Funktion einfügen, sodass die Seite nach Abschluss umgeleitet wird
<?php
echo $htmlHeader;
while($stuff){
echo $stuff;
}
echo "<script>window.location = 'http://www.yourdomain.com'</script>";
?>
Wenn "ETWAS GEMACHT" keine Ausgabe über echo/print/etc aufruft, dann:
<?php
// SOMETHING DONE
header('Location: http://stackoverflow.com');
?>
Beachten Sie, dass dies nicht funktioniert:
header('Location: $url');
Sie müssen dies tun (für die variable Erweiterung):
header("Location: $url");
<?php
// do something here
header("Location: http://example.com/thankyou.php");
?>
vergessen Sie nicht, nach Ihrem Anruf einen Würfel zu setzen, damit die Umleitung ausgeführt wird, bevor der Rest des Codes auf der Seite ausgeführt wird. ein. Wenn Sie weiter unten auf der Seite Kopfzeilenfunktionen haben, werden diese die weiter oben im Code befindlichen Funktionen überschreiben.
b: Ich gehe davon aus, dass Sie nicht möchten, dass der Rest des Codes auf der Seite ausgeführt wird, und dass Sie diese Umleitung daher an erster Stelle setzen [vielleicht].
beispiel:
<?php
// do something here
header("Location: http://example.com/thankyou.php");
die();
//code down here now wont get run
?>
Hier ist eine Lösung für das Problem "Header wurden bereits gesendet". Angenommen, Sie validieren ein Formular und senden es per E-Mail. Stellen Sie sicher, dass der PHP-Code das erste auf Ihrer Seite ist ... vor allen doctype- und head-Tags und dem ganzen Jazz. Wenn dann POST auf der Seite ankommt, kommt der PHP-Code zuerst und trifft nicht auf die bereits gesendeten Header-Probleme.