0

私はフォームを持っています:

<form action="something.php" method="POST">
  <input type="email" name="email"/>
  <input type="submit" value="Send Email"/>
</form>

誰かが電子メール形式ではない文字列を入力しようとすると、フォームは入力できません。唯一の問題は、これが Safari で動作しないことです! どうして!!!!http://www.w3schools.com/html/html5_form_input_types.asp

では、どのような非常に簡単な回避策を使用できますか? ありがとうございました

4

1 に答える 1

2

この点について明確にしましょう: 一部の HTML クライアントは を尊重しますがinput type、いくつかは尊重しません。また、たとえそうしたとしても、このフィールドが電子メール アドレスではない HTTP リクエストを偽造することを防止することはできません<input type=email>したがって、そのフィールドに何を入れるべきかについてのヒントをユーザーに提供することに頼ることはできますが、電子メール アドレスだけが PHP スクリプトに到達することを確認するためにそれに頼るべきではありません。

そのため、一部のブラウザではサポートされていますが、Safari ではサポートされていません。それだけです。

したがって、正しい解決策は、サーバー側の検証も行い、それが電子メール アドレスでない場合は失敗させることです。正規表現で比較的簡単に確認できます。

于 2013-11-04T22:55:40.230 に答える