2012-03-29 9 views
0

Wenn Sie ein Formular zurück zu sich selbst mit PHP zu veröffentlichen, die Code besser zu nutzen:Welche der beiden PHP-Codes ist besser

PHP_SELF or REQUEST_URI? 
+2

Besser für was zu verwenden? – j08691

+2

Sie sind zwei verschiedene Dinge. '$ _SERVER [ "REQUEST_URI"];' ist der Antrag uri wie '/ question/123' und' $ _SERVER [ "PHP_SELF"]; 'der Pfad zu dem Skript ist der Webserver wie'/classes/Infrage endet/Qetion.inc'. Wenn Sie nicht sind jede Umschreiben sie gleich sind, aber wenn Sie sind dann völlig hängt es davon ab, welche Sie wollen .. – Halcyon

+0

so, wenn Sie zurück zu Ihrem eigenen Seite zu navigieren ist es besser, die URL oder den Pfad zur Skript retriving? – user1292857

Antwort

0

keines von beiden. verwenden diese:

<form action=''> 
+0

, die nichts in einigen Browsern tun (ältere Operas , Ich denke). Nein, nein, nichts. "Action = '?" Wird aber gut funktionieren. – Piskvor

+1

Ich würde argumentieren, dass es am besten ist, immer absolute URLs zu verwenden. Weder '$ _SERVER [" REQUEST_URI "];' oder '$ _SERVER [" PHP_SELF "];' helfen Ihnen dabei. – Halcyon

+0

@Piskvor Könnte auch herausfinden, wie man es mit Netscape kompatibel macht. lol ** rollt die Augen ** –

0

Abhängig von der Serversoftware verwenden REQUEST_URI unter Linux und PHP_SELF unter Windows dann für die Geschwindigkeit. Quelle: http://sniptools.com/vault/php_self-getenv-request_uri-or-script_name

+2

Ich glaube nicht, dass es ist. Der Webserver stellt sicher, dass es da ist (Apache tut es trotzdem). Einige '$ _SERVER'-Variablen sind benutzergesteuert, wie 'HTTP_REFERER', aber nicht diese, glaube ich. – Halcyon

+0

Ich habe meinen Beitrag editiert. Danke fürs Kommentieren. – ArendE

0

REQUEST_URI ist alles auf der rechten Seite des Domain-Namens in einer URL, also, wenn Ihre URL ist: http://example.org/funny/form.php, dann REQUEST_URI wird „/funny/form.php“

Dies ist, was Sie wollen zu tun:

<form action="<?php echo($_SERVER['REQUEST_URI']); ?>"> 
</form> 

Dies wird die Form auf die gleiche URL senden, wie der Besucher an ist.

Hinweis: Bei GET-Anfragen machen, die auch Variablen in REQUEST_URI bekommen sind. Also, wenn Ihr URL lautet: http://example.org/funny/form.php?name=obama, dann wird REQUEST_URI „/funny/form.php?name=obama“ sein, das ist nicht das, was Sie in Ihrem Formularelement als action-Attribut sollen. Dies ist kein Problem, wenn Sie eine POST-Anfrage verwenden. Wenn Sie GET-Requests verwenden, müssen Sie REQUEST_URI am Fragezeichen abschneiden.

0

Ich würde empfehlen, die vollständige URL verwenden, so REQUEST_URI verwenden und eine Funktion schreiben, eine der vollständige URL zu erzeugen und in das Formular ein. Eine Alternative wäre, "" zu verwenden, um die aktuelle Seite zu übermitteln.

Sie müssten nicht PHP_SELF verwenden, aber wenn Sie dies tun, beachten Sie bitte die dangers.

Verwandte Themen