if-Anweisung reagiert nach Test nicht mehr

Also umwandeln kannst du die Fehlermeldung nicht...soweit ich weiß.
Es müsste aber über die If Abfrage funktionieren.
Dort wird ja in die Variable $fehler = mysql_error(); die Fehlermeldung geschrieben.
In der If Abfrage wird dann geprüft ob die Variable $fehler eine leere Zeichenkette enthält oder nicht wenn nicht das heißt wenn ein Fehler aufgetreten ist kommt per echo die Meldung Ups du hast dich schon eingetragen.
Wenn du den Code so eingegeben hast müsste es eigentlich funktionieren.
Code:
if ($_POST['submit'])
{
 $sql = 'INSERT INTO verlosung(NAME, VORNAME, EMAIL) VALUES("'.$_POST['NAME'].'","'.$_POST['VORNAME'].'","'.$_POST['EMAIL'].'")';
&fehler = mysql_error()
if ($fehler !=' ' )
{
echo '<body bgcolor="#000000" text="#FFFFFF" style="font-family:Arial,Tahoma; font-size:10pt;"> Ups du hast dich schon eingetragen!</body>';
}

}
oder probier mal if ($fehler=mysql_error()  !=' ' )
 
Ja es funktioniert jetzt!

Danke :)

Stopp!! Jetzt zeigt bei jeder Eingabe die Fehlermeldung :S
 
Zuletzt bearbeitet:
Also ich glaube ich weiß wo der Fehler liegt.
Wenn du den Code so eingegeben hast wie ich es dir gesagt habe dann mach ganz am Anfang vom Skript nochmal
Code:
&fehler =' ';
.

Poste aber bitte nochmal deinen Code damit ich sehen kann wie du es umgesetzt hast...
 
Hey Fabian ich danke dir.

Hab das jetzt erstmal weggelassen. Und stattdessen eine neutrale Nachricht eingesetzt. Vllt ist es auch ganz gut manche Leute im Glauben zu lassen, dass sie sich öfter eingetragen haben.

Was mich jetzt noch stört. Die Datenbank lässt NULL-Einträge zu. also wenn man ein leeres Dokument losschickt, nimmt er selbst das als Datensatz zu, obwohl ich für jede Spalte NOT NULL angegeben hab. Ne Idee, wie ich das verhindern kann? Sowas wie: Die Felder müssen noch eingetragen werden.

Gab es da nicht ein required_insert() oder so ähnlich?
 
Ich weiss zwar nicht wer das Formular benutzt, aber grundsätzlich solltest du alle Benutzereingaben auf ihre Gültigkeit hin testen.

Das könnte z.B. so aussehen:
PHP:
	$name = empty($_POST['NAME'])?'':trim($_POST['NAME']);
	$vorname = empty($_POST['VORNAME'])?'':trim($_POST['VORNAME']);
	$email = empty($_POST['EMAIL'])?'':trim($_POST['email']);
	
	// Eingaben prüfen
	if ($name == '')
		$e[] = 'Kein Name angegeben.';
	if ($vorname == '')
		$e[] = 'Kein Vorname angegeben.';
	// Hier könnte man auch noch eine Regexp verwenden
	if ($email == '')
		$e[] = 'Emailadresse wurde nicht angegeben.';
	else {
		$rs = mysql_query("SELECT count(`id`) FROM `verlosung` WHERE `email` = '".mysql_real_escape_string($email)."'");
		$data = mysql_fetch_row();
		if ($data[0] > 0)
			$e[] = 'Die Emailadresse existiert bereits.';
	}
	
	
	// Falls ein Fehler aufgetreten ist, abbrechen
	if (isset($e)) {
		// Fehler ausgeben
	} else {
		// Datensatz in DB schreiben
		echo 'Sie haben sich erfolgreich eingetragen.';
	}
 
Zurück