質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1341閲覧

PHPでのユーザー登録 重複登録できないように

shos3

総合スコア15

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2021/09/21 06:05

PHPでのユーザー登録で登録されているメールアドレスを何度も登録できないようにするようにしたく、コードを書いてもバリデーションが効かない状態です。どなたか改善点をお教えいただきたいです。

メールアドレスを空で登録するとはじかれますが重複の方は弾かれないのが現状です。

register.php

<?php require('../dbconnect.php'); session_start(); if (!empty($_POST)) { if ($_POST['email'] == '') { $error['email'] = 'blank'; }  if (empty($error)) {     $user = $db->prepare('SELECT COUNT(*) AS cnt FROM users WHERE email=?');    $user->execute(array($_POST['email']));    $record = $user->fetch(); if ($record['cnt'] > 0) {   $error['email'] = 'duplicate'; } } <dt>メールアドレス<span class="required">必須</span></dt> <dd> <input type="text" name="email" size="35" maxlength="255"value="<?php echo htmlspecialchars($_POST['email'], ENT_QUOTES); ?>" /> <?php if ($error['email'] == 'blank'): ?> <p class="error">* メールアドレスを入力してください</p> <?php endif; ?> <?php if ($error['email'] == 'duplicate'): ?> <p class="error">* 指定されたメールアドレスはすでに登録されています</p> <?php endif; ?> </dd>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

重複禁止カラムにunique属性をつけてinsert ignore intoしてみてください

投稿2021/09/21 06:11

yambejp

総合スコア115012

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shos3

2021/09/21 06:21

ご回答ありがとうございます。 学び始めて間も無くphpがあまり理解できていない部分が多いです。 カラムの属性のところで指定してあげたいのですが、unique属性が選択肢にない状況でして、、、 データベースはphpmyadminを使っています。
yambejp

2021/09/21 06:24

すでにuniqueな状態であれば phpmyadminからなら、構造でカラム一覧を表示して その他で「ユニーク」を選択してください
shos3

2021/09/21 06:34

ご回答ありがとうございます。その他からユニークを押せない状況であったのでユニーク属性は入っていましたが、ユーザー登録時にエラー文が出ないのでこれはregister.phpの記述が誤っているということでしょうか?度々申し訳ございません。
shos3

2021/09/21 06:46

はじかれるようになりました。 ご回答ありがとうございました。 分からない部分が多いのでもっと学習をします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問