Seite 1 von 1

request_var vs. $_POST

Verfasst: 13.03.2008 20:55
von Jimmy90
Folgendes:
Im UCP habe ich ein eigenes Formular eingebaut, dessen übergebene Werte in eine eigene Tabelle eingetragen werden.
Zuerst habe ich die Spalten in die phpbb_users eingetragen, bin dann aber zu dem Schluss gekommen eine eigene Tabelle zu verwenden, in der zusätzlich die User-ID eingetragen wird, um die passenden Daten wiederzufinden.

Konnte ich zuvor noch mit UPDATE arbeiten, bin ich bei der separaten Tabelle auf REPLACE- bzw. EINE INSERT/UPDATE-Abfrage angewiesen. Was das ganze jetzt mit request_var zu tun hat? Ganz einfach:

Beim INSERT-Befehl wird mir im Gegensatz zum UPDATE-Befehlt (wie kann das denn sein? O.o) angezeigt, dass die übergebenen Variablen NULL sind. (UPDATE gibt seltsamerweise die richtigen Werte zurück) Kurzerhand habe ich request_var durch $_POST zum Abfragen der Daten ersetzt, funktioniert das ganze auch mit INSERT. request_var gibt also bei INSERT-Befehlen (UPDATE funktioniert!) den Wert NULL zurück, während $_POST auch bei INSERT funktioniert.

Wie kann ich also einen INSERT-Befehl verwenden, ohne von request_var auf das unsicherere $_POST umsteigen zu müssen?

INSERT-Code:

Code: Alles auswählen

$sql = 'INSERT INTO ' . RANDOM_TABLE . '
                    ' . $db->sql_build_array('INSERT', $sql_ary);
                           
							$db->sql_query($sql);

Verfasst: 13.03.2008 21:04
von Dr.Death
Aus diesem "Stückchen" Code können wir nichts ableiten.

Wie sehen Deine "POST" bzw. die "request_var" Abfragen aus.

Hinweis: POST Abfragen sind nur noch für Status Abfragen erlaubt.

Beispiel: Wurde ein Submit Button geklickt:

Code: Alles auswählen

$submit = (isset($_POST['submit'])) ? true : false;

Verfasst: 13.03.2008 21:14
von Jimmy90
Aus der modifizierten includes/ucp/ucp_profile.php:

Code: Alles auswählen

//Rauseditiert

Verfasst: 13.03.2008 21:56
von Dr.Death
Dein sql_ary ist leer, wenn es ein INSERT wird, da beim allerersten SELECT nichts gefunden worden ist ( affected rows = 0 ).
Somit sind alle
$row['data1']
$row['data2']
Variablen leer!

Folglich auch die $data arrays...... usw... alles klar ?
Daher kann der request_var auch nicht funktionieren.

Verfasst: 13.03.2008 22:22
von Jimmy90
Danke für die schnelle und kompetente Hilfe!
Hab´s gelöst! :D