das F5 problem

thehasso

Erfahrenes Mitglied
Hallo zusammen,


kennt ihr das auch? ihr habt eine Pinnwand bzw. ein Gästebuch und verschickt eine nachricht, die nachricht wird in der Pinnwannd eingetragen und möchtet euch den Eintrag ansehen durch die Taste F5 sprich indem ihr die Seite Aktualisiert.

Und plötzlich steht:

http://www.bilder-space.de/show.php?file=28.073vLSg0qYPElfjb8.jpg


Ich bin ratlos wie ich das Problem beheben kann, bedanke mich über jede hilfe.


Vielen Dank im voraus.

LG thehasso
 
Hi,

das ist ein ganz normaler Vorgang, da durch das erneute Abschicken derselben Seite auch dieselben Informationen übergeben werden, sprich die Formulardaten.

Verhindern kannst du das zum Beispiel dadurch, dass du nach dem Formular-Eintrag mittels der header()-Funktion auf die Startseite umleitest.
 
achsoo oki anstatt der Starseite umzuleiten geht das dann auch auf der selben Seite die umleitung stattfindet?

Soweit ich weiß muss die Headerfunktion ganz oben geposted werden über dem Code so würde eine Umleitung nach abschicken des Formulars nicht funktionieren oder irre ich mich da? Weil erst die Umleitung stattfindet, da der code von oben nach unten gelesen wird.


LG thehasso
 
Doch, die Weiterleitung funktioniert. Es darf nur keine Ausgabe wie Text, ein Leerzeichen oder HTML-Tags, stattgefunden haben!

Gruß
 
Das liegt aber vor, es handelt sich dabei um keine Leere Datei. Das ist eine Datei die eine Pinnwand enthält da sind ne Menge ausgaben und ein Menge Code inkl. Leerzeichen u.a. drin.

Also ist die Headermethode nicht nützlich?


In studivz funktioniert das auch und da sind im ganzen Profil ausgaben. Ist das da nicht mit der Headerfunktion gemacht ?
 
Wie gesagt, wenn der header vor den Ausgaben gesendet wird, ist völlig egal, was danach noch an Code kommt. Der User ist dann schon lange "weg"!

Pack zur Sicherheit immer noch ein exit; dahinter:
Code:
header("Location: http://domain.de/seite.php");
exit;
 
Ach ne hab mich vertan das kommt nur bei der Taste F5 die Meldung das es nochmal in der DB eingeschrieben wird. Also das der eintrag nocheinmal gespeichert wird wenn man nicht auf Abbrechen klickt. Der Eintrag wird nach eintragen sofort angezeigt. NUR wenn man F5 klickt kommt diese blöde Meldung:


So nun hab ich das jetzt so versucht:

PHP:
	if ($eintrag != NULL ) {

	$sql = "INSERT INTO mein_gaestebuch (" ;
	$sql .= "meine_id, " ;                          
	$sql .= "Vorname, " ;
	$sql .= "Nachname, " ;
    $sql .= "seine_id, " ; 
	$sql .= "eintrag, " ; // dient zur ordentlichen ausgabe!
	$sql .= "datum, " ; // dient zur ordentlichen ausgabe!
	$sql .= "zeit" ; // dient zur ordentlichen ausgabe!
    $sql .= ") VALUES (" ;
	$sql .= "'" . mysql_real_escape_string($meine_id). "', " ;  
	$sql .= "'" . mysql_real_escape_string($Vorname). "', " ;
	$sql .= "'" . mysql_real_escape_string($Nachname) . "', " ;
    $sql .= "'" . mysql_real_escape_string($seine_id). "', " ;
	 $sql .= "'" . mysql_real_escape_string($eintrag). "', " ;
	 $sql .= "'" . mysql_real_escape_string($datum). "', " ;
	 $sql .= "'" . mysql_real_escape_string($zeit). "' " ;
    $sql .= ")" ;
    
   // echo "SQL: " . $sql . "<br>" ;
    echo "Eintrag gespeichert!";
    mysql_query($sql);


$weiterleitung = "http://localhost/meinprojekt/Templates/profil.php?id=$nummer1";

header("Location: " . $weiterleitung );
exit;

	}

Jedoch erfolgt eine Fehlermeldung:

Warning: Cannit modify header information - headers already sent by (output started at .... user_online.php:8) in profil.php line 1789

Ich kann nichts damit anfangen weil in der datei useronline in der line 8 nichts besonderes steht außer: <?php


Warum spinnt denn jetzt das ganze?
 
Zuletzt bearbeitet:
Es reicht schon wenn Leerzeichen, Zeilenumbrücke o.ä. ausgegeben wurden. Mitunter handelt es sich auch um eine Fehlermeldung oder ein Warning. Es kann auch in einer Include Datei Ausgabezeichen geben.
 
Zurück