PHP5にて、入力フォムから入力された文字を全角か半角か判断しています。
半角だとフラグを立ててエラーにしております。
しかし、「ソ」だけ全角で入力しても
半角と判断されてしまい困っております。
0x5c と関係していると思うのですが
対処方法がわかりません。
ご教示頂けると助かります。
//名前(性)フリガナ
if($_POST['name3'] == ""){
echo "【名前(性)フリガナ】が未入力です。<BR>";
$errflg = 1;
}
$len = strlen($_POST['name3']);
$mblen = mb_strlen($_POST['name3'], "Shift_JIS") * 2;
if($len != $mblen){
$errflg = 1;
}
以上、宜しくお願いいたします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
>ソを入力した場合
>$len = 3
>$mblen = 4
>
値的には0x5cコードがエスケープされてるような文字数ですね。
以下を表示させたらどんな値か見たいところです。
$array = unpack('H*dump', $_POST['name3']);
echo $array['dump'];
実際に読み込んでる設定ファイルを
# php --ini
や
# php -i | grep ini
などで再度確認した方がいいかと思います。
No.3
- 回答日時:
もしshift_jisが必須なら全角ひらがな・カタカナをダイレクトにチェックしてみては?
<form method="post">
<input type="text" name="name3" value="セソタ">
<input type="submit" value="go">
</form>
<?PHP
$name3=isset($_POST["name3"])?$_POST["name3"]:"";
$pattern="/^(\x82[\x9F-\xF1]|\x83[\x40-\x96])+$/";
if(preg_match($pattern,$name3)){
print "ok";
}else{
print "ng";
}
?>
No.2
- 回答日時:
手元の環境でシフトJISを使ってコマンドライン実行したら問題なくできました。
具体的に$mblen の値はいつくになっていますか?
もし2以外なら別の文字コードで送信されてきている可能性があるのと、
magic_quotes_gpc が On 設定なら Off に変更すればできると思います。
アを入力した場合
$len = 2
$mblen = 2
ソを入力した場合
$len = 3
$mblen = 4
となります。
php.iniの magic_quotes_gpc は
off になっていました。
以上、宜しくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) 単純なコマンドプロンプトが動きません。 2 2022/04/19 15:21
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- その他(Microsoft Office) WordやExcelで英数字のみ半角または全角にしたい 6 2022/08/03 08:18
- iOS これは日本語入力の大発明ですか? 7 2022/12/21 07:17
- Excel(エクセル) エクセルの数式で教えてください。 3 2022/10/25 10:52
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- Visual Basic(VBA) VBA 重複チェック後に値をワークシートに転記する方法を教えてください。 1 2023/03/19 12:43
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- その他(ソフトウェア) ソースネクストアプリをインストールし、製品登録で半角英数字が入力できない 5 2022/07/03 22:44
- Excel(エクセル) capeofdragonと申します Excel2016を使っておりまして 半角又は全角の任意文字列が 2 2022/10/31 13:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
メッセージボックスで1025文字...
-
文字の入力で横バー上段、中断...
-
半角英数字のみを受け付ける入...
-
エクセルでの漢字、カタカナ、...
-
全角半角あわせて3文字
-
phpの正規表現でカタカナ+スペ...
-
Excel関数「COUNTIF」で”文字”...
-
CapCutってどうやったら文字を...
-
テキストボックスへの文字の入...
-
全角半角変換 C++/CLI
-
ASP.net(C#) CheckBoxListで...
-
全て全角文字かチェックしたい
-
バッチファイル 全角検索
-
IT企業の技術屋にとって全角英...
-
半角文字と全角文字の判別の仕方
-
携帯電話の相手の電話番号にメ...
-
PHPでMySQLに入力した半角スペ...
-
入力内容の確認を行う前に$_POS...
-
文字列中の両丸括弧を取り除くV...
-
特定の文字を簡単な操作で半角...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
文字の入力で横バー上段、中断...
-
メッセージボックスで1025文字...
-
Excel関数「COUNTIF」で”文字”...
-
全角括弧と全角読点の間隔を狭...
-
半角記号、全角記号を含む正規...
-
エクセルのCOUNTIFが正しくカウ...
-
XMLのタグ名の禁則文字
-
文字列中の両丸括弧を取り除くV...
-
VBScriptである文字列に半角文...
-
全角英数文字が嫌われる理由を...
-
記号は半角と全角どちらがよい...
-
Excel2002 一桁数字だけ全角に置換
-
エクセルでの漢字、カタカナ、...
-
特定の文字を簡単な操作で半角...
-
Replace関数は文字数の制限ある...
-
VBAで英数字入力チェックしたい。
-
IT企業の技術屋にとって全角英...
-
2つ以上の連続する空白文字を除去
-
全角半角変換 C++/CLI
-
Accessの文字数を調べたい
おすすめ情報