現在。htmlで値を取得しphpでチェック処理しております。
name="password"はしっかり値が渡せて、phpでチェックができるのですが、
name="username"に関しては、値は渡せているのですがphpでカラのチェックや
hash化した際の突合せチェックができません。
またname="username"に1文字だけ入れて実行しても”idが入力されていません”
と出力されます。
name="username"はどうすればphpでチェックできまでしょうか??
宜しくお願い致します。
下記にコードを記載致します。
html
1<form action="{$script}" method="POST"> 2 <p class="comment">ID パスワードを入力してください</p> 3 ID<p class="input"><input type="text" name="username"/></p> 4 pass<p class="input"><input type="password" name="password" /></p> 5 <ul> 6 <li><input type="submit" name="login_button" value="ログイン" /></li> 7 </ul> 8 {$login_error_message} 9 </form>
php
1 global $admin_password;//config.phpのパス 2 global $admin_id; 3 global $login_error_message; 4 5 $admin_id = htmlspecialchars($_POST['username'],ENT_QUOTES,'UTF-8'); 6 $input_password = htmlspecialchars($_POST['password'],ENT_QUOTES,'UTF-8'); 7 $admin_id_sha = hash('sha512',$admin_id);//idをハッシュ化 8 $admin_password_sha = hash('sha512',$admin_password);//パスをハッシュ化 9 10 11 if(empty($admin_id)){ 12 $login_error_message = '<p class="error_message">idが入力されていません</p>'; 13 show_login_form(); 14 exit; 15 } 16 17 if(empty($input_password)){ 18 $login_error_message = '<p class="error_message">パスワードが入力されていません</p>'; 19 show_login_form(); 20 exit; 21 } 22 23 if(hash('sha512',$admin_id) != $admin_id_sha){ 24 $login_error_message = '<p class="error_message">idが違います</p>'; 25 show_login_form(); 26 exit; 27 } 28 29 if(hash('sha512',$input_password) != $admin_password_sha){//ハッシュ化したpassの比較 30 $login_error_message = '<p class="error_message">パスワードが違います</p>'; 31 show_login_form(); 32 exit; 33 }
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/04/07 12:14
2016/04/07 18:18
2016/04/07 18:40 編集