Anmeldeformular mit DB vergleichen

Ok, hier:

PHP:
// Zur überprüfung 
echo "$if_Email, $if_Klammid, $if_Benutzername, $if_Kennwort."; 
// Ausgabe, wenn beides schon vergeben: 

if (($if_Email + $if_Klammid + $if_Benutzername + $if_Kennwort) == 0) {
$sqlbef = "insert into tabelle (Email, Klammid, Benutzername, Kennwort) values ('$Email', '$Klammid', '$Benutzername', '$Kennwort')";
$sqlerg = mysql_query($sqlbef, $db) or die(mysql_error));
if ($sqlerg == true) echo"Anmeldung erfolgreich!");
} else {
echo"Anmeldung nicht erfolgreich! Bitte melden Sie sich nochmals an. Bei mehreren erfolglosen Anmeldungen kontaktieren Sie uns bitte. Vielen Dank!"; }
}
mysql_close($db);  
?>
 
Zuletzt bearbeitet:
Es funktioniert. Jedenfalls werden keine Daten doppelt in der DB eingetragen.

Aber es stört mich nun doch etwas. Und zwar, wenn sich jemand anmeldet mit z.B. den Daten

E-Mail: bla@bla.de
Klammid: 000000
Benutzername: hans
Passwort: 1234

und jetzt meldet sich ein zweiter an: (Passwort anders!!)

E-Mail: bla@bla.de
Klammid: 000000
Benutzername: hans
Passwort: 123

Man klickt nun absenden. Es kommt aber die Meldung:
Anmeldung nicht erfolgreich! Bitte melden Sie sich nochmals an. Bei mehreren erfolglosen Anmeldungen kontaktieren Sie uns bitte. Vielen Dank!

Diese Meldung kommt, weil E-Mail, Klammid und Benutzername bereits eingetragen sind.

Kann man den Code so verändern, dass man auch sieht, welche Daten in der DB bereits eingetragen sind? Also das eine Meldung ausgegeben wird mit. z.B. Benutzername bereits vorhanden.

Hier der ganze Code:
PHP:
<?php
$host = "localhost";
$user = "irgedwas";
$passwd = "pwd"; 

$db=mysql_connect($host, $user, $passwd) or exit ("Keine Verbindung hergestellt!");
mysql_select_db("datenbank") or exit ("Datenbank nicht geöffnet!");

$Email = $_POST["Email"];
$Klammid = $_POST['Klammid'];
$Benutzername = $_POST['Benutzername'];
$Kennwort = $_POST['Kennwort'];

$result_Email = mysql_query("SELECT Email FROM tabelle WHERE Email LIKE '$Email'"); 
$result_Klammid = mysql_query("SELECT Klammid FROM tabelle WHERE Klammid LIKE '$Klammid'"); 
$result_Benutzername = mysql_query("SELECT tabelle FROM tabelle WHERE benutzername LIKE '$Benutzername'"); 
$result_Kennwort = mysql_query("SELECT Kennwort FROM tabelle WHERE Kennwort LIKE '$Kennwort'"); 

$if_Email = mysql_num_rows($result_Email); 
$if_Klammid = mysql_num_rows($result_Klammid); 
$if_Benutzername = mysql_num_rows($result_Benutzername); 
$if_Kennwort = mysql_num_rows($result_Kennwort); 

// Zur überprüfung 
echo "$if_Email, $if_Klammid, $if_Benutzername, $if_Kennwort."; 
// Ausgabe, wenn beides schon vergeben: 

if (($if_Email + $if_Klammid + $if_Benutzername + $if_Kennwort) == 0) {
$sqlbef = "insert into tabelle (Email, Klammid, Benutzername, Kennwort) values ('$Email', '$Klammid', '$Benutzername', '$Kennwort')";
$sqlerg = mysql_query($sqlbef, $db) or die(mysql_error);
if ($sqlerg == true) echo"Anmeldung erfolgreich!";
} else {
echo"Anmeldung nicht erfolgreich! Bitte melden Sie sich nochmals an. Bei mehreren erfolglosen Anmeldungen kontaktieren Sie uns bitte. Vielen Dank!"; 
}
mysql_close($db);  
?>
 
Zuletzt bearbeitet:
PHP:
$if_Email
$if_Klammid
$if_Benutzername

Diese 4 Variablen solltest du dir anschauen.

Wenn zum Beispiel $if_Klammid größer 0 ist, dann ist die KlammID bereits vorhanden usw.
 
Ich kann leider nicht viel PHP und weiß daher auch nicht, wie man Meldungen ausgibt. Ich habe auch keine Ahnung wie ich das machen soll, deswgen habe ich mich ja an das Forum gewand.

Ich habe echt keine Ahnung wie das gehen soll. Habe heute die ganze Zeit im Netz gesucht. Ich habe aber keine Ahnung.

Nagut. vielen Dank erstmal für die Hilfe.
 
Zurück