Как сделать такой скрипт на php я знаю, но я НЕ знаю каким sql-запросом проверить наличие пользователя с таким именем в MySQL!!!
Подскажите как это сделать, пожалуйста.
Спустя 7 минут, 41 секунда (3.04.2010 - 22:19) sergeiss написал(а):
Переведи на язык SQL такой текст:
"Выбрать из нужной таблицы запись (или набор полей), у которой определенное поле, содержащее логин, равно указанной величине".
Далее надо проверить, сколько строк было выбрано. Если 1 - то всё ОК. Если ноль - нету такого логина. Если больше 1 - какие-то проблемы с БД, если дубли логинов.
"Выбрать из нужной таблицы запись (или набор полей), у которой определенное поле, содержащее логин, равно указанной величине".
Далее надо проверить, сколько строк было выбрано. Если 1 - то всё ОК. Если ноль - нету такого логина. Если больше 1 - какие-то проблемы с БД, если дубли логинов.
Спустя 3 минуты, 42 секунды (3.04.2010 - 22:22) phz написал(а):
Как-то так....
$sql = mysql_query("SELECT COUNT(*) AS `cnt` FROM `table` WHERE `login` = '".mysql_real_escape_string($POST['user']) ."'");
if (mysql_result($sql, 0) == 0)
{
// всё ок. делаем след. шаг...
}
Спустя 1 час, 7 минут, 51 секунда (3.04.2010 - 23:30) Soldier Ghost написал(а):
Цитата (phz @ 3.04.2010 - 19:22) |
Как-то так....
|
помоему можно и без COUNT
$search = mysql_query("SELECT `login` FROM `users` WHERE `user_login` = '".mysql_real_escape_string($_POST['user_login'])."'");
if(mysql_num_rows($search) = 0)
{
// всё ок. делаем след. шаг...
}
else
{
echo 'Такой уже есть';
}
Спустя 2 минуты, 49 секунд (3.04.2010 - 23:33) ak167 написал(а):
sergeiss, спасибо! Правда сразу после того, как я разместил здесь эту тему я и сам до этого додумался, но всеравно спасибо, что помогли!)))
phz, тоже спасибо!))) Твой способ лучше предложенного
sergeiss'ом?
Я сделал так:
Проверьте пожалуйста не намудрил ли я тут чего-то лишнего? А то у меня это иногда бывает)))
phz, тоже спасибо!))) Твой способ лучше предложенного
sergeiss'ом?
Я сделал так:
// проверим есть ли такой логин в БД
$err_sql="SELECT login FROM $db_name_user_table WHERE login='".$_POST['login']."'";
$sql="INSERT INTO $db_name_user_table (login, password, email, data) values ('".$_POST['login']."', '".$_POST['pass']."', '".$_POST['email']."', now())";
$connect=mysql_connect($db_server, $db_user, $db_pass);
mysql_select_db($db_name, $connect);
$err_result=mysql_query($err_sql, $connect);
$err=mysql_num_rows($err_result);
if($err>0){echo "Пользователь с таким именем уже существует!";}
// запишем данные в БД, если такого логина нет
if(err=0){
$result=mysql_query($sql, $connect);
echo "<br>Регистрация прошла успешно!<br>";
}
Проверьте пожалуйста не намудрил ли я тут чего-то лишнего? А то у меня это иногда бывает)))
Спустя 18 часов, 9 минут, 5 секунд (4.04.2010 - 17:42) revaninfo написал(а):
И когда вы научитесь данные фильтровать...
$connect=mysql_connect($db_server, $db_user, $db_pass);
mysql_select_db($db_name);
mysql_query("SET NAMES utf-8");
$_POST['login'] = htmlspecialchars($_POST['login']);
$_POST['pass'] = htmlspecialchars($_POST['pass']);
$_POST['email'] = htmlspecialchars($_POST['email']);
$err = mysql_query("SELECT `login` FROM $db_name_user_table WHERE `login`='{$_POST['login']}'");
if (mysql_num_rows($err)>0) {
echo "Пользователь с таким именем уже существует!";
} else {
$insert = mysql_query("INSERT INTO $db_name_user_table (`login`, `password`, `email`, `data`) values ('{$_POST['login']}', '{$_POST['pass']}', '{$_POST['email']}', NOW()");
if ($insert) {
echo "Регистрация прошла успешно!";
} else {
echo "Ошибка!";
}
}
Спустя 2 часа, 20 минут, 44 секунды (4.04.2010 - 20:03) phz написал(а):
А может лучше на входе mysql_real_escape_string, а на выходе htmlspecialchars
Спустя 9 минут, 35 секунд (4.04.2010 - 20:12) ИНСИ написал(а):
Цитата |
$sql = mysql_query("SELECT COUNT(*) AS `cnt` FROM `table` WHERE `login` = '".mysql_real_escape_string($POST['user']) ."'"); if (mysql_result($sql, 0) == 0) { // всё ок. делаем след. шаг... } |
такой странный подход вижу первый раз
Спустя 5 минут, 8 секунд (4.04.2010 - 20:17) ИНСИ написал(а):
$connect = mysql_connect($db_server, $db_user, $db_pass);
mysql_select_db($db_name);
mysql_query("SET NAMES utf-8");
$_POST['login'] = mysql_real_escape_string(stripslashes($_POST['login']));
$_POST['pass'] = mysql_real_escape_string(stripslashes($_POST['pass']));
if(preg_match("|^[a-z0-9_\.-]+@([a-z0-9]+\.)+[a-z]{2,4}$|i", $_POST['email'])) {
$err = mysql_query("
SELECT `login`
FROM `{$db_name_user_table}`
WHERE `login` = '{$_POST['login']}'
");
if (mysql_num_rows($err) > 0) {
echo "Пользователь с таким именем уже существует!";
} else {
$insert = mysql_query("
INSERT
INTO `{$db_name_user_table}`(`login`, `password`, `email`, `data`)
VALUES('{$_POST['login']}', '{$_POST['pass']}', '{$_POST['email']}', NOW()
");
if ($insert) {
echo "Регистрация прошла успешно!";
} else {
echo "Ошибка!";
}
}
} else {
echo 'Вы вводите неверного формата email';
}