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-Key: 98080

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

Printed on: April 23, 2024 at 07:04 o'clock

Member: Admin666
Admin666 Sep 29, 2008 at 12:23:48 (UTC)
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üß
Member: chb1982
chb1982 Sep 29, 2008 at 12:52:16 (UTC)
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!
Member: dtzzzzzz
dtzzzzzz Sep 30, 2008 at 08:04:48 (UTC)
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!!!