人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPで携帯とPC用のサイトを作成しています。
会員入会処理があるのでパスワードを入力させているのですが、半角英数字以外の入力に対してエラーを返すため、以下の処理を行っています。

if( !(mb_ereg(’[^0-9a-zA-Z]’, $_POST[’newpassword’])) )
{
error( ”パスワードにひらがな・カタカナ・漢字・記号が含まれている可能性があります。” );
exit();
}

しかし実際テストしてみるとこのチェックに引っかかりません。
入力時、パスワード欄(input type=”password”)に「あ」と入力するとアスタリスクが2個表示されるところを見ると、1バイトずつに分解してデータを受け取っているような気がします。
また、AUなどでは「input type=”password”」が無効になっているんでしょうか…
どうぞよろしく。

●質問者: kouuok
●カテゴリ:ウェブ制作
✍キーワード:au EXIT password pc PHP
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● えるふん
●20ポイント

http://php.net/mbstring

PHP: マルチバイト文字列関数(mbstring) - Manual

正規表現が「0-9a-zA-Z*以外*」,if文条件が「ではない(not)になっているため,

「0-9a-zA-Z」の場合は条件を実行という風になっています.


if( !(mb_ereg(’[0-9a-zA-Z]’, $_POST[’newpassword’])) )

if( (mb_ereg(’[^0-9a-zA-Z]’, $_POST[’newpassword’])) )

でしょう.


2 ● esecua
●20ポイント

if(!ereg(”^([0-9a-zA-Z])”, $_POST[’newpassword’])){

//エラー処理


かなぁ?間違っていたらごめんなさい。


3 ● insidekick
●20ポイント

if (!preg_match(”/^[a-zA-Z0-9]+$/”, $_POST[’newpassword’])) {

エラー処理

}


でどうでしょうか?

◎質問者からの返答

ありがとうございました。

もうちょい考えて見ます。


4 ● tomocky1
●20ポイント

http://www.au.kddi.com/ezfactory/index.html

KDDI au: EZfactory

PCで行った場合、


<?php

if (mb_ereg(”[0-9a-zA-Z]”, $_POST[”newpassword”])) {

print(”Check OK”);

} else {

print(”Check False”);

}

?>


以上のようなスクリプトで振り分けることができました。

(参考:mbstringの値は、

mbstring.detect_order no value no value

mbstring.encoding_translation Off Off

mbstring.func_overload 0 0

mbstring.http_input pass pass

mbstring.http_output pass pass

mbstring.internal_encoding no value no value

mbstring.language neutral neutral

mbstring.substitute_character no value no value

でデフォルトのままです。)


気になる点は、上記でも述べられていた、”!”がある点と、

”’”が大文字になっている点ですが、プログラム自体はあっていると思います。


あとは、携帯での都合ですが(PCの”type=password”では、ひらがなも一文字です)

一言にAUといっても、XHTML or HDML と二種類あって、機種によってはHTMLは自動的に

HDMLに変換されたりもします。

同じ会社でも古い機種と新しい機種で違うので調べてみてください。

参考までに、AUのEZwebのサイトを載せておきます。

http://www.au.kddi.com/ezfactory/tec/spec/html_con003_2.html#pas...

KDDI au: 入力フォーム変換仕様 > <input type="password">/<input type="radio">/<input type="checkbox">

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ