[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите с регистрацыей
Гость_lawbreaker
Привет!
Почему запрос не работает?
PHP
if ($_GET['act'] == '3')
            {    
            if (
$_POST['username'] == '' OR $_POST['password'] == '' OR $_POST['email'] == '')
                {
                echo 
'Вы не ввели необходимые данные';
                }else{
            
$_POST['username'] = mysql_escape_string(trim(strip_tags($_POST['username'])));
            
$_POST['password'] = md5(mysql_escape_string(trim(strip_tags($_POST['password']))));
            
$_POST['email'] = mysql_escape_string(trim(strip_tags($_POST['email'])));
            
$_POST['skype'] = mysql_escape_string(trim(strip_tags($_POST['skype'])));
                        
$_POST['url'] = mysql_escape_string(trim(strip_tags($_POST['url'])));
                        include(
"db.php");
                        
mysql_connect($s,$u,$p);
                        
$query mysql_query("INSERT INTO `allday`.`users` (`id`,`username`,`password`,`date`,`email`,`icq`,`skype`,`url`,`repa`,`block`,`ip`) VALUES ('','".$_POST['username']."' , '".$_POST['password']."' , '".$_POST['email']."' , '".mysql_escape_string($_POST['icq'])."' , '".$_POST['skype']."' , '".$_POST['url']."' , '0' , '0' , '".$_SERVER['REMOTE_ADDR']."')") or die(mysql_error());
                        if (
$query) echo '<font color=green>Вы успешно Зарегистрировались.Вы можете <a href=index.php>войти</a> в свой аккаунт.</font>';
            
            }
            }

и я нормально строчки от инекцый защищаю? unsure.gif



Спустя 1 минута, 57 секунд (21.03.2009 - 00:36) Гость_lawbreaker написал(а):
воть что ввыводить
SQL
Column count doesn't match value count at row 1

Спустя 3 минуты, 1 секунда (21.03.2009 - 00:39) sergeiss написал(а):
Переводится как "количество колонок не соответствует количеству величин в строке 1". Или иными словами, посмотри внимательнее, в какие колонки ты хочешь вставить данные, и что ты выводишь (сколько параметров).

PS. И где ты от инъекций защищаещься? Только один параметр. а остальные пишешь без обработки. В частности, $_POST['username'], $_POST['password'], $_POST['email'] (но это не полный перечень).

Спустя 7 минут, 22 секунды (21.03.2009 - 00:46) Гость_lawbreaker написал(а):
PHP
mysql_escape_string($str);
а разве ето не защищает от инекцый?

Спустя 6 минут, 43 секунды (21.03.2009 - 00:53) sergeiss написал(а):
Цитата (Гость_lawbreaker @ 21.03.2009 - 00:46)
PHP
mysql_escape_string($str);
а разве ето не защищает от инекцый?

Да, но относится только к тому параметру, для которого ты использовал. В данном случае только для $_POST['icq'] защита есть.
А надо для всех писать, без исключения.

Спустя 3 минуты, 38 секунд (21.03.2009 - 00:57) Гость_lawbreaker написал(а):
HELLPPPPPPPPPPPPPPPPPPPPPP PLEASE. Where is the error?????

Спустя 2 минуты, 7 секунд (21.03.2009 - 00:59) sergeiss написал(а):
Цитата (Гость_lawbreaker @ 21.03.2009 - 00:57)
HELLPPPPPPPPPPPPPPPPPPPPPP PLEASE. Where is the error?????

Я чегой-то не понял... А вот этот ответ не годится? Я только что почти говорил
Цитата
посмотри внимательнее, в какие колонки ты хочешь вставить данные, и что ты выводишь (сколько параметров).

Или ты хочешь, чтобы кто-то за тебя просто тупо подсчитал количество параметров и величин в твоем запросе??? Ну, я это сделал уже smile.gif Но результат не озвучу - сам считай.

Спустя 1 минута, 36 секунд (21.03.2009 - 01:00) Гость_lawbreaker написал(а):
sergeiss
ну и жмодина laugh.gif


ну там не может быть ошыбка. я всё проверил.
PHP
if ($_GET['act'] == '3')
            {    
            if (
$_POST['username'] == '' OR $_POST['password'] == '' OR $_POST['email'] == '')
                {
                echo 
'Вы не ввели необходимые данные';
                }else{
            
$u mysql_escape_string(trim(strip_tags($_POST['username'])));
            
$p md5(mysql_escape_string(trim(strip_tags($_POST['password']))));
            
$e mysql_escape_string(trim(strip_tags($_POST['email'])));
            
$s mysql_escape_string(trim(strip_tags($_POST['skype'])));
            
$u mysql_escape_string(trim(strip_tags($_POST['url'])));
                        include(
"db.php");
                        
mysql_connect($s,$u,$p);
                        
$query mysql_query("INSERT INTO `allday`.`users` (`id`,`username`,`password`,`date`,`email`,`icq`,`skype`,`url`,`repa`,`block`,`ip`)      VALUES('','".$u."' , '".$p."' , '".$e."' , '".mysql_escape_string($_POST['icq'])."' , '".$s."' , '".$u."' , '' , '' , '".$_SERVER['REMOTE_ADDR']."')") or die(mysql_error());
                        if (
$query) echo '<font color=green>Вы успешно Зарегистрировались.Вы можете <a href=index.php>войти</a> в свой аккаунт.</font>';
            
            }
            }

Спустя 1 минута, 30 секунд (21.03.2009 - 01:02) Viking написал(а):
Гость_lawbreaker привет! smile.gif

эррор у тебя,как сказали, от того что количество колонок в таблице не соответсвтеует количиству данных, вставляемых в колонки в запросе
на счет инъекций не понял, вроде везде mysql_escape_string стоит, даже там где не надо...

Спустя 1 минута, 33 секунды (21.03.2009 - 01:03) Viking написал(а):
Цитата
ну там не может быть ошыбка. я всё проверил.

врешь! дазнт мач значит дазнт мач, не соответствует! или уже другая ошибка?

Спустя 1 минута, 17 секунд (21.03.2009 - 01:05) sergeiss написал(а):
Не может быть ошибка? Т.е. ты утверждаешь, что запрос правильный, а ошибается MySQL? wink.gif
Ладно, тогда давай назови по порядку, какие у тебя параметры и какие величины ты в них записываешь.
Давай, я начну:
id=''
username='$u'
А дальше продолжи ты.

Спустя 2 минуты, 29 секунд (21.03.2009 - 01:07) sergeiss написал(а):
PS. Насчет инъекций да, я тут сам погорячился smile.gif Защита есть, вроде бы. Меня насчет инъекций сбило с толку то, что mysql_escape_string в одном месте использовано прямо при формировании запроса, а остальное - до запроса.

А ответ с перечнем пар параметр=величина я жду.

Спустя 1 минута, 37 секунд (21.03.2009 - 01:09) sergeiss написал(а):
И еще одна ошибка (очень серьезная!!!): переменная $u используется и для имени пользователя, и для URL.

Спустя 53 секунды (21.03.2009 - 01:10) Гость_lawbreaker написал(а):
дык. проблема решена. теперь другая. )
в поле "username" всё время пишетса "allday" .

Спустя 2 минуты, 3 секунды (21.03.2009 - 01:12) sergeiss написал(а):
Цитата (Гость_lawbreaker @ 21.03.2009 - 01:10)
дык. проблема решена. теперь другая. )
в поле "username" всё время пишетса "allday" .

Я тебе как раз в предыдущем сообщении написал об этом smile.gif Будь внимательнее, когда читаешь ответы!!!

Спустя 2 минуты, 58 секунд (21.03.2009 - 01:15) Гость_lawbreaker написал(а):
всё ок. спасибо вам всем. всё решенноо. могу писать сайт дальше www.allday.ho.ua ))
СТОП. есть проблема. а чтое если робот зарегит мне 10000000000000000000 юзеров? мне нужна капча

Спустя 1 минута, 58 секунд (21.03.2009 - 01:17) Viking написал(а):
дай мне айпи такого робота, я у него хоститься буду...

Спустя 3 минуты, 57 секунд (21.03.2009 - 01:21) sergeiss написал(а):
Цитата (Гость_lawbreaker @ 21.03.2009 - 01:15)
всё ок. спасибо вам всем. всё решенноо. могу писать сайт дальше www.allday.ho.ua ))
СТОП. есть проблема. а чтое если робот зарегит мне 10000000000000000000 юзеров? мне нужна капча

Да без проблем smile.gif Делаешь картинку, на которой располагаешь буквы-цифрты, замазываешь их линиями и точками, может быть, как-то искажаешь картинку. Но так, чтобы человек мог различить.
И капча у тебя готова smile.gif
А уж использовать ее - вообще элементарно.
Быстрый ответ:

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