Post und gleichzeitig in php bekommen

8

Hast du irgendwelche Vorschläge zu meinem Problem? Ich muss get und post gleichzeitig benutzen. Get, weil ich ausgeben muss, was der Benutzer eingegeben hat. Und post, weil ich auf die mysql-Datenbank in Bezug auf diese Eingabe zugreifen muss. Es sieht ungefähr so ​​aus:

%Vor%

Dies wird den Inhalt von mysql ausgeben, abhängig davon, was der Benutzer überprüfen wird:

%Vor%

Und die Formularaktion dieser beiden kombiniert wird ungefähr so ​​aussehen:

%Vor%

Ich bekomme wirklich viele undefinierte Fehler, wenn ich das tue. Was kann ich empfehlen, um den vom Benutzer eingegebenen Wert zusammen mit den mysql-Daten zu erhalten?

    
user225269 01.05.2010, 09:20
quelle

5 Antworten

47

Sie können nur ein Verb (POST, GET, PUT, ...) haben wenn Sie eine HTTP-Anfrage durchführen. Sie können jedoch

tun %Vor%

und dann wird PHP auch $_GET['foo'] auffüllen, obwohl die gesendete Anfrage POST wurde.

Ihr Problem scheint jedoch viel mehr zu sein, als dass Sie versuchen, sende zwei Formulare gleichzeitig , die auf zwei verschiedene Skripte ausgerichtet sind. Das ist innerhalb einer Anfrage unmöglich.

    
Gordon 01.05.2010, 09:36
quelle
4

Sie können GET und POST nicht gleichzeitig ausführen.

Kombiniere die zwei Formen zu einem.

Kombinieren Sie zum Beispiel die Formulare zu einem Post-Formular. In Ihrem Code extrahieren Sie alles, was Sie brauchen, von $ _POST.

Und 'YEAR' ist nicht gleich 'Year', Ihr Beispielcode muss ebenfalls funktionieren.

    
zaf 01.05.2010 09:24
quelle
3

Wie bei den anderen Antworten beschrieben, können Sie nicht gleichzeitig eine Anfrage und eine Anfrage stellen. Aber wenn Sie Ihren PHP-Code vereinheitlichen wollen, um eine Variable zu lesen, die durch eine Get- oder Post-Anfrage empfangen wurde, könnten Sie vielleicht $ _ ANFRAGE

    
David Morales 01.05.2010 09:44
quelle
3

POST und GET (wie HEAD, FILE, DELETE usw.) sind HTTP Methoden . Ihr Browser sendet eine HTTP-Anfrage an den Server, wobei einer von ihnen vor der Anfrage steht, so dass Sie nicht zwei Methoden zur selben Zeit senden können (ein Beispiel für den Anfrage-Header von einem Web-Sniffer):

%Vor%

Der große Unterschied zwischen GET und POST besteht darin, dass GET eine Antwort von einer URL abruft und POST auch einige Inhaltsdaten an diese URL sendet . Wenn Sie Ihr Formular absenden, werden die Daten in einem Standardformat gesammelt, das durch das Attribut enctype definiert ist, und dieses Mal auch an eine URL gesendet.

Auch die URL ist standardmäßig formatiert und der Teil der Zeichenkette, der hinter dem ? Zeichen steht, heißt QUERY STRING .

Wenn der Server Daten empfängt, teilt er diese Informationen PHP mit, die die URL lesen und liest die Methode, den Körper (Daten) der Anfrage und eine Menge anderer Dinge. Schließlich füllt seine superglobalen Arrays mit diesen Daten, damit Sie wissen, was der Benutzer sendet ( $ _ SERVER , $ _GET und $_POST und ein paar andere);

Wichtiger Hinweis! Wenn PHP das $ _GET-Superglobal mit der Abfragezeichenfolge der URL und schließlich $ _POST-Superglobal mit den im Anfragetext gefundenen Daten füllt, sind $ _ POST und $ _GET nicht mit HTTP verbunden.

Wenn Sie also $ _ POST und $ _ GET gleichzeitig ausfüllen möchten, müssen Sie Ihr Formular auf folgende Weise senden:

%Vor%     
yuri 01.05.2010 10:46
quelle
2

Ich habe das nicht getestet, aber es ist eine mögliche Lösung, um GET-Variablen über den Aktionswert eines Formulars zu senden ...

%Vor%

Es ist zwar nicht absolut narrensicher, aber ich habe schon früher ein Problem mit einem Header ("Location:") - Fehler kennengelernt, bei dem Variablen nicht vom Server unter $ _GET mit einer URL wie Ссылка , aber sie existierten in der Variablen $ _SERVER ['REQUEST_URI']. Hoffe das hilft und viel Glück!

    
RedYetiCo 01.04.2011 05:53
quelle

Tags und Links