Как запретит регистрацию одного мейла дважды на сайте? инфо о пользователях храниться в phpmyadmin
В обработчике регистрации, сделать поиск по мылу в базе данных, если мыло не найденно то регистрация, если нет то ошибка. За подробной информацией на мыло. А вообще в таких вопросах нужно указывать хотябы кусок кода.
1)Создаём тестовую таблицу
CREATE TABLE IF NOT EXISTS `test_table` (
`id` INT(11) UNSIGNED AUTO_INCREMENT,
`email` VARCHAR(255) UNIQUE,
PRIMARY KEY(`id`)) ENGINE= MYISAM
2)Пишем скриптик reg.php
<?php
if(isset($_POST['reg'])) {//Если кнопка нажата
$email = trim(htmlspecialchars($_POST['email']));//Получаем адрес эл. почты
if(!empty($email)) {//Если пользователь ввёл адрес
if(!filter_var($email, FILTER_VALIDATE_EMAIL)) echo 'Некорректный адрес эл. почты';//Проверяем на корректность
else {//Если адрес корректный
$mysqli = new mysqli('localhost', 'root', '', 'db_name');//Соединяемся с БД
$query = $mysqli->query("SELECT `email` FROM `test_table` WHERE `email` = '$email'");//Делаем запрос
if($query->num_rows == 0) echo 'Можете зарегистрироваться';//Если количество строк 0 то адрес можно зарегистрировать
else echo 'Хулиган!! ! Такой адрес уже зарегистрирован';//В противном случии нужно настучать в бубен
}
}
else echo 'Введите адрес эл. почты';
}
?>
<form action="" method="post">
<input type="text" name="email" placehlder="email" />
<input type="submit" name="reg" value="Регистрация" />
</form>
Во-первых, инфо хранится не в phpmyadmin, а в базе данных MySQL - phpmyadmin всего лишь визуализирует работу с базой. Во-вторых, раз уж все равно пользуешься ним, добавь полю email уникальный индекс (UNIQUE), тогда дубликаты будут исключены. Заодно, таким образом ты ускоришь поиск по базе.
Далее, чтобы не просто выкидывать юзера с ошибкой, а вывести ему извещение о том, что он неправ, нужно выбрать свой путь самурая: если ты хочешь повторную регистрацию запретить вообще, проверяй успешно ли прошел запрос INSERT - если не прошел, значит такой email уже есть в базе. Если хочешь перезаписывать пользователя (например, при восстановлении пароля) , используешь REPLACE вместо INSERT - он либо добавит новую запись, либо обновит существующую.
Данный вариант выгоднее предложенных выше, так как для решения задачи будет использован только один запрос к базе, а не два.
$email = $_POST['email'];
$result = mysql_query("SELECT email FROM user WHERE email='$email' ");
$myrow = mysql_fecth_array($result);
if($myrow['email']) // Если существует пользователь с таким email-ом
{
echo "А-я-яй! С такого email-a Вы зарегистрированы. "
}