下記コードで、アドレスの重複チェックを表示することができました。
DBでuserdataというテーブルにemailというカラムがあり、test@testという値が格納されてます。
<?php $dsn = 'mysql:dbname=test;host=localhost;charset=utf8'; $user = 'root'; $password = ''; try{ $dbh = new PDO($dsn, $user, $password); $dbh->query('SET NAMES sjis'); $sql = 'select * from userdata'; foreach ($dbh->query($sql) as $row) { if($row['email'] == $_POST['email1']){ echo ($_POST['email1'] ."は既に登録されています"); } } }catch (PDOException $e){ print('Error:'.$e->getMessage()); die(); } $dbh = null; ?> <tr> <td>E-mail</td> <td colspan="2"><input type="email" name="email1" maxlength="50" size="46" placeholder="info@example.com" ></td> <td></td> </tr>
とりあえず正常に動作するかのテストなのでブラウザの一番上に表示されている状態ですが
本当は下記のところに表示させたいのです。
<tr> <td>E-mail</td> <td colspan="2"><input type="email" name="email1" maxlength="50" size="46" placeholder="info@example.com" ></td> <td>ここにエラー時の表示をさせたい</td> </tr>
ということで、変数に代入しました。
$error = ($_POST['email1'] ."は既に登録されています");
<tr> <td>E-mail</td> <td colspan="2"><input type="email" name="email1" maxlength="50" size="46" placeholder="info@example.com" ></td> <td><?php $error ?></td> </tr>
スコープの関係で呼び出せてないだろうなとは思いますが、
まだ勉強中の身で、この例だと$errorはif内でしか呼び出せなかったことを学んだ記憶があります。
アドレスの重複チェックを定義したものを呼び出すには、どうしたら良いのでしょうか?
最終的にはクラスを作って呼び出したいのです...
<?php class mail{ function collation(){ $dsn = 'mysql:dbname=test;host=localhost;charset=utf8'; $user = 'root'; $password = ''; try{ $dbh = new PDO($dsn, $user, $password); $dbh->query('SET NAMES sjis'); $sql = 'select * from userdata'; foreach ($dbh->query($sql) as $row) { if($row['email'] == $_POST['email1']){ $error = ($_POST['email1'] . "は既に登録されています"); } } }catch (PDOException $e){ print('Error:'.$e->getMessage()); die(); } $dbh = null; } } ?>
<tr> <td>E-mail</td> <td colspan="2"><input type="email" name="email1" maxlength="50" size="46" placeholder="info@example.com" ></td> <td><?php mail::collation(); ?></td> </tr>
イメージは大体あってると思うのですが、記述をどこか間違えていることは自覚していますが、どうすればよいのかわからず...
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/05 06:03
退会済みユーザー
2016/06/05 06:13
退会済みユーザー
2016/06/05 06:37
2016/06/05 07:06
退会済みユーザー
2016/06/05 07:12
2016/06/05 08:15
退会済みユーザー
2016/06/05 08:45 編集
2016/06/05 09:08
退会済みユーザー
2016/06/05 09:18
退会済みユーザー
2016/06/05 09:19 編集
退会済みユーザー
2016/06/05 09:21
2016/06/05 09:24
退会済みユーザー
2016/06/05 09:27
退会済みユーザー
2016/06/05 10:39