![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
プログラム初心者です
パスワードチェックする方法をおしえてください
質問1
半角英数字で8文字。その中に数字が含まれているかチェックしたいです
今までは数字が含まれているかチェックできていませんでした
if(!preg_match("/^[a-zA-Z0-9]+$/", $pass) ||(strlen($pass) < 8)){
print "8文字以上の半角英字の中に数字を混ぜてください";
}
質問2
暗号化する前にmysqli_real_escape_stringで処理させてもいいですか?それとも暗号化した後にmysqli_real_escape_stringで処理させたほうがいいですか?
$pass = mysqli_real_escape_string($link,$pass);
$pass=hash('sha256',$pass);
この下にDBに入れる処理
よろしくお願いします
No.3ベストアンサー
- 回答日時:
連投すみません訂正です
$regex = '/(?!\A[a-z]*+\z)(?!\A\d*+\z)\A[a-z\d]{8,}+\z/i';
if (!preg_match($regex, "fwaaaaaaaaaaaaaaaa")) {
echo '半角数字1文字以上・半角英字1文字以上・計8文字以上で構成してください';
}
回答ありがとございます
if (!preg_match($regex, $pass)) {
で試してみましたが数字が含まれてる場合でも登録できませんでした
No.2
- 回答日時:
こっちの方がいいかも・・・
$regex = '/(?!\A[a-z]\z)(?!\A\d\z)\A[a-z\d]{8,}+\z/i';
if (!preg_match($regex, $pass)) {
echo '半角数字1文字以上・半角英字1文字以上・計8文字以上で構成してください';
}
No.1
- 回答日時:
【回答1】
「^」「$」は改行コードを許してしまうのでこういう厳密な正規表現が必要なときは絶対に「\A」「\z」で。また数字だけの場合もダメだと思うので、数字と英字のペアにさせましょう。今回は条件付きサブパターンというPCREの機能を利用します。
$regex = '/\A(\d)[a-zA-Z\d]*?(?(1)[a-zA-Z]|\d)[a-zA-Z\d]*?\z/';
if (!preg_match($regex, $pass) || strlen($pass) < 8)) {
____echo '半角数字1文字以上・半角英字1文字以上・計8文字以上で構成してください';
}
【回答2】
暗号化「後」です。
$pass = hash('sha256', $pass);
$pass = mysqli_real_escape_string($link, $pass);
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- デスクトップパソコン 40年間の悩み キーボードにおいて初期値として漢字ローマ字変換に設定する方法 8 2023/05/08 14:50
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- その他(プログラミング・Web制作) パイソンのプログラムで continue と passの違い 3 2022/03/25 07:38
- Mac OS MAC (Late 2020)で復元後、キーボード入力(文字)ができなくなり困っています。 1 2023/02/15 20:35
- その他(プログラミング・Web制作) 単純なコマンドプロンプトが動きません。 2 2022/04/19 15:21
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字の入力で横バー上段、中断...
-
HTML5の「pattern」属性で前後...
-
全角括弧と全角読点の間隔を狭...
-
VBAで英数字入力チェックしたい。
-
ACCESS2000の文字数制限について
-
PHPでMySQLに入力した半角スペ...
-
カタカナ判別
-
全角半角変換 C++/CLI
-
【VB6】文字判定
-
「運営スタッフに連絡」システ...
-
VBAのコマンドボタンの文字列の...
-
REGEXREPLACE関数について、
-
PHPの正規表現で住所を分けるに...
-
エクセルの文字列の抽出方法に...
-
PHPの正規表現の/(?<!\\\\\\),/...
-
エスケープ文字の復帰(¥r)と...
-
fgetsとsscanf
-
PHPで出力したHTMLのソースが汚い
-
どなたか私のPHP文章を添削して...
-
preg_match_all 複数の文字列を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
メッセージボックスで1025文字...
-
文字の入力で横バー上段、中断...
-
Excel関数「COUNTIF」で”文字”...
-
エクセルのCOUNTIFが正しくカウ...
-
全角括弧と全角読点の間隔を狭...
-
半角記号、全角記号を含む正規...
-
特定の文字を簡単な操作で半角...
-
全角英数文字が嫌われる理由を...
-
VBAで英数字入力チェックしたい。
-
エクセルでの漢字、カタカナ、...
-
全角半角変換 C++/CLI
-
XMLのタグ名の禁則文字
-
VBScriptである文字列に半角文...
-
記号は半角と全角どちらがよい...
-
文字列中の両丸括弧を取り除くV...
-
パソコンで全角、半角文字の切...
-
HTML5の「pattern」属性で前後...
-
Replace関数は文字数の制限ある...
-
Excel2002 一桁数字だけ全角に置換
-
入力禁止文字の設定方法につい...
おすすめ情報