Web開発学習(重複登録確認)
今日も引き続きWeb開発学習になります。
今日実装したものは、登録完了画面に登録ページとTOPページに戻るボタンの設定とデータベースに登録されている設定値との重複確認になります。
重複確認
HTML機能だけでネットワークアドレスやドメイン名の文字列の正常性の検証は既に実装済になります。
データベースに登録されている値の重複確認についてはHTMLでは出来ないためPHPを使ってデータベース登録情報との検証を行うことにしました。
検証する項目は、ドメイン名、ネットワークアドレス、ゲートウェイIPの3つになります。
使用用途については、HTMLでの入力必須項目にもしていないのと私の利用想定では、重複しても問題ないので除外してあります。
最終的に以下のように作成出来ました。
コード
実際の検証用のコードは、以下のようになります。
$form['domainName'] = filter_input(INPUT_POST, 'domainName', FILTER_SANITIZE_STRING);
if ($form['domainName'] === '') {
$error['domainName'] = 'blank';
} else {
$dbc = dbconnect();
$stmt = $dbc->prepare('SELECT count(*) FROM `network_segment` WHERE domain_name=? ');
if (!$stmt) {
die($dbc->error);
}
$stmt->bindValue(1, $form['domainName']);
$success = $stmt->execute();
if (!$success) {
die($dbc->error);
}
$cnt = $stmt->fetch(PDO::FETCH_COLUMN);
if (intval($cnt) > 0) {
$error['domainName'] = 'duplecate';
}
}
から文字入力の検証をPHP側に入れていますが、実際に入らないかなと思います。
PHPからデータベースへの接続は、PDOを使って接続しています。
接続に際して参考にしたのQiitの記事になります。
学習していた楽しかったこと
データベースに接続したり入力値の検証をしたりなどでセキュリティに関する部分を調べて実装するのはとても楽しかったです。
「このコードには、どんな危険性があるだろうか?」など考えながらより安全な方法を探して行くのどんどん気になることが出てきてワクワクしました。
今回のPHPによるデータベース登録値との検証設定で最も参考にしたので昨日紹介したUdemyの教材になります。
明日は、登録ページに登録一覧の表示と登録情報の編集の実装に挑戦したいと思います。
以上、ありがとうございました。