PHP $ _POST funktioniert nicht? [Duplikat]

7

Ich habe die einfachste Form, und alles, was ich tun möchte, ist Echo, was auch immer in das Textfeld geschrieben wird.

HTML:

%Vor%

PHP:

%Vor%

Das Problem ist, dass es auf meinem Server nicht funktioniert (es funktioniert auf einem anderen Server). Hat jemand eine Idee, was könnte falsch sein? Es gibt andere Formen auf dem Server und funktionieren gut.

    
ptinca 25.01.2012, 12:06
quelle

11 Antworten

14

Ein paar Dinge, die Sie tun könnten:

  1. Stellen Sie sicher, dass das Attribut "action" in Ihrem Formular zum richtigen Ziel führt.
  2. Versuchen Sie, $ _REQUEST [] anstelle von $ _POST zu verwenden, um zu sehen, ob es Änderungen gibt.
  3. [Optional] Versuchen Sie, sowohl einen 'name' als auch ein 'id' Attribut, z.

    %Vor%

  4. Wenn Sie sich in einer Linux-Umgebung befinden, prüfen Sie, ob Sie Lese- / Schreibberechtigungen für die Datei haben.

Außerdem kann dieser Link ebenfalls hilfreich sein.

BEARBEITEN:

Sie könnten auch ersetzen %Code% mit diesem: %Code%. Dies ist immer der beste Weg zu prüfen, ob ein Formular übermittelt wurde oder nicht.

    
Frankline 25.01.2012 12:14
quelle
9

Ich hatte heute abend etwas Ähnliches, was mich in den Wahnsinn getrieben hat. Das Absenden eines Formulars gab mir die Werte in $ _REQUEST, aber nicht in $ _POST.

Irgendwann ist mir aufgefallen, dass auf dem Netzwerk-Tab in Firebug tatsächlich zwei Anfragen durchgelaufen sind; zuerst ein POST mit einer 301-Antwort, dann ein GET mit einer 200-Antwort.

Bei der Suche nach den Interwebs klang es so, als ob die meisten Leute dachten, dass dies mit mod_rewrite zu tun hatte, was die POST-Anfrage dazu veranlasste, umzuleiten und sich so in ein GET zu verwandeln.

In meinem Fall war es nicht mod_rewrite, es war etwas viel einfacher ... meine URL für den POST enthielt auch eine GET-Abfragezeichenfolge, die ohne einen Schrägstrich auf der URL begann. Dies führte dazu, dass Apache umgeleitet wurde.

Finde den Unterschied ...

Schlecht: Ссылка
Gut: Ссылка

Der untere verursacht keine Umleitung und gibt mir $ _POST!

    
geoidesic 28.06.2013 23:20
quelle
3

Anstatt $ _POST zu verwenden, verwenden Sie $ _REQUEST:

HTML:

%Vor%

PHP:

%Vor%     
Deniz Cakiroglu 05.01.2013 16:09
quelle
3

Ich hatte auch dieses Problem. Der Fehler war im Htaccess. Wenn Sie eine Rewrite-Regel haben, die sich auf die Aktions-URL auswirkt, können Sie die POST-Variable nicht lesen.

Um dieses Hinzufügen zu beheben, müssen Sie diese Regel am Anfang zu htaccess hinzufügen, um das Umschreiben der URL zu vermeiden:

RewriteRule ^ meine_Aktion.php - [PT]

    
Angel Aparicio 29.01.2013 11:07
quelle
3

Geben Sie die globale Variable aus, um herauszufinden, was Sie im Seitenbereich haben:

%Vor%

Dies sagt Ihnen das "Was" und "Wo" in Bezug auf die Daten auf Ihrer Seite.

    
thefid 20.09.2014 17:15
quelle
2

probiere dies
HTML-Code

aus %Vor%

PHP-Code:

%Vor%     
Mugunthan S 15.10.2014 08:37
quelle
1

Haben Sie Ihre php.ini überprüft? Ich habe meine Post-Methode aufgebrochen, nachdem ich post_max_size mit upload_max_filesize gleichgesetzt habe.

Ich denke, dass post_max_size weniger als upload_max_filesize haben muss.
Getestet mit PHP 5.3.3 in RHEL 6.0

Zu Ihrer Information:
$ _POST in PHP 5.3 .5 funktioniert nicht
PHP POST funktioniert nicht

>     
zx1986 14.11.2013 08:37
quelle
0

Es ist nichts falsch mit Ihrem Code. Das Problem ist hier nicht sichtbar.

  1. Überprüfen Sie, ob das Skript nach dem Senden überhaupt aufgerufen wird.

  2. Sehen Sie sich an, was eingereicht wurde: var_dump($_REQUEST)

PiTheNumber 25.01.2012 12:30
quelle
0

versuchen Sie var_dump($_GLOBALS) .

Eine mögliche Ursache könnte sein, dass vor Ihnen ein Skript läuft, das die globalen Variablen deaktiviert. Wie:

%Vor%

oder sogar.

%Vor%

Dies könnte über die Option auto_prepend_file in der Konfiguration php.ini erfolgen.

    
max 08.03.2012 23:44
quelle
-1
  1. html-Datei und php-Datei sollten sich beide im htdocs-Ordner in c: \ apache2 befinden (wenn Sie den Apache-Webserver verwenden).
  2. Öffnen Sie die HTML-Datei, indem Sie http: // "localhost / html_file_name.html"
  3. eingeben
  4. Geben Sie nun Ihre Daten in Felder ein. Ihr Code wird ausgeführt ..
AdityaSharma Malladi 07.04.2014 15:14
quelle
-3

Versuchen Sie stattdessen, zu Testzwecken

%Vor%

und

%Vor%     
Stevanicus 25.01.2012 12:29
quelle

Tags und Links