[GastForen Programmierung/Entwicklung PHP und MySQL Datensatz einfügen klappt nicht

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Datensatz einfügen klappt nicht

TrinCyber
Beiträge gesamt: 5

11. Jan 2005, 20:39
Beitrag # 1 von 6
Bewertung:
(1095 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
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
X

Datensatz einfügen klappt nicht

oesi50
  
Beiträge gesamt: 2315

11. Jan 2005, 20:54
Beitrag # 2 von 6
Beitrag ID: #135580
Bewertung:
(1095 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
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)

Datensatz einfügen klappt nicht

TrinCyber
Beiträge gesamt: 5

11. Jan 2005, 21:05
Beitrag # 3 von 6
Beitrag ID: #135585
Bewertung:
(1095 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
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]

Datensatz einfügen klappt nicht

oesi50
  
Beiträge gesamt: 2315

11. Jan 2005, 21:29
Beitrag # 4 von 6
Beitrag ID: #135588
Bewertung:
(1095 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
nicht alle ' weglassen, nur die um $det :-x


Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)


als Antwort auf: [#135578]

Datensatz einfügen klappt nicht

TrinCyber
Beiträge gesamt: 5

11. Jan 2005, 21:48
Beitrag # 5 von 6
Beitrag ID: #135590
Bewertung:
(1095 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
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]

Datensatz einfügen klappt nicht

ganesh
Beiträge gesamt: 1981

11. Jan 2005, 23:06
Beitrag # 6 von 6
Beitrag ID: #135611
Bewertung:
(1095 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
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]
X