【大至急】chromeで「form action="以降が展開されない事象が発生して困っています。


test.phpで生成された入力フォームのバリエーションをindex.html上で統一表示しようとしています。

●環境
chrome:77.0.3865.120(XSS AuthorはON)
firefox:70.0

●test.php
<?php
$content .= "<form action='send.php' method='POST'>";
$content .= "<input type='submit' class='button' name='set' value='設定'>";
$content .= "</form>";
?>
<form method="post" action="index.html">
<input type="hidden" name="POST_DATA" value="' . $content . '">
</form>
<script>document.forms[0].submit();</script>

●index.html
<?php echo $_POST['POST_DATA']; ?>

test.phpをブラウザ上で実行すると、firefoxではindex.htmlは結果[A]で表示されますが、chromeでは結果[B]となり、困っています。

■結果[A] … firefoxでの実行結果
<form action="send.php" method="POST"> ← 正しく展開されている
<input type="submit" class="button" name="set" value="設定">
</form>

■結果[B] … chromeでの実行結果
<form action="data:," method="POST"> ←「form action="」以降が「data:,」となっている
<input type="submit" class="button" name="set" value="設定">
</form>

POSTで飛ばした際にchromeは何をしているのかわかりませんが、アドバイスいただけると幸いです。
何卒よろしくお願いいたします。

回答の条件
  • 1人1回まで
  • 13歳以上
  • 登録:2019/10/25 02:09:24
  • 終了:2019/10/31 17:52:22

ベストアンサー

id:uwao No.1

uwao回答回数174ベストアンサー獲得回数372019/10/25 04:26:53

ポイント500pt

URLエンコードすると良いと思います。
test.phpを下記のように修正します。

<?php
$content = "";
$content .= "<form action='send.php' method='POST'>";
$content .= "<input type='submit' class='button' name='set' value='設定'>";
$content .= "</form>";
$content = urlencode($content);
echo "<form method=\"post\" action=\"index.html\">\n";
echo "<input type=\"hidden\" name=\"POST_DATA\" value=\"".$content."\">\n";
echo "</form>\n";
?>
<script>document.forms[0].submit();</script>

index.htmlは下記のようにURLデコードします。
<?php
$postdata = urldecode($_POST['POST_DATA']);
echo $postdata;
?>

如何でしょうか。

他3件のコメントを見る
id:cochoo

サーバ問題が解消され、さきほど質問の終了とベストアンサーとさせていただきました。
ありがとうございました。

2019/10/31 17:54:46
id:uwao

こちらこそ、有り難うございました。

2019/11/04 04:25:33

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません