Anmeldeformular mit DB vergleichen

jupiter01

Mitglied
Hallo,

ich habe ein Anmeldeformular das Daten in die SQL Datenbank einträgt. Nun ist mein Problem dass, das Formular bei Senden nicht überprüft, ob der Benutzer bereits in der DB ist.

Ich habe schon im Internet gesucht (z.b. Google) aber nichts gefunden oder es funktioniert nicht. Es muss doch einen Code geben mit dem sich das überprüfen lässt?
 
Das hängt erst mal davon ab welche Daten du speicherst.

Wenn bei den Benutzerdaten zum Beispiel die eMail Adresse angegeben wird, dann könntest du zuerst abfragen ob diese eMail Adresse bereits in der DB vorhanden ist.

Wenn JA gib eine Meldung aus, wenn NEIN werden die Daten gespeichert.

Genauso ist es wenn man sich wie hier mit einem bestimmten Benutzernamen anmeldet. Dann eben mach eine Abfrage auf den Benutzernamen.

Gruß Thomas
 
Also ich frage folgende Daten ab:

E-Mail
Klamm-ID
Benutzername
Passwort

Bein Absenden wird nur nicht überprüft, ob die Daten bereits vorhanden sind.

Es war schon mit dem Anmeldeformular schwer für mich, weil ich nicht so der PHP kenner bin. Kannst du mir nicht so einen Code posten oder vielleicht einen Teil, so das ich weiß wie sowas aussieht?

--------

Wie man die Formulareingaben überprüft ab alles ausgefüllt worden ist weiß ich. Das mache ich mit Java.
 
Das hängt erst mal davon ab welche Daten du speicherst.

Wenn bei den Benutzerdaten zum Beispiel die eMail Adresse angegeben wird, dann könntest du zuerst abfragen ob diese eMail Adresse bereits in der DB vorhanden ist.

Wenn JA gib eine Meldung aus, wenn NEIN werden die Daten gespeichert.

Genauso ist es wenn man sich wie hier mit einem bestimmten Benutzernamen anmeldet. Dann eben mach eine Abfrage auf den Benutzernamen.

Gruß Thomas

Kann dem nur zustimmen das ist eine Lösung dafür - so würde ich es machen und habe ich es auch schon mal gemacht...

PHP:
# Prüfen ob die EMail adresse schon in der DB ist

// Hier wird die Verbindung zu der Datenbank hergestellt
	$db_user = 'pizza';
	$db_pass = 'pizza';
	$db_host = 'localhost';
// Verbinden
	$dblink = mysqli_connect($db_host, $db_user, $db_pass);
	$selected = mysqli_select_db($dblink, 'pizza');
	
	if (!$selected) {
	die ('Cannot use DB : '.mysqli_error($dblink));
	}
	
	mysqli_set_charset($dblink, 'utf8');

// Hier beginnt der Vergleich
$mail = ($_POST['mail']); 

$sql = "SELECT * FROM pizza.kunde WHERE mail LIKE '".$mail."' LIMIT 1";
$result = mysqli_query($dblink,$sql);

// Hier wird eine Fehlermeldung ausgegeben wenn die Adresse bereits vorhanden ist
if ( $result ) {
	while ($row = mysqli_fetch_array($result,MYSQL_ASSOC)) {
	if ($row['mail'] == $mail){$error['mail2']=1;}}
}

Also bei meinem Beispiel ist der Benutzername gleich die Mail-Adresse
 
Danke für den Code. Damit ich das richtig verstehe, muss ich zuerst überprüfen, ob die E-Mail Adresse gültig ist?

Aber wie überprüft man alle Felder mit der DB.

Ich hab ja gesagt dass, ich nicht viel Ahnung von PHP habe. Anleitungen gibt es ja leider keine.
 
Danke für den Code. Damit ich das richtig verstehe, muss ich zuerst überprüfen, ob die E-Mail Adresse gültig ist?

Aber wie überprüft man alle Felder mit der DB.

Ich hab ja gesagt dass, ich nicht viel Ahnung von PHP habe. Anleitungen gibt es ja leider keine.

Überprüfen ob eine Mail-Adresse gültig ist, sollte man immer - generell sollte man alle Daten die ein User eingibt checken ob es einen Sinn macht.

in diesem Bsp vergleiche ich nur die Mail adresse mit der datenbank. Versuch doch einfach mal den Code umzuschreiben...

{$error['mail2']=1;}} solltest du aber in ein echo() umschreiben, da er bei dir sicher nix ausgibt ;)

könnte so aussehn:
PHP:
if ($row['mail'] == $mail){echo(Die E-Mail Adresse wird bereits verwendet)}
 
Aha.

http://lmgtfy.com/?q=mysql+felder+prüfen

Gleich der zweite Treffer. Und ich hab mir nichtmal mühe gegeben bei der Suche.

Dieses Wort habe ich nicht gesucht. Trotzdem funktioniert das in dem 2. Link nicht.

Ich glaube ich werde hier mal den Code vom Anmeldeformular posten:
PHP:
$host = "localhost"; $user = "irgendwas"; $passwd = "pwd"; $Email = $_POST['Email']; $Klammid = $_POST['Klammid']; $Benutzername = $_POST['Benutzername']; $Kennwort = $_POST['Kennwort']; $db=mysql_connect($host, $user, $passwd) or exit ("Keine Verbindung hergestellt!"); mysql_select_db("datenbank") or exit ("Datenbank nicht geöffnet!"); $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); ?><br><br /><br /><br />
 
Ich ahbe gerade was zusammengefügt, funktioniert aber nicht. Daten werden zwar in die DB eingetragen aber nicht geprüft.

PHP:
<?
$host = "localhost"; $user = "irgendwas"; $passwd = "pwd";

$result_Email = mysql_query("SELECT id FROM irgendwas WHERE Email LIKE '$Email'");
$result_Klammid = mysql_query("SELECT id FROM irgendwas WHERE Klammid LIKE '$Klammid'");
$result_Benutzername = mysql_query("SELECT id FROM irgendwas WHERE benutzername LIKE '$Benutzername'");
$result_Kennwort = mysql_query("SELECT id FROM irgendwas 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:
1, 0.  

$host = "localhost"; $user = "irgendwas"; $passwd = "pwd"; $Email = $_POST['Email']; $Klammid = $_POST['Klammid']; $Benutzername = $_POST['Benutzername']; $Kennwort = $_POST['Kennwort']; $db=mysql_connect($host, $user, $passwd) or exit ("Keine Verbindung hergestellt!"); mysql_select_db("datenbank") or exit ("Datenbank nicht geöffnet!"); $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); ?><br><br /><br /><br />


</body>
</html>

<? $db->close() ?>
 
Zuletzt bearbeitet:
Zurück