Formular: Meldungen anzeigen

smyle

Erfahrenes Mitglied
Hallo ich habe ein Problem mit einem Formular.

Im HTML habe ich folgendes:
HTML:
<form name="gaestebuchform" method="POST" action="guestbook/insert.php">
Das heisst wenn der Submit Button gewählt wurde wird man auf insert.php weitergeleitet.
Dort wird überprüft ob alle eingaben stimmen und wenn nicht wird eine Meldungen in folgender Form angezeigt. Hier der Code:
PHP:
if(isset($_POST['send']))
{
  $nachname = PostVar("Name");
  $anzeigename = PostVar("Anzeigename");
  $ort = PostVar("Ort");
  $homepage = $_POST['Homepage'];
  $vorname = PostVar("Vorname");
  $geb = PostVar("Geburtsdatum");
  $plz = PostVar("PLZ");
  $mail = PostVar("Mail"); 
  $titel = PostVar("titel");
  $text = PostVar("text");
  $link = $_SERVER['PHP_SELF'];
  $datum = date("j. n. Y"); 
  $uhrzeit = date("H:i:s");   
  $grenzwert = 1000; 
  $echo = "";
  if(!isset($userid)){$userid=Null;}

  //Die Seite mus sneu geladen werden.
  if(isset($_POST['Name'])){$_SESSION['Name'] = $nachname;}
  if(isset($_POST['Vorname'])){$_SESSION['Vorname'] = $vorname;}
  if(isset($_POST['Anzeigename'])){$_SESSION['Anzeigename'] = $anzeigename;}
  if(isset($_POST['Ort'])){$_SESSION['Ort'] = $ort;}
  if(isset($_POST['Homepage'])){$_SESSION['Homepage'] = $homepage;}
  if(isset($_POST['Geburtsdatum'])){$_SESSION['Geburtsdatum'] = $geb;}
  if(isset($_POST['PLZ'])){$_SESSION['PLZ'] = $plz;}
  if(isset($_POST['Mail'])){$_SESSION['Mail'] = $mail;}
  if(isset($_POST['titel'])){$_SESSION['titel'] = $titel;}
  if(isset($_POST['text'])){$_SESSION['text'] = $text;}  

  
  if((isset($_POST['Name']) && $_POST['Name'] != "Nachname") && (isset($_POST['Vorname']) && $_POST['Vorname'] != "Vorname") && 
  (isset($_POST['Anzeigename']) && $_POST['Anzeigename'] != "Anzeigename") && (isset($_POST['Geburtsdatum']) && $_POST['Geburtsdatum'] != "Geburtsdatum") && 
  (isset($_POST['Mail']) && $_POST['Mail'] != "E-Mailadresse")/* && (check_email_address($_POST['Mail']) == 1)*/)
	{
	 if(check_date($_POST['Geburtsdatum'],"dmY",".")) // Überprüft Datumformat
	 {   
		if(strlen($text) > $grenzwert) 
		{
		  $text = substr($text,0,$grenzwert);		  
		  $echo.="Es sind nur maximal 1000 Zeichen erlaubt. Bitte überprüfen sie ihre Eingabe. <br>";
		} 
		else 
		{ 		 
		 $date = check_year($geb );
		if($date === 2)
		{
		 $_SESSION['echo'] = "";
		 $echo.="Eingabe wurde nicht gespeichert.<br>Überprüfen sie das Datum.<br>";
		}
		else if($date === 3)
		{
		 $_SESSION['echo'] = "";
		 $echo.="Eingabe wurde nicht gespeichert.<br>Sie müssen mindestens 12 Jahre alt sein.<br>";
		}		 
		else if($date == true)
		 {
		  $_SESSION['echo'] = ""; 
		  $_SESSION['Name'] = "";
		  $_SESSION['Vorname'] = "";
		  $_SESSION['Anzeigename'] = "";
		  $_SESSION['Ort'] = "";
		  $_SESSION['Homepage'] = "";
		  $_SESSION['Geburtsdatum'] = "";
		  $_SESSION['PLZ'] = "";
		  $_SESSION['Mail'] = "";
		  $_SESSION['titel'] = "";
		  $_SESSION['text'] = "";
		
		  $query = "INSERT INTO `guestbook` (`Account_ID`, `Nachname`, `Vorname`, `Anzeigename`, `Geburtsdatum`, `Ort`, `PLZ`, `Homepage`, `E-Mail`, `Titel`, `Text`, `date`, `time`) VALUES ('".$userid."', '".$nachname."', '".$vorname."', '".$anzeigename."', '".$geb."', '".$ort."', '".$plz."', '".$homepage."', '".$mail."', '".$titel."', '".$text."', '".$datum."', '".$uhrzeit."');";
		  mysql_query($query);
		  $echo.="Eingabe wurde gespeichert.<br>";
		  $_SESSION['test'] = "OK";
		}
		else{$echo.="Eingabe wurde nicht gespeichert.<br>";}
	  }
	 }
	 else { $echo.="Bitte überprüfen Sie Ihr Datum!<br>";}
	}
	else
	{	
	 echo"<div style='margin:5px;'><p style='height:10px;'></p>";
	 if($_POST['Name'] == "Nachname" && $_POST['Vorname'] == "Vorname"){$echo.="Bitte Nach- und Vorname eingeben. Beide sind für die Besucher nicht sichtbar.<br>";}
	 if($_POST['Name'] == "Nachname" && $_POST['Vorname'] != "Vorname"){$echo.= "Bitte Nachname eingeben. Der Nach- und Vornamen sind für die Besucher nicht sichtbar.<br>";}
	 if($_POST['Vorname'] == "Vorname" && $_POST['Name'] != "Nachname"){$echo.= "Bitte Vorname eingeben. Der Nach- und Vornamen sind für die Besucher nicht sichtbar.<br>";}
	 if($_POST['Anzeigename'] == "Anzeigename"){$echo.="Bitte einen Anzeigenamen eingeben.<br>";}
	 if($_POST['Geburtsdatum'] == "Geburtsdatum"){$echo.="Bitte Geburtstag im Format tt.mm.jjjj eingeben.<br>";}
	 if( $_POST['Mail'] == "E-Mailadresse"){$echo.="Bitte E-Mailadresse eingeben. Diese ist für die Besucher nicht sichtbar.<br>";}
//	 if(check_email_address($_POST['Mail']) != 1){echo 'Bitte überprüfen Sie Ihre E-Mailadresse!<br>';}
	 echo"</div>";
	}

	$_SESSION['echo'] = $echo;
	echo "<meta http-equiv='refresh' content='0; url=../guestbook.html'>";
}

Die Meldung ist zuunterst $_Session[‚echo‘].

Das Problem, das Session echo wird nach der Weiterleitung zu guestbook.html nicht mehr angezeigt. Es ist einfach leer.

Ich musste das mit den beiden Dateien machen, da sonst mit F5 immer wieder denselben Eintrag eingetragen wird.

Hat jemand eine Lösung?
 
:S Ein blöder Fehler… Ich hatte den Session_start(); in meiner ersten Datei, aber in der zweiten nicht.

Danke für den Link und für den Tipp..

Gruss
Smyle
 
Zurück