/ / Senden von POST-Daten ohne Formular - PHP, Post, Datenübertragung

Senden von POST-Daten ohne Formular - PHP, Post, Datenübertragung

Kann ich zum Beispiel eine Zeichenfolge oder eine andere Information an eine andere .php-Datei senden, ohne dass sie angezeigt wird (also nicht mit GET, sondern mit POST, was ich weiß), ohne ein Formular zu verwenden?

Antworten:

21 für die Antwort № 1

Wenn Sie nicht möchten, dass Ihre Daten vom Benutzer gesehen werden, verwenden Sie eine PHP-Sitzung.

Daten in einer Post-Anfrage sind immer noch zugänglich (und manipulierbar) durch den Benutzer.

Auschecken dieses Tutorial auf PHP-Sitzungen.


15 für die Antwort № 2

Sie können AJAX verwenden, um eine POST-Anfrage zu senden, wenn Sie keine Formulare möchten.

Jquery verwenden $.post Methode ist es ziemlich einfach:

$.post("/foo.php", { key1: "value1", key2: "value2" }, function(result) {
alert("successfully posted key1=value1&key2=value2 to foo.php");
});

9 für die Antwort № 3

Senden Sie Ihre Daten lieber mit SESSION als per Post.

session_start();
$_SESSION["foo"] = "bar";

Auf der Seite, auf der Sie die Anfrage erhalten, wenn Sie unbedingt POST-Daten benötigen (etwas seltsame Logik), können Sie dies am Anfang tun:

$_POST["foo"] = $_SESSION["foo"];

Die Post-Daten sind genauso gültig, als ob sie mit POST gesendet worden wären.

Zerstöre dann die Sitzung (oder lösche einfach die Felder, wenn du die Sitzung für andere Zwecke benötigst).

Es ist wichtig, eine Sitzung zu löschen oder die Sitzung zu deaktivierenFelder, weil SESSION im Gegensatz zu POST gültig bleibt, bis Sie es explizit oder bis zum Ende der Browsersitzung zerstören. Wenn Sie das nicht tun, können Sie einige seltsame Ergebnisse beobachten. Zum Beispiel: Sie verwenden sesson zum Filtern von Daten. Der Benutzer schaltet den Filter ein und erhält gefilterte Daten. Nach einer Weile kehrt er zur Seite zurück und erwartet den Filter zurückgesetzt werden, aber es ist nicht: er sieht immer noch gefilterte Daten.


5 für die Antwort № 4

Werfen Sie einen Blick auf die php-Dokumentation für diese Funktionen, die Sie post reqeust mit ihnen senden können.

fsockopen()
fputs()

oder einfach eine Klasse wie Zend_Http_Client Dies basiert auch auf Socket-Verbindungen.

fand auch ein nettes Beispiel mit Google ...


2 für die Antwort № 5

Einfach verwenden: file_get_contents()

// building array of variables
$content = http_build_query(array(
"username" => "value",
"password" => "value"
));
// creating the context change POST to GET if that is relevant
$context = stream_context_create(array(
"http" => array(
"method" => "POST",
"content" => $content, )));

$result = file_get_contents("http://www.example.com/page.php", null, $context);
//dumping the reuslt
var_dump($result);

Referenz: meine Antwort auf eine ähnliche Frage: