6

私は次のようなフォームを持っています:

<form action="/assesment/savelist/" method="post">
    <input type="hidden" name="owner" value="<?php echo $userid ?>" />
    <input type="text" name="title" value="Question List Title" />
    <textarea name="description"></textarea>
    <input type="submit" />
</form>

説明では、人々はその文字を使用できる必要があり£ます(他の許可されていない文字の中で)。

これらの文字をPHPページに投稿する前に許可されているものに変換する方法はありますか?


こんにちは皆さん、これまでのコメントに感謝します。

「savequestion」でprint_r($ _ POST)を実行すると、そのフォームから送信されるpostdataよりも前になります。

ただし、いずれかのフィールドに£がある場合、その特定の文字は送信されません。たとえば、そのフォームから「sdfsdfs£adasd」を投稿すると、送信されるのは「sdfsdfsadasd」だけです。

問題は、£をHTMLフォームから投稿データとして送信できるものに変換する方法です。

4

3 に答える 3

14

勝つ!

解決策は、フォームタグにaccept-charset="utf-8"を追加することです。

これをページのヘッダーに追加するオプションはありませんでしたが、フォームタグに追加することですべての問題が解決しました。このウェブサイトへのリンクを投稿してくれた@decezeに大声で叫ぶhttp://kunststube.net/frontback/

于 2012-08-09T16:00:29.623 に答える
3

ブラウザは、標準のフォーム送信メカニズムを介して送信されるときに、データを自動的にエンコードします。

PHPは、データが入力されると自動的にデータをデコードします$_POST/GET/REQUEST

その段階では何​​もする必要はありません。

データベース/HTML/電子メール/URI/その他のデータ形式に挿入する前にデータをエンコードする必要があるかもしれませんが、それはデータで何をしているかによって異なります。

于 2012-08-09T15:45:08.447 に答える
0

ブラウザは、標準のフォーム送信メカニズムを介して送信されるときに、<>データを「自動的に」「エンコード」します。

于 2017-01-24T08:36:11.220 に答える