PHP Problem
Übersicht

Garfield12Betreff: PHP Problem |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo Leute,
ich hab mich nach langer Zeit mal wieder mit PHP und MySQL beschäftigt (Alsonciht nur mal Beispiele ausprobiert) Und ich wollte ein Anmeldeformular erstellen. Hier der Code: Code: [AUSKLAPPEN] <?
include("mysql.inc"); function PostVar($variablen_name) { $ergebnis = $_POST[$variablen_name]; if (get_magic_quotes_gpc()) $ergebnis = stripslashes($ergebnis); return trim($ergebnis); } $angemeldet = "angemeldet"; if ($angemeldet) { $name = PostVar("name"); $kennwort = PostVar("Kennwort"); $email = PostVar("eMail"); $status = $_POST['status']; } $fehler = ""; if (!empty($status)) { if (empty($name)) $fehler .= "Der name ist leer.<br> "; if (empty($kennwort)) $fehler .= "Das kennwort ist leer.<br>"; if (empty($email)) $fehler .= "Es wurde keine E-Mail angegeben.<br>"; } ?> <html> <head> <title>test - Neuen Account erstellen</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body> <div align="center"> <h1>Erstellen sie jetzt einen neuen Account, gratis!</h1> <p>Achtung mit einer Registrierung akzeptieren sie unsere <a href="agb.php">AGB</a>.</p> <? if ($fehler) echo "<p>$fehler</p>"; if ($status == "Eintragen") { $query = "INSERT INTO user SET name ='".addslashes($name)."', kennwort ='".addslashes($kennwort)."', eMail ='".addslashes($email)."', "; $sql = mysql_query($query) or die(mysql_error()); unset($name,$kennwort,$email,$status); } ?> </td> </tr> <tr> <td> <form method="post" action="anmeldung.php"> <input type="hidden" name="name" value="<?=$name?>"> <input type="hidden" name="kennwort" value="<?=$kennwort?>"> <table> <tr> <td><small><b>Username</b></small></td> <td><input type="text" name="name" value="<?=htmlentities($name)?>" style="width: 380px"></td> </tr> <tr> <td><small><b>Passwort</b></small></td> <td><textarea name="kennwort" style="width: 380px;"><?=htmlentities($kennwort)?></textarea></td> </tr> <tr> <td><small><b>eMail</b></small></td> <td><input type="text" name="eMail" value="<?=htmlentities($email)?>" style="width: 380px"></td> </tr> <tr> <td></td> <td> <input type="submit" name="status" value="Eintragen"> </td> </tr> </table> </form> </td> </tr> </table> </body> </html> Das klappt soqweit gut, aber sobald ich auf "Eintragen" klicke bekomme ich diese Fehlermeldung, mit der ich nichts anfangen kann: Zitat: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 4
Die Struktur meiner MySQL-Datenbank "user" sieht so aus: Zitat: id smallint(5) Nein auto_increment Ändern Löschen Primärschlüssel Index Unique Volltext
name varchar(255) latin1_german1_ci Nein Ändern Löschen Primärschlüssel Index Unique Volltext Kennwort varchar(50) latin1_german1_ci Nein Ändern Löschen Primärschlüssel Index Unique Volltext eMail varchar(255) latin1_german1_ci Nein Ändern Löschen Primärschlüssel Index Unique Volltext Vielleicht wisst ihr ja mehr. MfG Yannik |
||
FWeinbehemals "ich" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nach grobem Überfliegen ist hier ein Komma zu viel:
Code: [AUSKLAPPEN] if ($status == "Eintragen") { $query = "INSERT INTO user SET name ='".addslashes($name)."', kennwort ='".addslashes($kennwort)."', eMail ='".addslashes($email)."', "; $sql = mysql_query($query) or die(mysql_error()); unset($name,$kennwort,$email,$status); } Nach addslashes($email)."',"; das , hat da nix zu suchen. Ich würde die Zeile so schreiben: Code: [AUSKLAPPEN] $sql = mysql_query("INSERT INTO user SET name = '$name', kennwort='$kennwort', eMail = '$email'"); Hatte damit noch nie Probleme. mfg ich |
||
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs |
Garfield12 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@ich :
super danke es klaptt wunderbar, allerdings wird das Passwort jetzt immer als leer angemängelt. ~edit:~ Es geht wieder, ich habe ein K groß geschreiben welches klein geschrieben werden sollte. |
||
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Benutzte besser die Funktion mysql_real_escape_string() anstatt addslashes() bei den Queries. | ||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group