Anmeldeformular mit DB vergleichen

Du benützt in der Abfrage z.b. die Variable $Email doch erst viel weiter unten wird dieser Variable der $_POST Wert übergeben.

Außerdem besteht an der Stelle wo du die Abfragen machst noch gar keine Verbindung zur Datenbank.


PHP:
$host = "localhost";
$user = "irgendwas";
$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 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.

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);

Nur mal den Code von dir ein bisschen verändert aber ungeprüft
Es muss auch noch geprüft werden ob alle Pflichtangaben gemacht wurden und es sollte auch noch was im Bereich Sicherheit gemacht werden.

Gruß Thomas
 
Danke für den umgeschriebenen Code. Habe diesen gerad getestet, aber nun funktioniert gar nix mehr. Wenn man das Formular abschickt, dann wird der PHP Code angezeigt.
 
du hast aber schon den code in die PHP-Klammern gesetzt oder?
PHP:
<?php // hier gehts los
// hier rein der Code
?> // hier ist Schluss
 
du hast aber schon den code in die PHP-Klammern gesetzt oder?
PHP:
<?php // hier gehts los
// hier rein der Code
?> // hier ist Schluss

Nein, dass hatte ich nicht gemacht, obwohl es ja klar sein müsste, das die Zeichen sein müssen. Ist ja fast überall so.

Habe es jetzt so gemacht, aber er spucke beim Absenden folgende Fehlermeldung aus.

Code:
Parse error: syntax error, unexpected '=' in pfad/blabla.php on line 2

Das = in Zeile 2 habe ich weggemacht, funktioniert aber denn auch nicht.
 
Zuletzt bearbeitet:
Habe mich da gerade nochmal rangesetzt.

Den Code habe ich jetzt so verändert

PHP:
<?php // 
// $host = "localhost";
$user = "irgendwas";
$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 benutzerdaten 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: 
1, 0. 

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);
?> //

Folgende Fehlermelkdung kommt:

Code:
Parse error: syntax error, unexpected ',' in /usr/export/www/hosting/thormann/loseverdienst/anmeldensenden.php on line 27

Ich habe keine Ahnung was das zu bedeuten hat :confused:
 
Die Fehglermeldung sagt aus, dass auf Zeile 27 ein unerwartetes , auftaucht.
Wenn ich mich nicht verzählt habe dürfte das diese Zeile sein:
PHP:
1, 0.

Lösche das raus und keine Fehlermeldung kommt mehr, vorallen da diese Zeile keine Funktion hat kannst du diese löschen.
 
Die Fehglermeldung sagt aus, dass auf Zeile 27 ein unerwartetes , auftaucht.
Wenn ich mich nicht verzählt habe dürfte das diese Zeile sein:
PHP:
1, 0.

Lösche das raus und keine Fehlermeldung kommt mehr, vorallen da diese Zeile keine Funktion hat kannst du diese löschen.


Ich habe die ganze Zeile entfernt und es gib ne neue Fehlermeldung:

Code:
Parse error: syntax error, unexpected '{' in pfad/blabla.php on line 28

Das ist diese Zeile:

PHP:
if (($if_Email + $if_Klammid + $if_Benutzername + $if_Kennwort) == 0 {

Nur wenn ich da das { entferne dann kommt diese Meldung:

Code:
Parse error: syntax error, unexpected T_VARIABLE in pfad/blabla.php on line 29

Zeile 29 sieht so aus:

PHP:
$sqlbef = "insert into tabelle (Email, Klammid, Benutzername, Kennwort) values ('$Email', '$Klammid', '$Benutzername', '$Kennwort')";
 
Zuletzt bearbeitet:
Der Fehler war nicht das { sondern hier:
Code:
if (($if_Email + $if_Klammid + $if_Benutzername + $if_Kennwort) == 0) {


Einfach die Fehlermeldung mal genauer anschauen:
Code:
Parse error: syntax error, unexpected '{' in pfad/blabla.php on line 28

Also ein unerwartetes {, und wieso? Weil das if nicht geschlossen war.
 
Hab was gelernt. ;)

if Anweisungen habe ich nun alle geschlossen.

Nun taucht ein weiterer Fehler auf in Zeile 30:

Die Code:
Code:
$sqlbef = "insert into tabelle (Email, Klammid, Benutzername, Kennwort) values ('$Email', '$Klammid', '$Benutzername', '$Kennwort')";

Die Meldung:
Code:
Parse error: syntax error, unexpected ')' in pfad/blabla.php on line 30
 
Hi,

der Fehler muss nicht immer genau in dieser Zeile sein. Schreib deswegen immer die betroffene Zeile und jeweils etwa 5 Zeilen Code über und unter dieser Zeile mit dazu.
 
Zurück