hilfdirselbst.ch
Facebook Twitter gamper-media
TrinCyber
Beiträge: 5
11. Jan 2005, 20:39
Beitrag #1 von 6
Bewertung:
(975 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Datensatz einfügen klappt nicht


Hallo

ich habe folgendes Problem:

ich möchte über ein Formular (datei2.php) Werte in eine SQL Tabelle einfügen. Dazu steht die Zeile:



PHP:--------------------------------------------------------------------------------
mysql_query("INSERT INTO `$tabellenname` VALUES (' ', '$det', ' ', '$email', '$titel', '$comment', '0')" )
or die ("Fehler beim Eintragen in die Datenbank!");

--------------------------------------------------------------------------------

Das Eintragen funktioniert auch, aber der Wert für $det ist dabei immer 0, obwohl die Kontrolle

echo $det

mir einen anderen Wert ungleich null liefert.

$det wird über den Link zur datei2.php übertragen, etwa so:
http://www.domain.de/datei2.php?det=3
Dann steht da noch ganz oben im Quelltext:

$det = $_REQUEST["det"];


Der Typ des Feldes, wo $det rein soll, ist int(11). Muss ich da vorher $det in eine Integerzahl konvertieren oder wieso klappt das nicht?

Bin für jede Hilfe dankbar.

Gruß
Silvia Top
 
X
oesi50  A  S
Beiträge: 2315
11. Jan 2005, 20:54
Beitrag #2 von 6
Beitrag ID: #135580
Bewertung:
(975 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Datensatz einfügen klappt nicht


lass einfach die ' um $det weg.

PS:
Hoffentlich prüft Dein Script auch alle Request-Variablen.
Wenn nicht, ist das ein sehr schönes Beispiel wie man eine 1A SQL-Injektion hacken kann.

http://de.wikipedia.org/wiki/SQL_Injection

Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)
als Antwort auf: [#135578]
(Dieser Beitrag wurde von oesi50 am 11. Jan 2005, 21:01 geändert)
Top
 
TrinCyber
Beiträge: 5
11. Jan 2005, 21:05
Beitrag #3 von 6
Beitrag ID: #135585
Bewertung:
(975 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Datensatz einfügen klappt nicht


Hallo Oesi

Wenn ich die ' weglasse, wird der Datensatz gar nicht eingetragen und
ich bekomme meine Fehlermeldung (Fehler beim Eintragen in die Datenbank!).

Silvia
als Antwort auf: [#135578] Top
 
oesi50  A  S
Beiträge: 2315
11. Jan 2005, 21:29
Beitrag #4 von 6
Beitrag ID: #135588
Bewertung:
(975 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Datensatz einfügen klappt nicht


nicht alle ' weglassen, nur die um $det :-x


Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)
als Antwort auf: [#135578] Top
 
TrinCyber
Beiträge: 5
11. Jan 2005, 21:48
Beitrag #5 von 6
Beitrag ID: #135590
Bewertung:
(975 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Datensatz einfügen klappt nicht


ja, das habe ich mir so gedacht ;-)
Aber mit:

mysql_query("INSERT INTO `$tabellenname` VALUES (' ', $det, ' ', '$email', '$titel', '$comment', '0')" )
or die ("Fehler beim Eintragen in die Datenbank!");


funktioniert es nicht.
als Antwort auf: [#135578] Top
 
ganesh  M 
Beiträge: 1981
11. Jan 2005, 23:06
Beitrag #6 von 6
Beitrag ID: #135611
Bewertung:
(975 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

Datensatz einfügen klappt nicht


Ich würde es mir sofort angewöhnen, INSERT queries so zu schreiben:

INSERT INTO $tabellenname(feld1, feld2, feld3)
VALUES('$feld1', '$feld2', '$feld3')

d.h. EXPLIZIT die Feldnamen zu benennen. Das erhöht die Uebersichtlichkeit/Lesbarkeit, wenn Du mal grössere Tabellen bzw. umfangreichere Queries hast.

Was sollen übrigens die ' ' - Werte? Ist dies NULL? Lasse diese Felder doch einfach weg, wenn Du dort nichts selber einträgst (z.B. autoincrement-Feld, oder eines das erst später aktualisiert wird mit einem effektiven Wert).

Dein Query könnte also auch evtl. so aussehen:
INSERT INTO $tabellenname(det, email, titel, comment, foo)
VALUES('$det', '$email', '$titel', '$comment', '0')

Versuch es auch mal via command-line oder phpMyAdmin mit den effektiven Werten statt via PHP.
als Antwort auf: [#135578] Top
 
X