Автор: gmden: Дата: 06.07.2011
Подскажите где ошибка в коде. Дела в том что при регистрации не проверяется логин и создает в базе одинаковые логин. В остальном всё в порядке работает.
if(!$id) {
header('Location: index.php');
die();
}
//$key = rand(10, 10000);
//mysql_query('insert into `'.$db_site.'`.`register`(`date`, `key`) values('.time().', '.$key.');');
//mysql_query('delete from `'.$db_site.'`.`register` where `date` < '.(time() - 600));
require_once("include/recaptchalib.php");
$publickey = "6Le5E8ASAAAAALAcO6FDq8WJXLagfWSwwxuYFQ5b"; // get it on http://www.google.com/recaptcha
$privatekey = "6Le5E8ASAAAAAAf_ARJhNl2NLcdZE9SOuXFPBsbh"; // get it on http://www.google.com/recaptcha
$a = false;
$err = '';
if($_POST['username'] || $_POST['pass1'] || $_POST['pass2'] || $_POST['email'] || $_POST['gender'] ||$_POST['regcode']) {
$a = true;
if($_POST['rules'] != "on")
$err .= 'Вы должны согласиться с правилами сервера!
';
if(!$_POST['username'])
$err .= 'Пожалуйста, введите логин.
';
if(!$_POST['pass1'])
$err .= 'Пожалуйста, введите пароль.
';
if(!$_POST['email'])
$err .= 'Пожалуйста, введите e-mail.
';
if(!$_POST['gender'])
$err .= 'Вы не указали пол.
';
if(!ctype_alnum($_POST['username']) || strlen($_POST['username']) < 4 || strlen($_POST['username']) > 12)
$err .= 'Логин должен состоять только из латинских букв и цифр и быть длиной не менее 4 и не более 12 символов.
';
elseif(mysql_num_rows(mysql_query('select 1 from `login` where `userid` = \''.$_POST['username'].'\'')))
$err .= 'Этот логин уже кем то используется.
';
if($_POST['pass1'] != $_POST['pass2'])
$err .= 'Пароли различаются, пожалуйста, введите пароль еще раз.
';
if(!ctype_alnum($_POST['pass1']) || strlen($_POST['pass1']) < 4 || strlen($_POST['pass1']) > 12) $err .= 'Пароль должен состоять только из латинских букв и цифр и быть длиной не менее 4 и не более 12 символов.
';
if(!preg_match('/^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\..{1,4}$/', $_POST['email']))
$err .= 'Поле e-mail заполнено неверно.
';
$resp = recaptcha_check_answer(
$privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]
);
if (!$resp->is_valid)
{
$err .= 'Проверочный код неверен, попробуйте еще раз.
';
}
$db = mysql_connect ($service,$username,$password);
mysql_select_db($database,$db);
if(!$err)
mysql_query('insert into `login`(`userid`, `user_pass`, `sex`, `email`) values(\''.$_POST['username'].'\', \''.($use_md5_password ? md5($_POST['pass1']) : $_POST['pass1']).'\', \''.($_POST['gender'] == 'M' ? 'M' : 'F').'\', \''.$_POST['email'].'\');');
}
?>
Регистрация на сервере
if($err)
echo ''.$err.'
';
else if($a)
echo 'Регистрация завершена! Вы можете зайти в игру под своим логином и паролем.
';
?>
Автор: gmden: Дата: 06.08.2011
Не помогло
Автор: Кеник: Дата: 06.08.2011
elseif(mysql_num_rows(mysql_query('select * from `login` where `userid` = \''.$_POST['username'].'\'')))
$err .= 'Этот логин уже кем то используется.
';
Автор: Less: Дата: 06.08.2011
"SELECT count(*) from `login` where `userid`='".$_POST['username']."'"
Автор: Кеник: Дата: 06.08.2011
А для чего count?
Автор: Less: Дата: 06.08.2011
для определения кол-ва логинов на сколько я наю
Ну мне каунт нравится куда больше чем селект * или еще что-то, оно логичнее как-то, мы ведь ищем кол-во акков с таким именем.
Автор: Кеник: Дата: 06.08.2011
Цитата Less;43107:
для определения кол-ва логинов на сколько я наю
Ну мне каунт нравится куда больше чем селект * или еще что-то, оно логичнее как-то, мы ведь ищем кол-во акков с таким именем.
mysql_num_rows
Автор: Less: Дата: 06.08.2011
Ну там да, я это уже поняла :( у меня ее нет
может быть так? :)
`userid` = '\'.$_POST['username'].\'''
Автор: Кеник: Дата: 06.08.2011
Цитата Less;43110:
Ну там да, я это уже поняла :( у меня ее нет
может быть так? :)
`userid` = '\'.$_POST['username'].\'''
Автор: Less: Дата: 06.08.2011
`userid`=/''.$_POST['username'].'/''
хотя да, все верно, тогда крайне странно что не работает.
P.S. я не притендую на звание трупхпмастера и вообще ни на какие звания в этой области не притендую :) когда-то давным давно мучала его немного, но не более чем просто ради любопытства.
Автор: Кеник: Дата: 06.08.2011
Цитата Less;43113:
`userid`=/''.$_POST[/'username/'].'/''
хотя да, все верно, тогда крайне странно что не работает.
Автор: Less: Дата: 06.08.2011
селект 1 возвращает 1 если такое есть, если нет возвращает ноль.
Автор: Less: Дата: 06.08.2011
elseif(mysql_query('select count(*) from `login` where `userid` = \''.$_POST['username'].'\'')))
тогда может так?:D
На самом деле так заочно на расстоянии сложно, имея доступ к скрипту и возможности проверять было бы проще, но ставить себе этот скрипт крайне лениво, по большей части развлечение :)
Автор: Кеник: Дата: 06.08.2011
Цитата Less;43116:
elseif(mysql_query('select count(*) from `login` where `userid` = \''.$_POST['username'].'\'')))
тогда может так?:D
На самом деле так заочно на расстоянии сложно, имея доступ к скрипту и возможности проверять было бы проще, но ставить себе этот скрипт крайне лениво, по большей части развлечение :)
Автор: Renegade: Дата: 06.08.2011
некогда пиздюлей раздавать, мне за 3 часа нужно сделать готовый интернетмагазин. Расплата за неделю распиздяйства.
В раздеел вебобвязка выложена готовая рабочая рега, юзайте, чо.
Автор: Кеник: Дата: 06.08.2011
Та не, мы же ошибку разбираем! Иди, допиливай магазин (: Я думал я один почти все на последний момент откладываю..
Автор: Renegade: Дата: 06.08.2011
Цитата Кеник;43132:
Та не, мы же ошибку разбираем! Иди, допиливай магазин (: Я думал я один почти все на последний момент откладываю..
Автор: gmden: Дата: 06.08.2011
Цитата Less;43116:
elseif(mysql_query('select count(*) from `login` where `userid` = \''.$_POST['username'].'\'')))
тогда может так?:D
На самом деле так заочно на расстоянии сложно, имея доступ к скрипту и возможности проверять было бы проще, но ставить себе этот скрипт крайне лениво, по большей части развлечение :)
Автор: Кеник: Дата: 06.08.2011
Цитата gmden;43181:
Так не работает вообще скрипт вешается.
Автор: Sanasol: Дата: 06.08.2011
Возьмите готовую регистрацию с этой ветки форума
гмден стукни в асю срочно :D
Автор: gmden: Дата: 06.08.2011
Спасибо Sanasol. Весь баг был в том что нужно было переместить стороки
$db = mysql_connect ($service,$username,$password);перед проверками.
mysql_select_db($database,$db);
Автор: Кеник: Дата: 06.08.2011
А ларчик просто открывался!
Автор: obliged.act: Дата: 06.09.2011
код лол, за 5$ сделаю как нужно.
Автор: Cole McCormick: Дата: 06.09.2011
Его тут и без тебя бесплатно сделают.
Автор: Кеник: Дата: 06.09.2011
Цитата Naota;43224:
Его тут и без тебя бесплатно сделают.
Автор: Cole McCormick: Дата: 06.09.2011
Цитата Кеник;43225:
Здесь в ход идет разница во времени. Если автору срочно нужно - не пожалеет и отдасть 5 баксов, если не к спеху - подождет и все (: Или возьмет другое решение из этой же ветки.
Автор: Кеник: Дата: 06.09.2011
Охота крепкое - говно редкостное :( Уж лечше на регу потратить, чем на эту мочу :(
Автор: Cole McCormick: Дата: 06.09.2011
Цитата Кеник;43227]Охота крепкое - говно редкостное :( Уж лечше на регу потратить, чем на эту мочу :(
Автор: Кеник: Дата: 06.09.2011
О-дааа.. Сибирская корона по сравнению с Охотой конечно моча и напиток гопников. Туборг или корона - мой выбор.
Автор: kadze: Дата: 06.09.2011
Хольстен,Миллер!)
Автор: obliged.act: Дата: 06.09.2011
5$.
Автор: Cole McCormick: Дата: 06.09.2011
Амстердам навигатор!
Автор: kadze: Дата: 06.09.2011
пора во флейм переносить :D как то не рега уже. амстердам больно крепкий)) я кста не видел 11.6 оО
Автор: gmden: Дата: 06.09.2011
Чё вы тут разводите я изза вас пиво захотел. Всё пошел в пивнушку. Кстати насчёт проблемы я уже писал, что Sanasol помог. Яб 5$ далбы за спрайт моба на заказ.
Автор: kadze: Дата: 06.09.2011
спрайт моба 5$ ...квадрат?)
Автор: vixa2012: Дата: 06.09.2011
зделай свою регистрацию а когда будеш делать проверку на одинаковые логини пропиши скрипт типо такого
$query = "SELECT `account_id` FROM `login` WHERE `userid`='".$login."'";
$result = mysql_query($query) or die('немогу соединиться с базой данных');
if (mysql_num_rows($result) > 0)
{
$message= 'Такой аккаунт уже существует
';
} else {тут если проверка удачна пишешь скрипт внесения данных в базу}
Автор: Sanasol: Дата: 06.09.2011
уже 2 раза написали что решена проблема
Автор: gmden: Дата: 06.10.2011
Цитата kadze;43235:
спрайт моба 5$ ...квадрат?)