Formular-Variablen und Leerzeichen
Steve
- php
0 Der Martin
0 Steve
Hallo zusammen,
mittels der Anweisung:
function getFormVars()
{
global $HTTP_POST_VARS,$HTTP_GET_VARS;
foreach ($HTTP_POST_VARS as $key => $value)
{
global $$key; $$key = value;
}
foreach ($HTTP_GET_VARS as $key => $value)
{
global $$key; $$key = $value;
}
}
lese ich die Formulardaten und speichere diese in Variablen. Ich möchte nun führende und nachfolgende Leerzeichen löschen.
Wenn ich aber den trim Befehl einsetze $$key = trim($value); dann enthalten die Variablen ungültige Werte.
Kann mir bitte jemand erklären, wo der Fehler liegt?
Steve
Hallo Steve,
global $HTTP_POST_VARS,$HTTP_GET_VARS;
du liebe Güte, aus welchem Museum hast du das denn ausgegraben?
Falls dein Provider nicht wirklich eine ganz, ganz alte PHP-Version hat, vergiss diesen Ansatz bitte schnell. Bei einigen Hostern gibt es die Variablen HTTP_*_VARS schon gar nicht mehr.
Stattdessen verwendet man heutzutage die superglobalen Arrays $_GET[], $_POST[], $_SERVER[] und $_COOKIES[], für bestimmte Fälle auch noch $_REQUEST[].
foreach ($HTTP_POST_VARS as $key => $value)
{
global $$key; $$key = value;
}
Und das umkopieren ist unnötig und belegt nur Speicherplatz für eine zusätzliche Variable pro Parameter; du kannst direkt auf die Parameter zugreifen, z.B. $_POST['key'].
Wenn ich aber den trim Befehl einsetze $$key = trim($value); dann enthalten die Variablen ungültige Werte.
Das dürfte mit dem $$-Mechanismus zusammenhängen (Variablen mit variablem Namen), der hier auch, genauso wie die ganze Kopierorgie, völlig nutzlos ist. Beim gezielten Umkopieren und trim()-en einzelner Parameter tritt das Problem nämlich nicht auf.
So long,
Martin
hi martin,
danke für die Info.
foreach ($HTTP_POST_VARS as $key => $value)
{
global $$key; $$key = value;
}
das schöne an dieser anweisung ist aber, dass ich diese für mehrere programme einsetzten kann. hier braucht man nicht zu wissen wie die das element des formulars heisst.
bei echo $_POST['benutzername']; muss man ja den namen des elementes angeben.
ausserdem verschicke ich in meinem skript mit GET und auch mit POST meine daten.
bye
steve