私はグーグルで検索したので、すべてのものが、私は答えに来ることはできません。 (それが有効な????をVASよう1234+それは、ユーザーの種類を点灯した場合)
$aValid = array('-', '_', '.');
if (ctype_alnum(str_replace($aValid, '', $_POST['Rusername']))){
:
なぜせる以下のPHPコードが通じ署名プラスです。
私は通常、バイパスを見つけましたが、実際には必要です。
$aValid = array('-', '_', '.');
if (ctype_alnum(str_replace($aValid, '', (htmlentities (trim ($_POST['Rusername']) , ENT_NOQUOTES))))){
echo "+ ok";
}else{
echo "+ not ok";
}
私はこの種の検証を使い、必要なときに$ aValidに特別な文字を追加したいと思います。
MySQLに挿入する前に、mysql_real_escape_stringまたはprepared statementsを実行します。
最初のコードでは+記号がOKである理由はありません。私の意見では、それは本当にすべきではありません。
最新の更新 - 低レベルのデバッグHTTPヘッダーを数時間必要としましたが、私の側でContent-Typeを変更して+記号がスペースになってからPHP if節に移動しました(ホワイトリストに入れました)...
何を - 私はそれはあなたに起こることはありませんことを願っています - 経験:)自分に
注意:それは、この検証プロセスでは、このような主要なプレーヤーだった場合はjQueryの言及されるべきである...
にそれを追加する必要が
+
記号を削除する場合ロケール文字はちょうど[A-Za-z] .'です。標準Cロケールを使用しないかもしれません。 – ComFreek本当に、私はUTF-8を使用して別の文字を許可することはしませんでした。明らかに私のエラーがあります。調査します。 ちょうどもう1つ:これで試してみましたが、+記号も有効です。 (preg_match( '/^[a-žA-Ž-_] ++ $ /'、$ _POST ['Rime'])){'code' – BiCi1981