Der Grund, warum PHP Ihren Variablennamen von one.txt
in one_txt
konvertiert, liegt daran, dass Punkte in Variablennamen nicht gültig sind.
Weitere Informationen finden Sie in der PHP-Dokumentation :
Variablennamen folgen denselben Regeln wie andere Etiketten in PHP. Ein gültiger Variablenname beginnt mit einem Buchstaben oder Unterstrich, gefolgt von einer beliebigen Anzahl von Buchstaben, Zahlen oder Unterstriche. Als ein regulärer Ausdruck wäre es so ausgedrückt: '[a-zA-Z_ \ x7f- \ xff] [a-zA-Z0-9_ \ x7f- \ xff] *'
Sie können entweder die Änderung ( .
bis _
) berücksichtigen und nach $_REQUEST['one_txt']
suchen oder Ihr HTML-Formular stattdessen einen gültigen Variablennamen übergeben lassen.
Um Michael Borgwardts Kommentar weiter zu verfolgen, hier ist der Text aus der PHP-Dokumentation zum Umgang mit Variablen aus externe Quellen :
Punkte in eingehenden Variablennamen
Normalerweise ändert PHP nicht die Namen von Variablen, wenn sie sind in ein Skript übergeben. Wie auch immer, es sollte beachtet werden, dass der Punkt (Zeitraum, Punkt) ist kein gültiges Zeichen in ein PHP-Variablenname. Aus dem Grund, sieh es dir an:
%Vor%Nun, was der Parser sieht, ist a Variable namens $ varname, gefolgt von der String-Verkettungsoperator, gefolgt von der Barestring (d.h. nicht aufgeführte Zeichenfolge, die nicht übereinstimmt jeder bekannte Schlüssel oder reservierte Wörter) "ext". Offensichtlich hat dies nicht das beabsichtigte Ergebnis.
Aus diesem Grund ist es wichtig, Beachten Sie, dass PHP automatisch wird Ersetzen Sie alle Punkte in der eingehenden Variable Namen mit Unterstrichen.
Es ist in der Tat eine PHP-spezifische Sache.
Verwenden Sie $ _SERVER ['QUERY_STRING']
%Vor%Ergebnis für Ihr Beispiel Array ([one.txt] = & gt; on [zwei.txt] = & gt; on)
Die PHP-Entwickler haben dies implementiert, um register_globals () zu unterstützen, aber wenn sie länger als eine Sekunde pausiert hätten, um die Konsequenzen zu berücksichtigen, hätten sie nur die importierten Namen in den globalen Variablen-Namespace geändert, nicht in $ _POST selbst . Es gibt keinen Grund, die Anforderungsvariablen selbst zu ändern ... nun, abgesehen davon, dass PHP nicht in der Lage ist, Standard-Formularübergaben zu handhaben.
Hier ist auch die Lösung für POST-Variablen, die wahrscheinlich für mehr Benutzer schwieriger ist als die GET-Lösung:
%Vor%Tags und Links php query-string