Formular Bestätigungsseite - Wie bei PHP?

JavaMaddin

Mitglied
Hallo habe das Problem bei meinem Gästebuch dass ich nicht genau weiß wo wie ich die Bestätigungsseite einbinden soll, bzw. dass er wieder zurück zum Gästbuch kommt.
Es erscheint nach erfolgreichem Absenden immer ein leerer main-Content (der header und footer ist da!).

Also hier die Auszüge meiner Dateien:
index.php - hier wird z.b. die gbuch.php eingebunden was auch klappt
PHP:
if (isset($_GET['content']) AND isset($content[$_GET['content']])){
	include $content[$_GET['content']];
} else {
	include $content['start'];
}
include ("inc/main_footer.php");

gbuch.php - hier wird beim absenden die Funktion "f_eintrag_erstellen() aufgerufen
PHP:
if (isset($_GET['action'])) {
	switch ( $_GET['action'] ) {
		case 'eintragen':
			$name = $_POST['name']; $titel = $_POST['titel']; $text = $_POST['text'];
			if (!empty($name) && !empty($titel) && !empty($text)) {
				f_eintrag_erstellen($name, $titel, $text); break;
...

func.php - hier ist die Funktion drin. Aber ich bin mir sicher dass es nicht an dieser liegt. Die schickt nur nen MySQL-Query ohne Return-Wert.
Hab es auch schon mit einfügen des Inputfeldes:
<input type="hidden" name="success" value="index.php?content=gbuch"></input>
probiert. Passiert auch nichts.
 
Hi,

ein return (true/false) in der Funktion f_eintrag_erstellen() wäre gut, dann könnte man sowas machen:

PHP:
if (f_eintrag_erstellen($name, $titel, $text)) {
    header('Location: bestaetigungsseite.php');
}
else {
    header('Location: fehlerseite.php');
}
 
Danke, aber da kommt leider folgende Fehlermeldung:

Warning: Cannot modify header information - headers already sent by (output started at...

Vermutlich weil zuviel Code davor steht. Kein Ahnung?!

Noch jemand ne Idee?
 
Hi,

du könntest auch statt einen header zu senden einfach eine Bestätigungsseite per include() einbinden, also:

PHP:
if (f_eintrag_erstellen($name, $titel, $text)) { 
    include 'bestaetigungsseite.html'; 
} 
else { 
    include 'fehlerseite.html'; 
}
 
Das hatte ich am Anfang schon.
Das tritt das Phänomen auf, dass er unendlich viele Beiträge ins GB schreibt bis ich abbreche.
Dann muss ich erst immer ca. 500-1000 Einträge löschen.

Nächster Vorschlag bitte... ;)
 
So das ist meine gbuch.php:

PHP:
if (isset($_GET['action'])) {
	switch ( $_GET['action'] ) {
		case 'eintragen':
			$name = $_POST['name']; $titel = $_POST['titel']; $text = $_POST['text'];
			if (!empty($name) && !empty($titel) && !empty($text)) {
				if (f_eintrag_erstellen($name, $titel, $text)) {
					include 'gbuch.php';
				}
				else {
					include 'fehler.php';  
				break;

Und in der Form macht er ne endlosschleife in die DB.
Und ohne Include nur einmal und danach ne leere Seite.
 
Zurück