web-dev-qa-db-ja.com

POSTフォームなしのデータの送信

たとえば、文字列または別の情報を、公開せずに別の.phpファイルに送信できます(したがって、GETではなくPOST私が知っているものに準拠)でフォームを使用せずに)。

29
Samuel

データをユーザーに見せたくない場合は、PHPセッションを使用します。

ポストリクエストのデータは、ユーザーが引き続きアクセス可能(および操​​作可能)です。

チェックアウト このチュートリアル on PHP Sessions。

22
Stephen Holiday

フォームが必要ない場合は、AJAX=を使用してPOSTリクエストを送信できます。

Jquery $。post メソッドを使用すると、非常に簡単です。

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

投稿するのではなく、SESSIONでデータを送信します。

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

リクエストを受信したページで、POST data(奇妙なロジック))がどうしても必要な場合は、最初からどこでも次のことができます。

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

POSTデータは、POSTで送信された場合と同じように有効になります。

次に、セッションを破棄します(または、他の目的でセッションが必要な場合はフィールドを設定解除します)。

セッションは破棄するか、フィールドを設定解除することが重要です。POSTとは異なり、SESSIONは明示的に破棄するかブラウザセッションが終了するまで有効です。実行しないと、奇妙な結果が観察される場合があります。たとえば、一部のデータのフィルタリングにsessonを使用します。ユーザーはフィルターをオンにして、フィルター処理されたデータを取得します。しばらくして、彼はページに戻り、フィルターがリセットされることを期待しますが、そうではありません。フィルターされたデータがまだ表示されています。

9
Gregor

これらの関数のphpドキュメントを見て、それらを使用してpost reqeustを送信できます。

fsockopen()
fputs()

または、Zend_Http_Clientのようなクラスを使用します。これもソケット接続に基づいています。

また、グーグルを使用して ニートの例 を見つけました...

5
Andreas Linden

単に使用します: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);

参照 :同様の質問に対する私の答え:

4
wpcoder
function redir(data) {
  document.getElementById('redirect').innerHTML = '<form style="display:none;" position="absolute" method="post" action="location.php"><input id="redirbtn" type="submit" name="value" value=' + data + '></form>';
  document.getElementById('redirbtn').click();
}
<button onclick="redir('dataToBeSent');">Next Page</button>
<div id="redirect"></div>

このメソッドを使用して、ボタン[次のページ]がクリックされたときに、「データ」が「投稿」によって「location.php」に送信される新しい非表示フォームを作成できます。

0
user11713698