Hallo,
ich hab leider ein Problem mit meinem Skript.
Wenn ein Eintrag abgesendet wurde und alles erfolgreich klappt dann wird auf im Template ein Bereich noch aktiviert wo steht das der Eintrag erfolgreich war.
Allerdings soll dann nach 5 Sekunden eine Weiterleitung erfolgen. Die Weiterleitung klappt mit header() wenn ich ob_start() und ob_end_flush() benutze. Nur das mit sleep() will nicht so wirklich.
Hier erstmal das Skript (habe einige Überprüfung über die Formularfelder rausgelassen, die if-Anweisung würden jetzt hier keine Rolle spielen):
Alles anzeigen
Wenn der Beitrag erfolgreich hinzugefügt wurde, wird $entry_added auf true gesetzt. Nach dem Smarty das Template ausgibt soll überprüft ewrden ob $entry_added true ist und demnach 5 Sekunden warten und auf index.php umleiten.
Das Problem ist nun: Sobald ich auf absenden drücke, lädt er 5 Sekunden lang und ich werde direkt auf index.php geleitet ohne das die Ausgabe kam, das der Beitrag hinzugefügt wurde. Nachdem der Text darsteht soll das Skript 5 Sekunden warten und dann erst weiterleiten.
Ich hab schon ausprobiert sleep(5); vor der if-Schleife zu setzen allerdings wartet er dann IMMER 5 Sekunden bevor er das Template ausgibt.
Weis einer wie ich das regeln kann?
Vielen Dank und fröhliche Weihnachten!
ich hab leider ein Problem mit meinem Skript.
Wenn ein Eintrag abgesendet wurde und alles erfolgreich klappt dann wird auf im Template ein Bereich noch aktiviert wo steht das der Eintrag erfolgreich war.
Allerdings soll dann nach 5 Sekunden eine Weiterleitung erfolgen. Die Weiterleitung klappt mit header() wenn ich ob_start() und ob_end_flush() benutze. Nur das mit sleep() will nicht so wirklich.
Hier erstmal das Skript (habe einige Überprüfung über die Formularfelder rausgelassen, die if-Anweisung würden jetzt hier keine Rolle spielen):
Quellcode
- define('GLOBAL_INCLUDED', true);
- $vegb_root_path = dirname(__FILE__);
- require $vegb_root_path.'/global.php';
- ob_start();
- $information = false;
- $entry_added = false;
- if(isset($_POST['add_entry_submit']))
- {
- $addEntry = $gbook->addEntry($entry['entry_name'], $entry['entry_text'], $entry['entry_mail'], $entry['entry_website'], $entry['entry_IP']);
- if($addEntry == true)
- {
- $information = true;
- $information_text = $language['ADD_ENTRY_SUCCESSFULL'];
- $entry_added = true;
- }
- else
- {
- $information = true;
- $information_text = $language['ADD_ENTRY_ERROR'];
- }
- $smarty->assign($entry);
- }
- if($information)
- {
- $smarty->assign('information', $information);
- $smarty->assign('information_text', $information_text);
- }
- $smarty->display('entry.tpl');
- if($entry_added)
- {
- sleep(5);
- header('Location: index.php');
- ob_end_flush();
- }
Wenn der Beitrag erfolgreich hinzugefügt wurde, wird $entry_added auf true gesetzt. Nach dem Smarty das Template ausgibt soll überprüft ewrden ob $entry_added true ist und demnach 5 Sekunden warten und auf index.php umleiten.
Das Problem ist nun: Sobald ich auf absenden drücke, lädt er 5 Sekunden lang und ich werde direkt auf index.php geleitet ohne das die Ausgabe kam, das der Beitrag hinzugefügt wurde. Nachdem der Text darsteht soll das Skript 5 Sekunden warten und dann erst weiterleiten.
Ich hab schon ausprobiert sleep(5); vor der if-Schleife zu setzen allerdings wartet er dann IMMER 5 Sekunden bevor er das Template ausgibt.
Weis einer wie ich das regeln kann?
Vielen Dank und fröhliche Weihnachten!