MySQL error in PHP Script
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
abhilfe
benutzername
code
dank
datenbank
ding
eintragen
funktion
gedanke
host
http
index
jemand
kleinen fehler
senden
server
syntax
url
vorname
-
kamm mir jemand helfen?
Warum bekomme ich mit diesem Script nur eine Fehlermeldung nach der anderen?
Habe die meisten Fehler schunn gefunden und behoben aber irgendwie geht es imer no ni.
index.html
<html> <head> <title>Los gehts</title> </head> <body> <form name="mitarbeiter" action="senden.php" method="post"> <font face=arial size=3> <b> Name: <input name="name" type="text" size="20" maxsize="20" value="Name"><br> Vorname: <input name="vorname" type="text" size="20" maxsize="20" value="Vorname"><br> <input type="submit" name="eintragen" value="Eintragen"> <input type="reset" name="abruch" value="Eingaben löschen"> </b> </font> </form> </body>
senden.php
<?php error_reporting(E_ALL); $host = "..."; // Server $user = "..."; // Benutzername $pass = "..."; // Passwort $db = "..."; // Datenbank-Name $link = mysql_connect($host, $user, $pass) or die ("Keine Verbindung zu der Datenbank möglich."); mysql_select_db($db, $link); $name= $_POST["name"]; $vorname= $_POST["vorname"]; mysql_query("INSERT INTO 'eintragen' (name, vorname) VALUES ('$name', '$vorname')") or die(mysql_error()); mysql_close();
Bitte um Hilfe MFG Mozie
Oh hier noch meine Feghlermeldung:
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 ''eintragen' (name, vorname) VALUES ('Name', 'Vorname')' at line 1
Beitrag zuletzt geändert: 29.8.2009 11:04:55 von michaelkoepke -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Mir ist aufgefalen dass du 'eintragen' in einfache anführungszeichen packst, die MySQL anführungszeichen sehen aber so aus: ` eintragen ` , die brauchst du aber eigentlich auch nicht da der tabellenname kein leerzeichen beinhaltet
-
Ganz einfach, deine MySQL Abfrage enthält einen kleinen Fehler, bei Datenbanknamen, Tabellennamen und Spaltennamen verwendet man nicht einfachen Anführungszeichen ( ' ) sondern diese dinger: `
Somit würde die Abfrage so aussehen:
INSERT INTO `eintragen` (`name`, `vorname`) VALUES ('$name', '$vorname')
Hast du dir eigentlich schon mal über MySQL-Injections gedanken gemacht?
Bei deinem Script ist das Derzeit sehr leicht möglich, trag als Namen mal folgendes ein, dann sieht du was ich meine:
'#bla
Abhilfe schafft hier die php-Funktion mysql_real_escape_string. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage