アプリ版:「スタンプのみでお礼する」機能のリリースについて

教えてください。

リダイレクトの際、POSTで次のページにデータを渡すことは可能でしょうか?

GETだと
header("Location: "a.php?no=".$no);
と、問題なくできるのですが、
できれば、パラメータを隠したいと思います。

以上ですが、よろしくお願いします。

A 回答 (4件)

リダイレクトとは少し違いますが・・・。


php_curlが使えるなら、こんな感じではどうでしょうか?
指定のURLにPOSTデータを送信して結果を受け取るというものですが。POSTでリダイレクトというのはまずいので、必要なときはこんな感じにしたりしてます。

<?php
// POSTするデータ
$post["a"] = "abc";
$post["b"] = "xyz";

$chost = curl_init();
curl_setopt($chost, CURLOPT_URL, "http://サーバ/hogehoge.php");
curl_setopt($chost, CURLOPT_POST, true);
curl_setopt($chost, CURLOPT_POSTFIELDS, $post);
curl_setopt($chost, CURLOPT_RETURNTRANSFER, true);

$result = curl_exec($chost);
curl_close($chost);

echo $result; // POST送信先から送り返されてくる内容
?>

この回答への補足

ありがとうございます。
php_curというものを初めて目にしました。

早速試してみたのですが、
curl_setopt
のところでエラーが出てきてしまいます。

>php_curlが使えるなら、
とのことですが、設定によってはphp_curが使えないことがあるのでしょうか?

また、すでにログイン管理にsessionを使用しているのですが、sessionとphp_curとは同時に使って問題ないのでしょうか?

変な質問かもしれませんが、よろしくお願いいたします。

補足日時:2006/07/26 17:24
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。


少し考えた結果、単純に、セッションで対応できそうです。


いろいろ、お聞きして申し訳ございませんでした。

お礼日時:2006/07/27 08:07

同じサーバ内のページにリダイレクトするのならリダイレクトではなくてそのままページのphpファイルをincludeしたほうが早いです。



header("Location: "a.php");
ではなくて
include "a.php";
とします。
これなら変数もそのまま引き継げます。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

私の説明不足で申し訳なかったのですが、
今回は、データベースの2重登録を避けるため、
データベースに登録してから、別ページにリダイレクトしたかったので、インクルードでは目的が果たせなさそうです。

今後とも、よろしくお願いします。

お礼日時:2006/07/27 08:04

多分できないです。


それに、結局クライアント側に情報を送信しているのだから、POSTにしたところでパラメータを隠した事にはならないですし。
本当に隠すならサーバ側でセッション情報を引き継ぐような形にしないとダメでしょう。

AJAXのかたちにして、ページ遷移を見えなくするというのが手っ取り早いかも。
    • good
    • 1
この回答へのお礼

ご回答、ありがとうございます。

セッションを使えば、解決できそうです!!

すでに、ログイン管理でセッションを使っていますので、
そこに、変数を追加することにしました。

お礼日時:2006/07/27 07:59

僕は文章読解力がないため


言っていることが正しく解釈で来ているか自信なしです。

http://www.studyinghttp.net/status_code#Redirect …

http://ppewww.ph.gla.ac.uk/~flavell/www/post-red …

後者のページによると(実装はともかく)仕様ではPOSTのリダイレクトは

301→GETを送るべき
302→POSTを送るべき
303→GETを送るべき
307→POSTを送るべき

なようです。識者大募集。

読んでませんがRFC2616
http://www.ietf.org/rfc/rfc2616.txt
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

私の説明が足りなかったようで、申し訳ございません。

リンク先を拝見させていただきましたが、
私には、レベルが高い&英語は。。。でした。

今回は、セッションを使うことで解決できそうです。

また、よろしくお願いいたします。

お礼日時:2006/07/27 07:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!