|
|
|
| Есть форма регистрации, есть проверка на пустые поля, но почему-та не проверяется существование записи...
Код:
if($row['login'] == $login) {
echo "Логин уже используется в системе!";
}else{
|
Перед этим проходит коннект к базе mysql и проверяется, есть ли такой логин в базе или нет.Но проверка не проходит и юзер регистрирует любое занятое имя...
Может можно проверить как-то другим способом? | |
|
|
|
|
|
|
|
для: DMN
(02.12.2005 в 23:15)
| |
<?
$sql="SELECT * FROM users WHERE login='$login'";
$result=mysql_query($sql);
if (mysql_num_rows($result))
{
echo "Это имя уже занято";
}
?>
|
| |
|
|
|
|
|
|
|
для: Loki
(02.12.2005 в 23:53)
| | нерабоает!!! | |
|
|
|
|
|
|
|
для: DMN
(03.12.2005 в 00:00)
| |
<?
if(mysql_result(mysql_query("SELECT COUNT(*) FROM users WHERE login = '$login' LIMIT 1"),0) == 1)
echo "Извините такой логин уже есть";
?>
|
| |
|
|
|
|
|
|
|
для: Евгений Петров
(03.12.2005 в 00:06)
| | также неработает... :((( | |
|
|
|
|
|
|
|
для: DMN
(03.12.2005 в 00:14)
| | А что значит не работает? | |
|
|
|
|
|
|
|
для: Евгений Петров
(03.12.2005 в 00:29)
| | >А что значит не работает?
это значит, что запись в базу всё-равно идёт! | |
|
|
|
|
|
|
|
для: DMN
(03.12.2005 в 00:35)
| | Да исчерпывающий ответ. :) Приведите весь код. | |
|
|
|
|
|
|
|
для: Евгений Петров
(03.12.2005 в 00:57)
| | Да что тут непонятного???
Весь код обсалютно не к чему!
Вот ещё нашёл:
$result = mysql_query("SELECT 'id_member' FROM 'members' WHERE login = '$login'");
if(mysql_num_rows($result) > 0 ) {
echo "Извините такой логин уже есть";
}else{
|
Если кому непонятно, поясняю...
Идёт коннект к базе, далее проверяется, если похожая запись или нет, если есть выводится "Извините такой логин уже есть", если нет, то вводится в базу... | |
|
|
|
|
|
|
|
для: DMN
(03.12.2005 в 01:10)
| | Я все прекрсано понимаю, но проблема не в тех конструкциях что мы вам привели а именно в вашем коде, т.к. все эти конструкции рабочие. | |
|
|
|
|
|
|
|
для: DMN
(02.12.2005 в 23:15)
| | Вот код ВСЕЙ страницы:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Регистрация в партнёрской программе.</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head><body>
<form action="index.php" method="POST">
Ваш логин: <input name="login" type="text" value="" maxlength=15/><br><br>
Ваш пароль: <input name="password" type="text" value="" maxlength=15/><br><br>
Email: <input type="text" name="email" value="" size=28><br><br>
WebMoney кошелёк: <input name="wmz" type="text" value="" maxlength=13/><br><br>
<input type="submit" name="set" value="Регистрация"/>
</form>
</body></html>
<?php
if($_POST[set] == "Регистрация"){
// проверка на пустые поля
if(empty($login)){echo "Вы не ввели логин!"; exit;}
if(empty($password)){echo "Вы не ввели пароль!"; exit;}
if(empty($email)){echo "Вы не ввели email!"; exit;}
if(empty($wmz)){echo "Вы не ввели свой номер кошелька!"; exit;}
require_once("part/site_config.php");
$result = mysql_query("SELECT 'id_member' FROM 'members' WHERE login = '$login'");
if(mysql_num_rows($result) > 0 ) {
echo "Извините такой логин уже есть";
}else{
function safe_term($variable){
$variable = addslashes(trim($variable));
return $variable;
}
$login = safe_term($_POST['login']);
$pas = safe_term($_POST['password']);
$email = safe_term($_POST['email']);
$wmz = safe_term($_POST['wmz']);
$date=date("m.d.Y H:i");
$pas=sha1($password);
$query="INSERT into members (id_member, created, login, email, wmz, zakaz, z_opl) values (
'',
'$date',
'".$login."',
'".$email."',
'".$wmz."',
'0',
'0'
)";
mysql_query($query);
mysql_query('SELECT * FROM users')
or die(mysql_error());
$query1="INSERT into users (username, password) values (
'".$login."',
'".$pas."'
)";
mysql_query($query1);
echo "Получилось!";
exit;
}
}
?>
|
| |
|
|
|
|
|
|
|
для: DMN
(03.12.2005 в 01:46)
| | Тю ну так у вас же в конце явно занесение в таблицу идет
<?
$query1="INSERT into users (username, password) values (
'".$login."',
'".$pas."'
)";
mysql_query($query1);
?>
|
| |
|
|
|
|
|
|
|
для: DMN
(02.12.2005 в 23:15)
| | Ладно, изменил до такого:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Регистрация в партнёрской программе.</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head><body>
<form action="index.php" method="POST">
Ваш логин: <input name="login" type="text" value="" maxlength=15/><br><br>
Ваш пароль: <input name="password" type="text" value="" maxlength=15/><br><br>
Email: <input type="text" name="email" value="" size=28><br><br>
WebMoney кошелёк: <input name="wmz" type="text" value="" maxlength=13/><br><br>
<input type="submit" name="set" value="Регистрация"/>
</form>
</body></html>
<?php
if($_POST[set] == "Регистрация"){
// проверка на пустые поля
if(empty($login)){echo "Вы не ввели логин!"; exit;}
if(empty($password)){echo "Вы не ввели пароль!"; exit;}
if(empty($email)){echo "Вы не ввели email!"; exit;}
if(empty($wmz)){echo "Вы не ввели свой номер кошелька!"; exit;}
require_once("part/site_config.php");
$result = mysql_query("SELECT 'id_member' FROM 'members' WHERE login = '$login'");
if(mysql_num_rows($result) > 0 ) {
echo "Извините такой логин уже есть";
}else{
function safe_term($variable){
$variable = addslashes(trim($variable));
return $variable;
}
$login = safe_term($_POST['login']);
$pas = safe_term($_POST['password']);
$email = safe_term($_POST['email']);
$wmz = safe_term($_POST['wmz']);
$date=date("m.d.Y H:i");
$pas=sha1($password);
$query="INSERT into members (id_member, created, login, password, email, wmz, zakaz, z_opl) values ('', '$date', '".$login."', '".$password."', '".$email."', '".$wmz."', '0', '0' )";
mysql_query($query);
echo "Получилось!";
exit; }
}
?>
|
| |
|
|
|
|
|
|
|
для: DMN
(02.12.2005 в 23:15)
| | Смотрите пост ниже... | |
|
|
|
|
|
|
|
для: DMN
(02.12.2005 в 23:15)
| | Сократил до такого!!!
<?php
if($_POST[set] == "Регистрация"){
require_once("part/site_config.php");
// Здесь сделать проверку...
$date=date("d.m.Y H:i");
$pas=sha1($password);
$query="INSERT into members (id_member, created, login, password, email, wmz, zakaz, z_opl) values (
'', '$date', '$login', '$pas', '$email', '$wmz', '0', '0')";
mysql_query($query);
echo "Получилось!";
}
?>
|
Может это глюки от того, что я на "Денвере" тестирую??? Хотя он последней версии... | |
|
|
|
|
|
|
|
для: DMN
(03.12.2005 в 23:59)
| | Попробуйте так:
<?
function to_mysql($string)
{
if(!get_magic_quotes_gpc())
return mysql_escape_string($string);
else
return $string;
}
if($_POST['set'] == "Регистрация")
{
// проверка на пустые поля
if(empty($login))
exit("Вы не ввели логин!");
else
$login = to_mysql($login);
if(empty($password))
exit("Вы не ввели пароль!");
if(empty($email))
exit("Вы не ввели email!");
else
$email = to_mysql($email);
if(empty($wmz))
exit("Вы не ввели свой номер кошелька!");
else
$wmz = to_mysql($wmz);
require_once("part/site_config.php");
if(mysql_result(mysql_query("SELECT COUNT(*) FROM members WHERE login = '$login' LIMIT 1"),0) == 1)
echo "Извините такой логин уже есть";
else
{
$pas = sha1($password);
if(mysql_query("INSERT INTO members() VALUES
(
'',
'".date("m.d.Y H:i")."',
'$login',
'$pas',
'$email',
'$wmz',
'0',
'0'
)"))
echo "Получилось";
else
echo mysql_error();
}
}
?>
|
| |
|
|
|
|
|
|
|
для: Евгений Петров
(04.12.2005 в 01:52)
| | Пишет "Column count doesn't match value count at row 1" при любом значении!!! | |
|
|
|
|
|
|
|
для: DMN
(04.12.2005 в 02:30)
| | А какая у вас структура members? | |
|
|
|
|
|
|
|
для: Евгений Петров
(04.12.2005 в 02:57)
| | Структура такая:
'id_member'
'created'
'login'
'password'
'email'
'wmz'
'zakaz'
'z_opl' | |
|
|
|
|
|
|
|
для: DMN
(04.12.2005 в 03:26)
| | Странно, ошибка "Column count doesn't match value count at row 1" сообщает, что у вас не совпадает число столбцов в таблице members и INSERT-запросе к этой таблице... | |
|
|
|
|
|
|
|
для: DMN
(04.12.2005 в 03:26)
| | А структура точно такая? У вас есть phpMyAdmin или дампер какой нибудь. Выложите дамп таблицы members. | |
|
|
|