Gästebuch: Nach Variableübergabe sofortige Fehlermeldung

LiMessi

Grünschnabel
Morgen,

mein Problem:
Wenn ich auf die Gästebuchseite meiner Page gehe, steht direkt am Anfang schon die Fehlermeldung, die eigentlich kommen soll, wenn die E-Mail nicht ordnungsgemäß eingetragen wurde... Könnt ihr euch am besten mal selbst anschauen, link habe ich unten eingefügt... Unter Gästebuch...

Meine Page

Hier mal der PHP Code:

PHP:
<?php
				
				
				$neueintrag=$_POST["neueintrag"]; 	
				
					$name = $_POST["name"];
					$email = $_POST["email"];
					$homepage = $_POST["homepage"];
					$message = $_POST["message"]; 
					$spam = $_POST["spam"];
				if (ereg("^([a-zA-Z0-9\.\_\-]+)@([a-zA-Z0-9\.\-]+\.[A-Za-z][A-Za-z]+)$", $email)) 
				{
				// email-adresse OK
					if ($name == "" || $email == "" || $message == "")
					{
						echo("FEHLER: Name, E-Mail und Message m&uuml;ssen ausgef&uuml;llt sein...");
					}
					else
					{	
					
						if($neueintrag)
						{
						$id = time(); 

						
						
						
						
						$verbindung = mysql_connect("server", "user", "pw");
					
							if (!$verbindung)
							{
							echo "<br><center><b>-- keine Verbindung zur Datenbank --</b></center>";
							exit;
							}
					
							mysql_select_db("datenbank"); //Datenbank auswählen in die geschrieben werden soll
					
						
							{
							$sqlkommando = "INSERT INTO gaestebuch (id, name, email, homepage, message) VALUES ('$id', '$name', '$email', '$homepage', '$message')"; 
						
							mysql_query($sqlkommando) or die("Error: " . mysql_error());
						
							echo "Eintragung erfolgreich hinzugef&uuml;gt...<br><br>";
							}
						
							
					
						session_start();
						function encrypt($string, $key) 
						{
						$result = '';
						for($i=0; $i<strlen($string); $i++) 
						{
						   $char = substr($string, $i, 1);
						   $keychar = substr($key, ($i % strlen($key))-1, 1);
						   $char = chr(ord($char)+ord($keychar));
						   $result.=$char;
						}
						return base64_encode($result);
						}
						$sicherheits_eingabe = encrypt($_POST["sicherheitscode"], "29jfkd921");
						$sicherheits_eingabe = str_replace("=", "", $sicherheits_eingabe);
						if(isset($_SESSION['rechen_captcha_spam']) AND $sicherheits_eingabe == $_SESSION['rechen_captcha_spam'])
						{
						unset($_SESSION['rechen_captcha_spam']);
		
					
						$sqlkommando = "SELECT * FROM gaestebuch ORDER BY id DESC";
						
						$sqlanfrage = mysql_query($sqlkommando) or die("Error: " . mysql_error());
						
						while($daten = mysql_fetch_object($sqlanfrage))
						{   
							$datum = date("d.m.Y", $daten->id);
							$uhrzeit = date("H:i:s", $daten->id);
							echo "<b>" .($daten->name) . " schrieb am " . $datum . " um " . $uhrzeit . "</b><br>";
							echo "<b>E-Mail: " . $daten->email . "</b><br>";
							echo "<br>";
							echo "<b>Kommentar: </b><br>";
							echo nl2br($daten->message);
							echo "\n<br><br>\n";
						}
						}
						else
						{
							echo ("Der Sicherheitscode ist falsch!");
						}
						}
					}
				}
				else 
				{
				// email-adresse hat ein falsches format
					echo "Die E-Mail Adresse hat ein falsches Format";
				}  	
				?>

Gruß
Oli
 
Dann prüfe erst, ob das Formular überhaupt abgeschickt wurde.

PHP:
if( isset( $_POST["neueintrag"] ) )
{
    // formular verarbeiten
}
 
Du musst eine Bedingung schaffen die erfüllt werden muss bevor dein script ausgeführt wird wie z.b.
PHP:
if (isset($_POST['mein sende Button'])) {
jetzt das insert 
}
 
Du musst halt vorher überprüfen, ob jemand überhaupt schon Daten gesendet hat.
PHP:
if(isset($_POST["neueintrag"])){
     //code um die übergebenen variablen zu behandeln
    $name = $_POST["name"];
    $email = $_POST["email"];
    $homepage = $_POST["homepage"];
    $message = $_POST["message"];  

}


Mfg


Edit: Wengisten sind wir uns 3 einig, was geändert werden muss :D
 
Zurück