2015/03/19

PHP の POST リクエストでリダイレクトする方法


PHP で POST リクエストを送信するにはいくつか方法があるようですが、どれも POST リクエストを送信して結果を取得する方法なんですよね。

POST リクエストでリダイレクトする方法をネットで調べていたら、だいたい「それはできません」でした。

悔しいのでいろいろ考えた末、HTML ページを PHP で出力して、JavaScript でフォームをサブミットしたら期待通りの動作をしました。ある意味禁じ手っぽいですが、セキュリティ的には問題ないかと。

ソースコードの該当部分を載せておくので参考にしてみてください。

<?php
//パスワード不一致 
  if($password!=$confirm_password){
    $_SESSION["error_status"]=1;

    //POSTで戻る
    echo"<!DOCTYPE html>";
    echo"<head>";
    echo"<meta charset='utf-8'>";
    echo"</head>";
    echo"<html lang='ja'>";
    echo"<body onload='document.returnForm.submit();'>";
    echo"<form name='returnForm' method='post' action='password_change.php'>";
    echo"<input type='hidden' name='token' value='".htmlspecialchars($_SESSION["token"],ENT_QUOTES,"UTF-8")."''>";
    echo"</form>";
    echo"</body>";
    echo"</html>";
    exit();
  }
?>

スポンサーリンク


このエントリーをはてなブックマークに追加




Twitter ではブログにはない、いろんな情報を発信しています。


コメント

助かりました。

コメントを書く



プロフィール

  • 名前:fnya
    経歴:
    SE としての経験は15年以上。様々な言語と環境で業務系システム開発を行い、セキュリティ対策などもしていました。現在は趣味SE。

    Twitter では、ブログでは取り上げない情報も公開しています。


    ブログについて

    このブログは、IT、スマートフォン、タブレット、システム開発などに関するさまざまな話題を取り上げたり、雑感などをつづっています。

    >>ブログ詳細
    >>自作ツール
    >>運営サイト
    >>Windows 10 まとめ

    Twitter のフォローはこちらから Facebook ページはこちら Google+ページはこちら RSSフィードのご登録はこちらから