0

重複の可能性:
検索クエリの URL を消去しますか?

カラーコードを確認するためのPHP Webページを作成しました。これが最初の4行です

if(isset($_GET['c']))
$hex = $_GET['c'];
elseif(!isset($_GET['c']))
$hex = $_POST['c'];

そして私のhtaccessには次のものがあります:

RewriteEngine On
RewriteRule ^([a-zA-Z0-9]{6})$ index.php?c=$1 [L]

「site.com/ffcdee」と入力すると、#ffcdee という色が正常に表示されますが、入力ボックスを使用すると、次のようになります。

<form action="">
<input type="text" name="c" >
<input type="submit" value="Search" id="search-submit">
</form>

それは、site.com/?c=ffcdee を示しています。入力名を別の単語に変更しようとしましたが、スクリプトが機能しなくなりました.どうすれば URL から ?c= を削除できますか?

4

1 に答える 1

1

httpgetの代わりにhttppostメソッドを使用してください。

<form action="" method="post">
<input type="text" name="c" >
<input type="submit" value="Search" id="search-submit">
</form>

http postリクエストを使用する場合、クエリ引数はURL内にコード化されて渡されるのではなく、リクエストの個別の「本文」として渡されます。その本体の内容は、最終的にphp内で$_POSTスーパーグローバル変数として表示されるものです。

それがどのように機能するかを理解したい場合はwireshark、httpトラフィックをダンプするようなネットワークスニファを使用してください。getとpostの違いを見て理解できます。

于 2012-10-21T16:30:52.987 に答える