Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: You have an error in your SQL syntax

Сообщения:  [1-10]   [11-13] 

 
 автор: Trianon   (06.08.2009 в 06:51)   письмо автору
 
   для: serjinio   (06.08.2009 в 04:44)
 

код оказывается жестко привязанным к стеку IPv4.

  Ответить  
 
 автор: serjinio   (06.08.2009 в 04:44)   письмо автору
 
   для: Trianon   (05.08.2009 в 11:29)
 

А в чем выражается опасность?

  Ответить  
 
 автор: Trianon   (06.08.2009 в 00:44)   письмо автору
 
   для: Лена   (06.08.2009 в 00:25)
 

А нужно именно в бинарное?

  Ответить  
 
 автор: Лена   (06.08.2009 в 00:25)   письмо автору
 
   для: Trianon   (05.08.2009 в 11:29)
 

А что же тогда вместо нее использовать?
Где найти безопасную альтернативу? И вообще есть ли такая?
Как можно одновременно конвертировать строку в ее бинарное представление и обеспечить ей защиту?
Еще вот что. Если проблему безопасности адресов попробовали решить в IPv6, то как ее решили на уровне SQL? Если это не решено, то можно же, допустим, конвертировать при помощи SQL , а защиту сделать средствами PHP, если SQL с этим не справляется...
С другой стороны, если какие-то средства защиты и есть в IPv6, шестую версию протокола, как я поняла, еще не используют повсеместно, тогда и применять что-то, что работает только в шестой версии, нет смысла. Как-то все безрадостно получается...

  Ответить  
 
 автор: Trianon   (05.08.2009 в 11:29)   письмо автору
 
   для: Лена   (05.08.2009 в 10:44)
 

INET_ATON использовать опасно. Это Всё ж таки лишь IPv4.

  Ответить  
 
 автор: Лена   (05.08.2009 в 10:44)   письмо автору
 
   для: Trianon   (05.08.2009 в 01:28)
 

Автоинкремент на поле забыла поставить. С чем себя и поздравила.
Когда вывод ошибок включила(который в спешке тоже не поставила), увидела "duplicate entry for key..."

>text - не самый удачный тип для такого поля. Лучше взять varchar(40). Хоть дело и не в нем.

Если не использовать INET_ATON, согласна.
Но какая разница, какой тип поля будет, если мы с помощью INET_ATON преобразуем его в 4-х байтовое или 8 байтовое число? В мануале написано, что на входе должна быть строка - а как эта строка уже хранится...

  Ответить  
 
 автор: Trianon   (05.08.2009 в 01:28)   письмо автору
 
   для: Лена   (04.08.2009 в 23:32)
 

> делаю:
>
$your_ip = "SELECT * FROM vote_ip
>             WHERE ip = '" . $ip . "' AND puttime > (NOW() - INTERVAL 2 MINUTE)";


>Не работает вообще. Почему?
>Перепробовала и другие варианты кавычек.
>Тип поля ip - text

Фрагмент дампа таблицы? Со структурой и соотв. строкой

Заметьте, в цитате я оставил лишь то, что имело смысл указывать.
Уж коль скоро Вы разобрались с первой ошибкой.

text - не самый удачный тип для такого поля. Лучше взять varchar(40). Хоть дело и не в нем.

  Ответить  
 
 автор: .........   (05.08.2009 в 00:52)
 
   для: serjinio   (05.08.2009 в 00:29)
 

>в таком формате у вас хранятся ip в базе?
с этим разобрались уже :)

CREATE TABLE `test`.`vote_ip` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`ip` TEXT NOT NULL ,
`puttime` DATETIME NOT NULL
) ENGINE = MYISAM ;

INSERT `vote_ip` VALUES
(NULL, '127.0.0.1', (NOW() + INTERVAL 2 MINUTE)),
(NULL, '127.0.0.1', (NOW() + INTERVAL 1 HOUR)),
(NULL, '127.0.0.1', NOW());

SELECT * FROM vote_ip
WHERE ip = '127.0.0.1' AND puttime > (NOW() - INTERVAL 2 MINUTE);

у меня запрос работает , выполнял из phpmyadmin 3.2.1-rc1

  Ответить  
 
 автор: serjinio   (05.08.2009 в 00:29)   письмо автору
 
   для: Лена   (04.08.2009 в 23:32)
 

127.0.0.1
в таком формате у вас хранятся ip в базе?
INET_ATON('127.0.0.1')

http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=61551

  Ответить  
 
 автор: DJ Paltus   (05.08.2009 в 00:23)   письмо автору
 
   для: Лена   (04.08.2009 в 23:32)
 

А точно не работает? Опросите mysql_error() после запроса, если нуль, то проблема в самой базе. Например, если в нее слово "127.0.0.1" записано с каким-нибудь лишним пробелом, скажем, в конце, или просто пустой выхлоп в результате приходит, если совпадений, к примеру, не попалось.

  Ответить  

Сообщения:  [1-10]   [11-13] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования