chb1982
Goto Top

POST schneidet nach dem Leerzeichen ab.

Moin,

folgendes Problem.

Ich habe ein Formular, das mittels $_POST Daten an ein Script weitergibt, das diese Daten in die Datenbank schreibt.

Wenn jetzt ein Wert mit Leerzeichen kommt. Zum Beispiel Vorname Nachname wird alles nach dem Leerzeichen nicht in die Datenbank geschrieben. Gebe ich mit print die Variable aus, ist es aber noch drin.

Kann mir jemand helfen?


Hier ein wenig Code.


$qry_update_clients="update clients set client_is_admin = '".$_POST['admin']."' " .
", client_location_id = '".$_POST['location_id']."' " .
", client_name = '".$_POST['client_name']."' " .
", client_full_name = '".$_POST['client_full_name']."' " .
", client_category = '".$_POST['client_category']."' " .
", client_pass = '".$client_pass."' " .
", client_is_news_add = '".$_POST['news_add']."' " .
", client_is_active = '".$_POST['active']."' " .
", client_is_news_modify = '".$_POST['news_modify']."' " .
", client_is_news_modify_all = '".$_POST['news_modify_all']."' ".
", client_is_contest_add = '".$_POST['contest_add']."' ".
", client_is_bonus_add = '".$_POST['bonus_add']."' ".
", client_is_cl_add = '".$_POST['cl_add']."' ".
", client_is_cl_admin= '".$_POST['cl_admin']."' ".
", client_is_mail_add= '".$_POST['mailadd']."' ".
"where client_id = '".$HTTP_GET_VARS['id']."'";
$db=mysql_connect(c_db_server,c_db_user,c_db_pass);
mysql_db_query(c_db_database, $qry_update_clients);
mysql_close($db);

Content-ID: 98080

Url: https://administrator.de/contentid/98080

Ausgedruckt am: 16.11.2024 um 13:11 Uhr

Admin666
Admin666 29.09.2008 um 14:23:48 Uhr
Goto Top
Wenn in einem Wert Leerzeichen enthalten sind und Anführungszeichen musst du den ganzen String unter Anführungszeichen setzen!

z.B.:

WshShell.Run "tools\MsgWnd.exe 0 ""Softwareinstallation"" ""Softwarepaket " & PACKAGENAME & " wird installiert."""

Grüß
chb1982
chb1982 29.09.2008 um 14:52:16 Uhr
Goto Top
Hi,

inzwischen habe ich herausgefunden, dass der String mitsamt Leerzeichen zwar in der Datenbank ankommt, wenn ich das aber später in ein Formular schreibe

<input type="text" name="client_full_name" value=' . $clients['client_full_name'] . '></input>;

fehlt das Leerzeichen auf einmal wieder.


Ahh. Ok. Anführungszeichen... Schon verstanden - jetzt klappt es auch. Danke!
dtzzzzzz
dtzzzzzz 30.09.2008 um 10:04:48 Uhr
Goto Top
Werte aus einer $_POST Variable direkt ins SQL-String zu schreiben, ohne sie voher zu escapen ist ein großes Sicherheitsrisiko, nur so als Tip!!!