[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Регистрация пользователей
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>Желаемый ник:</td><td><input name="login" 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
$login = $_POST['login'];
$password = $_POST['password'];
$rpassword = $_POST['rpassword'];
if($login !='') {
mysql_query("SELECT * FROM users WHERE e-mail='".strtolower($login)."'");
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($nick)."','".md5($pass)."')");
}
else{
echo 'Пароли не совпадают';
}
}

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

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

else{
echo 'Логин занят';
}
}

else {
echo 'Введите логин';
}
?>



Постоянно выводит ЛОГИН ЗАНЯТ. Подскажите в чём заключаеться ошибка и как её исправить.



Спустя 14 минут, 39 секунд (12.06.2011 - 21:58) Mirexzpalich написал(а):
Это

mysql_query("SELECT * FROM users WHERE e-mail='".strtolower($login)."'");
if(mysql_affected_rows()==0)

замени на это

$query = mysql_query("SELECT count(*) FROM users WHERE e-mail='".strtolower($login)."'");
if(!mysql_fetch_assoc($query))

Спустя 5 минут, 8 секунд (12.06.2011 - 22:03) koma00 написал(а):
Изменил, теперь пишет
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in A:\home\localhost\www\reg\index.php on line 21

Спустя 8 минут (12.06.2011 - 22:11) Mirexzpalich написал(а):

$query = mysql_query("SELECT count(*) FROM users WHERE e-mail='".strtolower($login)."'");
echo mysql_error();
if(!mysql_num_row($query))



Спустя 2 минуты, 37 секунд (12.06.2011 - 22:14) koma00 написал(а):
Теперь пишет
Unknown column 'e' in 'where clause'
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in A:\home\localhost\www\reg\index.php on line 22

Спустя 2 минуты, 15 секунд (12.06.2011 - 22:16) Mirexzpalich написал(а):
А у тебя поле e-mail точно есть? Если есть то запрос такой сделай:

$query = mysql_query("SELECT count(*) FROM `users` WHERE `e-mail`='".strtolower($login)."'");

е-mail в кавычках. И вообще, всегда названия таблиц и полей бери в кавычки (где буковка Ё)

А то выходит, что из значение поля е вычетается значение поля mail и это сравнивается с логином.

Спустя 3 минуты, 57 секунд (12.06.2011 - 22:20) koma00 написал(а):
Всё равно пишет логин занят

Спустя 8 минут, 22 секунды (12.06.2011 - 22:28) 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>Желаемый ник:</td><td><input name="login" 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
$login = $_POST['login'];
$password = $_POST['password'];
$rpassword = $_POST['rpassword'];
if($login !='') {
$query = mysql_query("SELECT count(*) FROM `users` WHERE `e-mail`='".strtolower($login)."'");
echo mysql_error();
if(!mysql_fetch_assoc($query)) {
if($password !='') {
if($rpassword !='') {
if($password !='' AND $rpassword !='' AND $password === $rpassword) {
$r = @mysql_query("INSERT INTO users VALUES(NULL,'".strtolower($nick)."','".md5($pass)."')");
}
else{
echo 'Пароли не совпадают';
}
}

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

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

else{
echo 'Логин занят';
}
}

else {
echo 'Введите логин';
}
?>

На странице выводиться Логин занят

Спустя 10 минут, 19 секунд (12.06.2011 - 22:39) Mirexzpalich написал(а):
Попробуй изменить на свой.... только про кавычки не забудь....

Спустя 17 минут, 4 секунды (12.06.2011 - 22:56) inpost написал(а):
$res = mysql_query("
SELECT `id`
FROM `users`
WHERE `e-mail`='"
.strtolower($login)."'
LIMIT 1
"
);
if(!mysql_num_rows($res))
{
echo 'Ошибки нет!';
}
else
{
echo 'такая запись уже есть';
}

Спустя 10 часов, 53 минуты, 23 секунды (13.06.2011 - 09:49) linker написал(а):
inpost
У тебя лажа какая-то.
$query = mysql_query("SELECT count(*) FROM `users` WHERE `e-mail`='".strtolower($login)."'");
if (!mysql_num_rows($query))
{
if (!empty($password) && !empty($rpassword) && $password === $rpassword)
{
$r = @mysql_query("INSERT INTO users VALUES(NULL,'".strtolower($nick)."','".md5($pass)."')");
}
}

else
echo "Логин занят";

Спустя 16 минут, 44 секунды (13.06.2011 - 10:06) koma00 написал(а):
Mirexzpalich спасибо за помощь. Я изменил свой код так как ты сказал. Теперь у меня такой код

<?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>Желаемый ник:</td><td><input name="login" 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
$login = $_POST['login'];
$password = $_POST['password'];
$rpassword = $_POST['rpassword'];
if($login !='') {
mysql_query("SELECT * FROM users WHERE 'e-mail'='".strtolower($login)."'");
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($nick)."','".md5($pass)."')");
}
else{
echo 'Пароли не совпадают';
}
}

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

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

else{
echo 'Логин занят';
}
}

else {
echo 'Введите логин';
}
?>

Но теперь у меня другая ошибка. В базу данных не вноситься e-mail. Как мне это исправить?

Спустя 12 минут, 6 секунд (13.06.2011 - 10:18) neadekvat написал(а):
Цитата (koma00 @ 13.06.2011 - 11:06)
Но теперь у меня другая ошибка. В базу данных не вноситься e-mail. Как мне это исправить?

Пост linker'a ты не заметил?

Спустя 7 минут, 6 секунд (13.06.2011 - 10:25) koma00 написал(а):
Спасибо уже понял ошибку. При проверке обнаружил, что не выполняется проверка на использование e-mail, то-есть на один адрес e-mail можно регистрироваться неограниченное количество раз.
<?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';
}
?>

Как это исправить?

Спустя 11 минут, 17 секунд (13.06.2011 - 10:36) inpost написал(а):
linker
там только
if(mysql_num_rows($res))
заменить на
if(!mysql_num_rows($res)) ,

или местами поменять условия smile.gif обычная опечатка smile.gif

Спустя 14 минут, 29 секунд (13.06.2011 - 10:51) koma00 написал(а):
извините, но у меня в коде нет if(mysql_num_rows($res))

Спустя 4 минуты, 54 секунды (13.06.2011 - 10:56) linker написал(а):
koma00
Ну так напиши. mysql_affected_rows() применяется ТОЛЬКО для запросов: UPDATE, INSERT, DELETE, он не работает для SELECT.

Спустя 6 минут, 19 секунд (13.06.2011 - 11:02) koma00 написал(а):
Скажите пожалуйста куда вставить строчку if(mysql_num_rows($res)) в мой код

<?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';
}
?>

Спустя 11 часов, 38 минут, 48 секунд (13.06.2011 - 22:41) linker написал(а):
koma00
Едрить-мадрить. Тебе же написали mysql_affected_rows() не применяется для SELECT-запросов, делай вывод где и что менять.
Быстрый ответ:

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