[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Обращение к базе данных
koma00

<?php
include "connect.php"
?>

<html>
<
body>
<
form action="" method="POST">
<
table align="center" cellpadding=4 cellspacing=0 border=0 style="border-collapse:collapse">
<
tr><td>Ваш e-mail:</td><td><input name="e-mail" type="text" value=""></td></tr>
<
tr><td>Пароль:</td><td><input name="password" type="password" value=""></td></tr>
<
tr><td>Ещё раз пароль:</td><td><input name="rpassword" type="password" value=""></td></tr>
<
tr><td colspan=2 align="center"><input name="do" type="submit" value="Зарегистрироваться"></td></tr>
</
table></form></body></html>

<?php
$email = $_POST['e-mail'];
$password = $_POST['password'];
$rpassword = $_POST['rpassword'];
if($email !='') {
mysql_query("SELECT * FROM users WHERE 'e-mail'='".strtolower($email)."'");
if(mysql_affected_rows()==0) {
if($password !='') {
if($rpassword !='') {
if($password !='' AND $rpassword !='' AND $password === $rpassword) {
$r = @mysql_query("INSERT INTO users VALUES(NULL,'".strtolower($email)."','".md5($pass)."')");
}
else{
echo 'Пароли не совпадают';
}
}

else {
echo 'Введите повторный пароль';
}
}

else {
echo 'Введите пароль';
}
}

else{
echo 'Пользователь с таким e-mail уже зарегистрирован';
}
}

else {
echo 'Введите e-mail';
}
?>

Не идёт проверка на присутствие введенного e-mail в базе данных, то-есть в любом случаи пользователь добавляется в базу данных. Подскажите пожалуйста где в моем коде ошибка и как её исправить.



Спустя 4 минуты, 1 секунда (13.06.2011 - 13:46) nugle написал(а):
koma00
никто не учил как правильно инициализировать переменные, отправленные из формы?

$var = !empty($_POST['var']) ? $_POST['var'] : NULL;


попробуй вывести $email и посмотри есть ли там что-то

Спустя 7 минут, 12 секунд (13.06.2011 - 13:53) koma00 написал(а):
Переменные работают правильно.
if(mysql_affected_rows()==0)
здесь значение всегда равно 0. Мне нужно это исправить. То-есть в зависимости от присутствия или отсутствия e-mail в базе данных должно выполняться
echo 'Пользователь с таким e-mail уже зарегистрирован'
или
if($password !='') {
if($rpassword !='') {
if($password !='' AND $rpassword !='' AND $password === $rpassword) {
$r = @mysql_query("INSERT INTO users VALUES(NULL,'".strtolower($email)."','".md5($pass)."')");
}
else{
echo 'Пароли не совпадают';
}
}

else {
echo 'Введите повторный пароль';
}
}

else {
echo 'Введите пароль';
}

Спустя 3 минуты, 3 секунды (13.06.2011 - 13:56) nugle написал(а):
кодировка какая?
выведи это strtolower($email) и посмотри что там

Спустя 5 минут, 20 секунд (13.06.2011 - 14:02) koma00 написал(а):
Я ввожу в поле e-mail - koma00@yandex.ru
Через эту функцию strtolower($email) выводиться - koma00@yandex.ru

Спустя 8 минут, 46 секунд (13.06.2011 - 14:10) nugle написал(а):
так попробуй
$query = mysql_query("SELECT * FROM users WHERE 'e-mail'='".strtolower($email)."'");
echo mysql_affected_rows().mysql_num_rows($query);

и сюда отпиши

Спустя 2 минуты, 51 секунда (13.06.2011 - 14:13) koma00 написал(а):
Выводит 10

Спустя 3 минуты, 23 секунды (13.06.2011 - 14:17) nugle написал(а):
поменяй это
mysql_query("SELECT * FROM users WHERE 'e-mail'='".strtolower($email)."'");
if(mysql_affected_rows()==0) {

на это
$result = mysql_query("SELECT * FROM users WHERE 'e-mail'='".strtolower($email)."'");
if(mysql_num_rows($result)==0) {

Спустя 2 минуты, 27 секунд (13.06.2011 - 14:19) koma00 написал(а):
выводит ошибку Warning: mysql_num_rows() expects parameter 1 to be resource, null given in A:\home\localhost\www\reg\index.php on line 46

Спустя 4 минуты, 10 секунд (13.06.2011 - 14:23) nugle написал(а):
вот это
$result = mysql_query("SELECT * FROM users WHERE 'e-mail'='".strtolower($email)."'");

замени на это
$result = mysql_query("SELECT * FROM users WHERE `e-mail`='".strtolower($email)."'");

и будет счастье

Спустя 21 минута, 21 секунда (13.06.2011 - 14:44) koma00 написал(а):
Спасибо всё работает. Скажите пожалуйста в чём заключалась моя ошибка?

Спустя 11 минут, 53 секунды (13.06.2011 - 14:56) nugle написал(а):
koma00
ты писал 'e-mail' и `e-mail`

Спустя 2 минуты, 10 секунд (13.06.2011 - 14:59) koma00 написал(а):
У меня при переходе на страницу пишет Введите e-mail. Как сделать что бы эта надпись отображалась только после отправки данных через кнопку зарегистрироваться.

Спустя 49 минут, 30 секунд (13.06.2011 - 15:48) nugle написал(а):
koma00
if(!$_POST['do'])
{
// твой скрипт
}

Спустя 1 час, 59 минут, 9 секунд (13.06.2011 - 17:47) koma00 написал(а):
Спасибо. Только
if($_POST['do'])
{
// твой скрипт
}

Спустя 2 часа, 22 минуты, 56 секунд (13.06.2011 - 20:10) koma00 написал(а):
Спасибо
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.