[PHP-users 30891] Re: PHP からPOSTして別ページへ飛ぶ方法を探しています

M.Terao mayo @ b-gets.ddo.jp
2006年 12月 6日 (水) 11:46:53 JST


寺尾です。

力技で、Loactionで飛ぶ前にユニークなファイル名でPOSTのデータを
全部書き込んで、Locationする時にGETでそのファイル名にあたる
ものを送信して、飛んだ先でそれを読み直す
っていうのはどうでしょうか?

前のメール今手元にないので的違いでしたら申し訳ないです。

無駄処理といえば無駄処理ですが、簡単に実装できるのではないでしょうか?
ファイル作成時の名前は連番とかではなく、ランダムにすれば
幾分か安全かと・・・。
また、読み込んだ後はファイルを削除しましょう。



> さわいさん、YuGoさん、パパぱふぅさん、ひし@ROM専さん、天野さん、瀬上さん
> 
> 箕輪です。
> おはようございます。
> 
> 沢山の方にご連絡いただきましてうれしい限りです。ただ、まだ問題を解決できていませんので、今一度お助けいただければと思います。
> 
> >さわいさん
> POSTより簡単に実現できますから普通だったらセッションっててもいいですね。ただ、セッションではブラウザの設定如何によるため、やはりPOSTでなくてはならないんですよ〜。
> 回答していただきありがとうございました。
> 
> >YuGoさん、パパぱふぅさん
> はい、POST後、header('Location:http://...');として、そのページへ飛ぶのですが、POSTしたつもりが$_POSTはemptyとして表示されるため困っています。
> 回答していただきありがとうございました。
> 
> >ひしさん
> ユーザにクリックを求めることができないんですよ〜。
> 回答していただきありがとうございました。
> 
> >天野さん
> 
> 書いてくださったコードの中にはheaderコマンドがあり、これで無事ジャンプできるとおもったのですが、本コードを試したところ、以下のようなエラーが発生しました。
> 
> Warning: Header may not contain more than a single header, new line detected. in /home/ほげほげ.php on line ??
> 
> 私の力不足でこのコードの意味が理解できません。もう少しお助けいただけますか?
> 
> 回答していただきありがとうございました。
> >瀬上さん
> >>CURLライブラリを使うのはどうでしょうか?
> はい、そう思いまして、CURLライブラリを使ったものと、fopenを使ったコードを見つけて使ったみたのですが、上記に記述したように、POSTした後に、そのページでPOSTした内容を使いたいのですが、$_POST==emptyとなってしまうため困っております。
> 回答していただきありがとうございました。
> 
> 
> 
> 
> 天野 潔 <kiyoshi.amano @ nifty.com> wrote:
> 
> > こんにちは。天野です。
> > 
> > >PHPの若葉マーク者です。みなさんに教えていただきことがあります。
> > >
> > >お聞きしたいこと:
> > >PHPから別URL(.php)にPOSTでデータを送信して、そのURLへジャンプしたい.(ちょうど、<form>タグ
> > >を使って別URLへジャンプするようなことをしたいのです)
> > 
> > 正攻法でいけば、fsock 関数で HTTP メッセージを送ることでしょうか。
> > 以下の要領で指定の url へポストすることができます。
> > 送り値は $host がホスト名、$portがポート番号、$urlが指定url、$parm が
> > ポストデータです。
> > 
> > function http_post($host,$port,$url,$parm) {
> > 	$response="";
> >  
> > 	$fp = fsockopen ($host, $port, $errno, $errstr, 30);
> > 
> > 	if (!$fp) {
> > 		echo "${errno}: ${errstr}";
> > 	} else {
> > 		$len=strlen($parm);
> > 		$request = "POST ${url} HTTP/1.0\r\n";
> > 		$request .= "Content-Length: ${len}\r\n";
> > 		$request .= "Content-Type: application/x-www-form-urlencoded\r\n\r\n";
> > 		$request .= "${parm}\r\n";
> > 		fputs ($fp, $request);
> > 		while (!feof($fp)) {
> > 			 $response .= fgets ($fp,1024);
> > 		}
> > 		fclose ($fp);
> > 
> > 		$data = explode("\r\n\r\n", $response, 2);
> > 		header($data[0]);
> > 		echo $data[1];
> > 	}
> > }
> > ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
> > 天野 潔 <kiyoshi.amano @ nifty.com>
> > ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
> > _______________________________________________
> > PHP-users mailing list  PHP-users @ php.gr.jp
> > http://ml.php.gr.jp/mailman/listinfo/php-users
> > PHP初心者のためのページ - 質問する前にはこちらをお読みください
> > http://www.php.gr.jp/php/novice.php3
> 
> 
> 
> _______________________________________________
> PHP-users mailing list  PHP-users @ php.gr.jp
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://www.php.gr.jp/php/novice.php3
> 

-- 
レバレジーズ 寺尾 <terao @ leverages.jp>




PHP-users メーリングリストの案内