if ($_SERVER['REQUEST_METHOD'] == "POST") {
if ($_POST['user'] == "")
$userIsEmpty = true;
$con = oci_connect("phpuser", "phpuserpw", "localhost/XE");
if (!$con) {
$m = oci_error();
exit('Connect Error' . $m['message']);
}
}
「user」フィールドと名前が一致するユーザーが、すでに存在するかどうかを確認するコードを追加します。このコードは、「user」フィールド内の名前と一致する名前のウィッシャー ID 番号の検索を試みることによって、これを実行します。そのような ID 番号が存在する場合、$userNameIsUnique の値は「false」に変更されます。
MySQL データベースの場合:
if ($_SERVER["REQUEST_METHOD"] == "POST") {
Displaying error messages
if ($_POST["user"]=="") {
$userIsEmpty = true;
}
$con = mysqli_connect("localhost", "phpuser", "phpuserpw"); if (!$con) { exit('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); } //デフォルトのクライアント文字セットを設定する mysqli_set_charset($con, 'utf-8'); mysqli_select_db($con, "wishlist");
$user = mysqli_real_escape_string($con, $_POST["user"]); $wisher = mysqli_query($con, "SELECT id FROM wishers WHERE name='".$user."'"); $wisherIDnum=mysqli_num_rows($wisher); if ($wisherIDnum) { $userNameIsUnique = false; }
}
Oracle データベースの場合:
if ($_SERVER['REQUEST_METHOD'] == "POST") {
if ($_POST['user'] == "")
$userIsEmpty = true;
$con = oci_connect("phpuser", "phpuserpw", "localhost");
if (!$con) {
$m = oci_error();
exit('Connection Error ' . $m['message']);
}
$query = "SELECT id FROM wishers WHERE name = :user_bv";
$stid = oci_parse($con, $query);
$user = $_POST['user'];
$wisherID = null;
oci_bind_by_name($stid, ':user_bv', $user);
oci_execute($stid);
// 各ユーザー名は一意にすべきである。送信されたユーザーがすでに存在するかどうかを確認する。$row = oci_fetch_array($stid, OCI_ASSOC);
if ($row){
$userNameIsUnique = false;
}
}
ユーザーが一意かどうかを確認するコードのあとに、ユーザーがパスワードを正しく入力および確認入力したかどうかを確認する一連の if 節を追加します。コードは、フォーム内の「Password」("password") および「Confirm Password」('password2) の各フィールドが空でなく、同一であることを確認します。そうでない場合は、それに応じて対応する boolean 変数の値が変わります。
if ($_POST["password"]=="") $passwordIsEmpty = true; if ($_POST["password2"]=="") $password2IsEmpty = true; if ($_POST["password"]!=$_POST["password2"]) { $passwordIsValid = false;}
「wishers」データベースに新しいエントリを挿入するコードを追加して、if ($_SERVER['REQUEST_METHOD'] == "POST") 節を完成させます。コードは、ウィッシャーの名前が一意に指定されていること、およびパスワードが有効に入力および確認されていることを確認します。条件を満たす場合、コードは HTML フォームから「user」と「password」の値を取り、wishers データベース内の新しい行の Name 列と Password 列にそれぞれ挿入します。行を作成したあと、コードはデータベース接続を切断し、アプリケーションをページ editWishList.php にリダイレクトします。
Welcome!<br> <form action="createNewWisher.php" method="POST"> Your name: <input type="text" name="user"/><br/>
<?php
if ($userIsEmpty) {
echo ("Enter your name, please!");
echo ("<br/>");
}
if (!$userNameIsUnique) {
echo ("The person already exists. Please check the spelling and try again");
echo ("<br/>");
}
?>
Please confirm your password: <input type="password" name="password2"/><br/>
<?php
if ($password2IsEmpty) {
echo ("Confirm your password, please");
echo ("<br/>");
}
if (!$password2IsEmpty && !$passwordIsValid) {
echo ("The passwords do not match!");
echo ("<br/>");
}
?>
新規ウィッシャーの作成機能のテスト
アプリケーションを実行します。index ページが開きます。
index ページで、テキスト「Still don't have a wish list?」の横にあるリンクをクリックします。次のフォームが開きます。