- 締切済み
POSTについて
getをページを跨いで送信したいです。 例えば、 http://../thread.php?id=4694?res=52 のように二つの値をgetで送信した場合、 この二つのあたいを $_GET['id'],$_GET['res']で受け取ることは可能でしょうか? もしこの方法がとれない場合、idを送りつつ、resを送る方法はないでしょうか? よろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
クエリストリングの正しい形式について理解をしてください。先頭に「?」を起き、以降は「&」で連結します。HTMLとして埋め込む場合は「&」にする必要があることに注意してください。 Wikipedia - Query String (英語版しかないようです) http://en.wikipedia.org/wiki/Query_string (参考) 半角英数字であればそのまま埋め込めば問題ありませんが、記号や全角文字を含めたいときはパーセントエンコード(URLエンコード)が必須です。 Wikipedia - パーセントエンコーディング http://ja.wikipedia.org/wiki/%E3%83%91%E3%83%BC%E3%82%BB%E3%83%B3%E3%83%88%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0 PHPではこれを簡単に実現するための関数が用意されています。 PHP Manual - urlencode http://www.php.net/manual/ja/function.urlencode.php さらに、連想配列形式で格納された複数の要素を適切にクエリストリングとして組み立ててくれる便利な関数もあります。これを用いておけばどんな場合にも対応できます。 PHP Manual - http_build_query http://www.php.net/manual/ja/function.http-build-query.php 【例: 生のURLとして生成する場合】 $url = 'http://../thread.php?' . http_build_query( array( 'id' => '4694', 'res' => '52', ), '', '&' ); 【例: aタグとして生成する場合】 $html = sprintf( '<a href="%1$s">%1$s</a>', 'http://../thread.php?' . http_build_query( array( 'id' => '4694', 'res' => '52', ), '', '&' ) ); 送信側に関する注意は以上です。受信側での注意に関しては以下の記事にまとめてあるのでご一読お願いします。 Qiita - $_GET, $_POSTなどを受け取る際の処理 http://qiita.com/mpyw/items/2f9955db1c02eeef43ea
- yambejp
- ベストアンサー率51% (3827/7415)
普通に・・・ http://../thread.php?id=4694&res=52 では?