webentwicklung-frage-antwort-db.com.de

Weiterleiten an angegebene URL bei PHP Skriptvervollständigung?

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');  
?>
35
JoshFinnie
<?
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" );
?>
64
Patrick Hogan

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>";
?>
31
user44856

Wenn "ETWAS GEMACHT" keine Ausgabe über echo/print/etc aufruft, dann:

<?php
   // SOMETHING DONE

   header('Location: http://stackoverflow.com');
?>
14
Bullines

Beachten Sie, dass dies nicht funktioniert:

header('Location: $url');

Sie müssen dies tun (für die variable Erweiterung):

header("Location: $url");
5
FryGuy
<?php

// do something here

header("Location: http://example.com/thankyou.php");
?>
3
Aistina

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

?>
2
as_bold_as_love

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.

0
Paul M