Probleme mit if

Kalma

Erfahrenes Mitglied
Hey,

ich habe ein Problem mit meiner If-Schleife.


Ich habe ein Registrierungs-Formular, was überpfrüft, ob felder leer sind. Wenn welche leer sind, gibt es ne Fehlermeldung.
Wenn alle Felder korrekt ausgefüllt wurden, soll es einen Eintrag in die DB machen, wenn nicht, nicht.

Nur, es macht auch einen Eintrag, wenn kein Feld, oder nur manche Felder ausgefüllt wurden.

Könnt ihr mir helfen?
Hier mein Script:
PHP:
<?php
//posten
$rang				= "User";
$nickname			= $_POST['nickname'];
$passwort1			= $_POST['passwort1'];
$passwort2			= $_POST['passwort2'];
$vorname			= $_POST['vorname'];
$nachname			= $_POST['nachname'];
$email				= $_POST['email'];
$homepage			= $_POST['homepage'];
$icq				= $_POST['icq'];
$registriert 		= date("d.m.Y");

//überpfrüfen
if (!isset($nickname, $passwort1, $passwort2, $vorname, $nachname, $email))
{
header ("location: index.php?section=registrieren&fehler=1");
}
//passwörter
if ($passwort1 != $passwort2)
{
header ("location: index.php?section=registrieren&pw=1");
}
//nickname
if ($nickname == "")
{
header ("location: index.php?section=registrieren&nick=1");
}
//email
if ($email == "")
{
header ("location: index.php?section=registrieren&mail=1");
}
//vorname
if ($vorname == "")
{
header ("location: index.php?section=registrieren&vor=1");
}
//nachname
if ($nachname == "")
{
header ("location: index.php?section=registrieren&nach=1");

} else {

//email anzeigen?
if (isset($_REQUEST['mail']))
{
 foreach($_REQUEST['mail'] as $mail)
  {
   $mail = 1;
  }
}
$User = "INSERT INTO
			user (`rang`, `nickname`, `passwort`, `vorname`, `nachname`, `email`, `homepage`, `icq`, `registriert`, `mail`)
		 VALUES
		 	('$rang', '$nickname', '$passwort1', '$vorname', '$nachname', '$email', '$homepage', '$icq', '$registriert', '$mail')";

if (mysql_db_query($DBName, $User, $Link))
{
header ("location: index.php?section=registrieren&reg=1");
} else {
header ("location: index.php?section=registrieren&regf=1");
}

} //else zuende
?>
 
Hallo,

David Flögel hat gesagt.:
ich habe ein Problem mit meiner If-Schleife.
Und ich habe ein Problem mit allen If-Schleifen, da es sie nämlich überhaupt nicht gibt.

Nur, es macht auch einen Eintrag, wenn kein Feld, oder nur manche Felder ausgefüllt wurden.
Ein Aufruf von [phpf]header[/phpf] verhindert nicht, dass das Skript weiter abgearbeitet wird. [phpf]exit[/phpf] oder [phpf]die[/phpf] sollten hier helfen.

Grüße,
Matthias
 
Dies verwende ich bei einer Weiterleitung in ein anderes Formular:

PHP:
if($_REQUEST["action"] == 'joinus'){	

if($_POST['vorname']==''){$kontakt = 1;  
echo	'Es wurde kein Vorname angegeben.<br>';}

// name, alter usw.

if($kontakt == 1){
echo'	<a href="index.php?file=joinus">Zurück</a><br>';}
else if($kontakt != 1){

// Mailfunktion und/oder Datenbankeintrag

}
 
Zurück