PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP: mysq_query() funktioniert nicht richtig


tomtom
2005-02-23, 11:02:46
Hi Leute!

Ich habe folgendes Problem:
Ich erhalte neun Werte von einem Webformular die ich in eine Datenbank eintragen will. Die Daten werden von Formular ohne Probleme übergeben, allerdings ist die mysql_query nicht in der Lage, die letzten 3 Werte in die Datenbank einzufügen.

Hier mal der Code:

$db = mysql_connect(); //lokal

mysql_query("INSERT INTO attendants (firstname, secondname, birth, adress, place, tel, course, altcourse, support) VALUES ('$fn','$sn','$birth','$aadress','$ahome','$atelephone','$group','$altgroup','$s up')");

mysql_close($db);


Schreibe ich die Query so, dass die Werte course($group als Übergabewert), altcourse ($altgroup als Übergabewert) und support ($sup als Übergabewert) komplett in der Query weggelassen werden, werden die restlichen Daten in die Datenbank eingetragen. Gebe ich die Datenfelder course, altcourse und support wieder in die Query rein, findet kein Eintrag in die DB statt.

Ich hab auch schon probiert anstatt der Variablenwerte einfach Zahlen bei den Values einzutragen - ohne Erfolg.

Ich check das echt, warum das nicht hinhaut. Vielleicht kann mir von euch jemand helfen, wäre super ;)

MfG, terminator2k3

tomtom
2005-02-23, 11:12:02
@Mods...bitte löschen
Hab das Problem bereits gelöst! Tippfehler wars.... :uhammer2:

darph
2005-02-23, 11:32:43
Da das Thema ja erledigt ist, hab ich kein schlechtes Gewissen, den Thread zu entführen.


mysql_query("INSERT INTO attendants (firstname, secondname, birth, adress, place, tel, course, altcourse, support) VALUES ('$fn','$sn','$birth','$aadress','$ahome','$atelephone','$group','$altgroup','$s up')");



Ich finde es immer ziemlich gräslich, wenn die Leute die Variablen in die Strings packen. Es ist zwar quick'n'dirty, aber meiner Ansicht nach sollte man das schon der Übersicht halber mit Konkatenationspunkten trennen.


Und zu deinem Code: $aadress kommt das so aus dem Formular?

Dann kann man dem Script die Daten sowohl über die URL (?aadress=asdf&bla=fasel) (übrigens schreibt man address im Englischen mit zwei d) als auch über das Formular übergeben. Du solltest $_POST["aaddress"] verwenden. Ist sicherer.

Kinman
2005-02-24, 18:19:34
bei all inkl ist register globals eh ein, somit gibts mal mit den requests keine probleme.

Das mit doppeltem hochkomma und punkt solltest du dir wirklich zu herzen nehmen ;)

mfg Kinman

darph
2005-02-24, 18:23:00
bei all inkl ist register globals eh ein, somit gibts mal mit den requests keine probleme. Das ist aber eine massive Sicherheitslücke.

Kinman
2005-02-24, 18:26:04
ich weiß es, leider mache ich es selbst gleich wie terminator (sch.. gewohnheit ;) )
Aber ich kenne jetzt auf die schnelle keinen Webhoster der das nicht ein hat.

mfg Kinman

kpunkt
2005-02-24, 19:40:39
Ich finde es immer ziemlich gräslich, wenn die Leute die Variablen in die Strings packen. Es ist zwar quick'n'dirty, aber meiner Ansicht nach sollte man das schon der Übersicht halber mit Konkatenationspunkten trennen.



Sorry aber was sind Konkatenationspunkten?
Bin kein PHP Profi und spiel nur hin und wieder damit rum.

Meinst du damit das
"String" . $variable . "String"

Kinman
2005-02-25, 20:56:48
das ist damit gemeint ;)

mfg Kinman

darph
2005-02-25, 22:28:34
ich weiß es, leider mache ich es selbst gleich wie terminator (sch.. gewohnheit ;) )
Aber ich kenne jetzt auf die schnelle keinen Webhoster der das nicht ein hat.

mfg Kinman
Canhost.

Aber selbst wenn. Wenn man $_POST["blafasel"] nimmt, werden Variablen aus POST-forms erzwungen, dann ist es nicht mehr möglich, einfach mal eben so mit ?blafasel=etwas einfach das Script auszuführen.

darph
2005-02-25, 22:29:23
Sorry aber was sind Konkatenationspunkten?
Bin kein PHP Profi und spiel nur hin und wieder damit rum.

Meinst du damit das
"String" . $variable . "String"
Genau das. Eine Konkatenation ist eine Verbindung. Das eine wird an das andere drangehängt.

Ist hier aber nur Kosmetik... :)

Kinman
2005-02-26, 14:28:51
Canhost.

Aber selbst wenn. Wenn man $_POST["blafasel"] nimmt, werden Variablen aus POST-forms erzwungen, dann ist es nicht mehr möglich, einfach mal eben so mit ?blafasel=etwas einfach das Script auszuführen.

Hey cool, soweit hab ich noch gar nicht gedacht ;)
Danke für den Tip!

mfg Kinman

tomtom
2005-03-01, 19:12:20
Bei mir isses auch nur Gewohnheit das Ganze so zu machen... aber danke für die Tipps...werds auf jeden Fall beim nächsten Mal versuchen besser zu machen (bin ja lernfähig^^)

Thx, Mfg
terminator2k3