Frage zu list und $HTTP_POST_VARS

Kahmoon

Erfahrenes Mitglied
Tach beisammen,

ich muss ein Formular auswerten und per Mail verschicken. Ich lese hierzu die Feldnamen und deren Werte aus.

PHP:
while(list($name,$value)=each($HTTP_POST_VARS)) {

}
Die Feldnamen sind etwas wild (fragt nicht warum...ich habe das nicht gemacht :) )

HTML:
<input type="text" name="(Frage 1a): He _____ for BMW." size="15" class="formtext">
Wenn ich diese Felder jetzt mit der oben genannten Funktion auslese und dessen Wert wiedergebe, bennent mir PHP den Feldnamen um.

Aus wie gewünscht "(Frage 1a): He _____ for BMW." wird "(Frage_1a):_He_______for_BMW_".

Woher kommen die Unterstriche? Laut Kunde habe das mal funktioniert. Ich weiß das Leerzeichen im Feldnamen nicht sauber sind...aber dürfen Feldnamen keine Leerzeichen haben? Kann ich diese Umwandlung irgendwie verhindern? Würde ungern 4 Formulare á 80 Fragen von Hand ändern...
 
Es ist wohl eine Form der Enkodierung, umgehen könntest du sie durch eine eigene Kodierung mit [phpf]urlencode[/phpf].

Beispiel:
PHP:
<pre>
<?php 
while(list($name,$value)=each($HTTP_POST_VARS)) {
	echo urldecode($name)."\n";
}  
?>
</pre>
<form action="test.php" method="post">
<input type="text" name="<?php echo urlencode('(Frage 1a): He _____ for BMW.'); ?>" size="15" class="formtext">
<input type="submit">
</form>

Sauberer wäre allerdings wirklich die Feldnamen umzubenennen. Offiziell sind Leerzeichen in Feldnamen erlaubt, sollten aber vermieden werden.
 
Ja ich weiß...aber ich hab das so geliefert bekommen und es ist ganz schöner Aufwand die alle zu ändern.

urlencode klappt leider so nicht....ich werde wohl nicht um eine Umbenennung herumkommen :)

Danke trotzdem für die Hilfe.
 
Zurück