Kevinst Geschrieben 17. November 2004 Teilen Geschrieben 17. November 2004 Hallo, Ich habe folgendes Problem ich übergebe Daten aus einem Formular an eine php Datei und möchte diese dann in eine Datenbank schreiben aber ich bekomme jedes mal diese --> Parse error: syntax error, unexpected T_STRING in C:\apachefriends\xampp\htdocs\projekt\log.php on line 18 Fehlermeldung! Kann mir jemand sagen woran das liegt? So sieht meine Datenbank aus: Typ NULL ID int(11) Nein Benutzername varchar(50) Nein Passwort varchar(50) Nein Vorname varchar(50) Nein Nachname varchar(50) Nein Mail varchar(100) Nein So Sieht mein Formular aus: <html> <head> <title>Registrierung</title> <style type="text/css"> <!-- .form { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; font-style: normal; line-height: normal; font-weight: bold; color: #CCCCCC; text-decoration: none; cursor: default; filter: Glow(Color=000000, Strength=70); } --> </style> <style type="text/css"> <!-- .button { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; color: #666666; } --> </style> </head> <body bgcolor="#2D3035"> <form action="log.php" method="POST" class=".form"> <table width="47%" border="0"> <tr class="form"> <td width="39%">Benutzername: </td> <td width="61%"> <input type="Text" name="Benutzername" value="" size="30" class=".form"></td> </tr> <tr class="form"> <td>Vorname: </td> <td> <input type="Text" name="Vorname" value="" size="30" class=".form"></td> </tr> <tr class="form"> <td>Nachname: </td> <td> <input type="Text" name="Nachname" value="" size="30" class=".form"></td> </tr> <tr class="form"> <td>E-Mail Adresse: </td> <td> <input type="Text" name="Mail" value="" size="30" class=".form"></td> </tr> <tr class="form"> <td>Kennwort: </td> <td> <input type="Password" name="Kennwort" value="" size="30" class=".form"></td> </tr> <tr class="form"> <td>Kennwort wiederholen: </td> <td> <input type="Password" name="Kennwortwi" value="" size="30" class=".form"></td> </tr> <tr class="form"> <td><input type="Submit" name="gesendet" value="Registrieren" class=".button"> </td> </tr> </table> </form> </body> </html> So sieht meine php datei aus: <html> <title>Registrierung</title> <body> <?php $server="localhost"; $nutzer="root"; $kenn=""; mysql_connect($server,$nutzer,$kenn); mysql_select_db("database"); $Benutzername=$HTTP_POST_VARS[benutzername]; $Vorname=$HTTP_POST_VARS[Vorname]; $Nachname=$HTTP_POST_VARS[Nachname]; $Mail=$HTTP_POST_VARS[Mail]; $Kennwort=$HTTP_POST_VARS[Kennwort]; $Kennwortwi=$HTTP_POST_VARS[Kennwortwi]; INSERT INTO login (Benutzername, Vorname, Nachname, Mail, Kennwort) VALUES ('$Benutzername', '$Vorname', '$Nachname', '$Mail', '$Kennwort' ); ?> </body> </html> Kann mir da jemand helfen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
robotto7831a Geschrieben 18. November 2004 Teilen Geschrieben 18. November 2004 Hallo, ich würde sagen das hat weniger mit der DB zu tun. Eine Frage das insert into steht nicht wirklich so in der Datei drin oder? Wo ist mysql_query? Frank Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
firewalker... Geschrieben 18. November 2004 Teilen Geschrieben 18. November 2004 Hallo: Probier mal die Zeilen: INSERT INTO login (Benutzername, Vorname, Nachname, Mail, Kennwort) VALUES ('$Benutzername', '$Vorname', '$Nachname', '$Mail', '$Kennwort' ); .. mit denen mysql_query("INSERT INTO login (Benutzername, Vorname, Nachname, Mail, Kennwort) VALUES ('".$Benutzername."', '".$Vorname."', '".$Nachname."', '".$Mai."', '".$Kennwort."' .. zu ersetzen. Hab die Syntax jetzt nicht genau überprüft... kann sein das noch klein Fehler drinne sind.. ABer die wirst du schon ausbügeln können. Gruß, Tim Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 18. November 2004 Teilen Geschrieben 18. November 2004 also der fehler ist definitiv kein SQL-Query fehler. Laut fehlermeldung müsstest du wie meine Vorredner schon sagten, ein Syntaxfehler im PHP Script selbst sein Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
KantE Geschrieben 18. November 2004 Teilen Geschrieben 18. November 2004 hallo! kann sein dass ich mich jez irre, aber muss nicht bei $HTTP_POST_VARS[''] die zwei einzelnen ' ' hin? oder kann man die weglassen? also ich meine jez z.b. $HTTP_POST_VARS['form_feld']; Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
FMG Geschrieben 18. November 2004 Teilen Geschrieben 18. November 2004 @KantE Man kann beides benutzen, muss die jeweilige Variante nur fehlerfrei schreiben. Heutzutage sollte man allerdings der Sicherheit wegen _nur_ $_POST[variablenname] benutzen (siehe Link weiter unten)! @Kevinst Zuerst einmal solltest du anstatt $_HTTP_POST_VARS{'variablenname'] nur $_POST['variablenname'] nehmen - siehe hier. Dann kann die Abfrage wenn dann auch nur so funktionieren (habs mal sicherer gemacht): <?php if(isset($_POST[gesendet])) { $server = "localhost"; $user = "root"; $kenn = ""; $db = "database"; mysql_connect($server, $user, $kenn); mysql_select_db($db) mysql_select_db($db); $sql = "INSERT INTO login (Benutzername, Vorname, Nachname, Mail, Kennwort) VALUES ('$_POST[Benutzername]', '$_POST[Vorname]', '$_POST[Nachname]', $_POST[Mail]', '$_POST[Kennwort]')"; mysql_query($sql); if(!mysql_error()) echo "Daten erfolgreich eingetragen"; else echo mysql_error(); } else header("Location: formular.html"); ?>[/php] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Kevinst Geschrieben 18. November 2004 Autor Teilen Geschrieben 18. November 2004 Hallo, Ich habe eine php datei und wenn ich diese öffne bekomme ich folgende Fehlermeldung -->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 1 Ich benutze einen Apacheserver von XAMPP Dies ist meine php datei: <?php if(isset($_POST[gesendet])) { $server = "localhost"; $user = "root"; $kenn = ""; $db = "database"; mysql_connect($server, $user, $kenn); mysql_select_db($db); $sql = "INSERT INTO login (Benutzername, Vorname, Nachname, Mail, Kennwort) VALUES ('$_POST[benutzername]', '$_POST[Vorname]', '$_POST[Nachname]', $_POST[Mail]', '$_POST[Kennwort]')"; mysql_query($sql); if(!mysql_error()) echo "Daten erfolgreich eingetragen"; else echo mysql_error(); } else header("Location: formular.html"); ?> Kann mir da jemand helfen? Ich sehe den Fehler einfach nicht! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
FMG Geschrieben 18. November 2004 Teilen Geschrieben 18. November 2004 Hä? Du hättest doch in deinem alten Thread weiterschreiben können!? Im Code fehlt vor $_POST[Mail] ein Hochkomma. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Wolle Geschrieben 18. November 2004 Teilen Geschrieben 18. November 2004 Beide zusammen gebaut Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 19. November 2004 Teilen Geschrieben 19. November 2004 wenn du mit einem Array arbeitest dann solltest du das anders verketten: $sql = "INSERT INTO login (Benutzername, Vorname, Nachname, Mail, Kennwort) VALUES ('". $_POST['Benutzername'] ."', '". $_POST['Vorname'] ."', '". $_POST['Nachname']. "', ". $_POST['Mail'] ."', '". $_POST['Kennwort'] ."')"; [/PHP] Array indizes am besten immer mit Einfachen/Doppelte-Hochkommas angeben z.b. so: [PHP] $a = $_POST['var']; $a = $_POST["var"]; nicht so: $a = $_POST[var]; [/PHP] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ssambdar Geschrieben 19. November 2004 Teilen Geschrieben 19. November 2004 Versuch's im PHP-Code so: <?php $server="localhost"; $nutzer="root"; $kenn=""; $db = mysql_connect($server,$nutzer,$kenn); mysql_select_db("database", $db); [...] [/PHP] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 19. November 2004 Teilen Geschrieben 19. November 2004 naja die variablennamen sind aber ungünstig gewählt in deinem Beispiel. Das könnte schnell zu verwechslungen führen.... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
FMG Geschrieben 19. November 2004 Teilen Geschrieben 19. November 2004 @kills Sicher ists richtiger mit Hochkommas / Anführungszeichen zu arbeiten, allerdings klappen beide Varianten. Vorteil der Variante ohne Hochkommata bzw. Anführungszeichen ist, dass man sich nicht so schnell vertippen kann. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 23. November 2004 Teilen Geschrieben 23. November 2004 @kills Sicher ists richtiger mit Hochkommas / Anführungszeichen zu arbeiten, allerdings klappen beide Varianten. Vorteil der Variante ohne Hochkommata bzw. Anführungszeichen ist, dass man sich nicht so schnell vertippen kann. da kann ich absolut nicht zustimmen! dazu gabs auch schonma nen thread, einfach ma suchen. ohne hochkommas, kann in manchen fällen zu fehl interpretationen führen.... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
FMG Geschrieben 23. November 2004 Teilen Geschrieben 23. November 2004 Du meinst diesen? Hier gehts aber darum, ob $_POST['variable'] oder $_POST[variable] richtig ist...und nicht, ob man '" bzw. "' schreiben sollte. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 23. November 2004 Teilen Geschrieben 23. November 2004 Du meinst diesen? Hier gehts aber darum, ob $_POST['variable'] oder $_POST[variable] richtig ist...und nicht, ob man '" bzw. "' schreiben sollte. nein hab ich nicht gemeint! ich kann den Tread aber grad auch nicht finden @kills Sicher ists richtiger mit Hochkommas / Anführungszeichen zu arbeiten, allerdings klappen beide Varianten. Vorteil der Variante ohne Hochkommata bzw. Anführungszeichen ist, dass man sich nicht so schnell vertippen kann. Also ich hab das jetzt so verstanden, dass wenn ich $_POST[abc] schreibe kann ich mich nicht so schnell vertippen als wenn ich $_POST['abc'] bzw $_POST["abc"] schreibe, was ich für schwachsinn halte Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
FMG Geschrieben 24. November 2004 Teilen Geschrieben 24. November 2004 Äh, nee, sorry, hatte mich verschrieben Es geht mir um $sql = "INSERT INTO login (Benutzername, Vorname, Nachname, Mail, Kennwort) VALUES ('". $_POST['Benutzername'] ."', '". $_POST['Vorname'] ."', '". $_POST['Nachname']. "', ". $_POST['Mail'] ."', '". $_POST['Kennwort'] ."')"; [/php] versus [php] $sql = "INSERT INTO login (Benutzername, Vorname, Nachname, Mail, Kennwort) VALUES ('$_POST[Benutzername]', '$_POST[Vorname]', '$_POST[Nachname]', '$_POST[Mail]', '$_POST[Kennwort]')"; auf erste Variante bezog sich das Vertippen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 24. November 2004 Teilen Geschrieben 24. November 2004 Äh, nee, sorry, hatte mich verschrieben Es geht mir um $sql = "INSERT INTO login (Benutzername, Vorname, Nachname, Mail, Kennwort) VALUES ('". $_POST['Benutzername'] ."', '". $_POST['Vorname'] ."', '". $_POST['Nachname']. "', ". $_POST['Mail'] ."', '". $_POST['Kennwort'] ."')"; [/php] versus [php] $sql = "INSERT INTO login (Benutzername, Vorname, Nachname, Mail, Kennwort) VALUES ('$_POST[Benutzername]', '$_POST[Vorname]', '$_POST[Nachname]', '$_POST[Mail]', '$_POST[Kennwort]')"; auf erste Variante bezog sich das Vertippen. du magst recht haben mit dem vertippen, aber kann es in "deiner vereinfachten form" zu fehlern beim interpolieren kommen, da mann array keys mit strings anspricht! z.b. ungetestet! das hier gibt was anderes $sql = "INSERT INTO login (Benutzername, Vorname, Nachname, Mail, Kennwort) VALUES ('$_POST[Benutzername]', '$_POST[Vorname]', '$_POST[Nachname]', '$_POST[Mail]', '$_POST[Kennwort]')"; als dass.... define( 'Vorname', 535); $sql = "INSERT INTO login (Benutzername, Vorname, Nachname, Mail, Kennwort) VALUES ('$_POST[Benutzername]', '$_POST[Vorname]', '$_POST[Nachname]', '$_POST[Mail]', '$_POST[Kennwort]')";[/php] das der compiler beim parsen von $_POST[Vorname] zu erst nach einer Konstance "Vorname" sucht, und wenn er keine findet, das ganze nach String castet Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.