|
|
|
| Делаю запрос:
$your_ip = "SELECT * FROM vote_ip
WHERE ip = " . $ip . " AND puttime > (NOW() - INTERVAL 2 MINUTE)";
|
Пишет ошибку:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.0.1 AND puttime > (NOW() - INTERVAL 2 MINUTE)' at line 2 query: SELECT * FROM vote_ip WHERE ip = 127.0.0.1 AND puttime > (NOW() - INTERVAL 2 MINUTE) in Z:\home\st\www\sites\all\modules\poll\poll.module on line 122.
Исправляю, делаю:
$your_ip = "SELECT * FROM vote_ip
WHERE ip = '" . $ip . "' AND puttime > (NOW() - INTERVAL 2 MINUTE)";
|
Не работает вообще. Почему?
Перепробовала и другие варианты кавычек.
Тип поля ip - text | |
|
|
|
|
автор: ??? (05.08.2009 в 00:15) |
|
|
для: Лена
(04.08.2009 в 23:32)
| | мож закешировалось, после первого запроса, в браузере просто ?
второй похоже правильный.
поле `ip` какого типа ? | |
|
|
|
|
|
|
|
для: ???
(05.08.2009 в 00:15)
| | кеш почистила, не в этом дело
>поле `ip` какого типа ?
написала же, выше... | |
|
|
|
|
|
|
|
для: Лена
(04.08.2009 в 23:32)
| | А точно не работает? Опросите mysql_error() после запроса, если нуль, то проблема в самой базе. Например, если в нее слово "127.0.0.1" записано с каким-нибудь лишним пробелом, скажем, в конце, или просто пустой выхлоп в результате приходит, если совпадений, к примеру, не попалось. | |
|
|
|
|
|
|
|
для: Лена
(04.08.2009 в 23:32)
| | в таком формате у вас хранятся ip в базе?
INET_ATON('127.0.0.1')
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=61551 | |
|
|
|
|
автор: ......... (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 | |
|
|
|
|
|
|
|
для: Лена
(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). Хоть дело и не в нем. | |
|
|
|
|
|
|
|
для: Trianon
(05.08.2009 в 01:28)
| | Автоинкремент на поле забыла поставить. С чем себя и поздравила.
Когда вывод ошибок включила(который в спешке тоже не поставила), увидела "duplicate entry for key..."
>text - не самый удачный тип для такого поля. Лучше взять varchar(40). Хоть дело и не в нем.
Если не использовать INET_ATON, согласна.
Но какая разница, какой тип поля будет, если мы с помощью INET_ATON преобразуем его в 4-х байтовое или 8 байтовое число? В мануале написано, что на входе должна быть строка - а как эта строка уже хранится... | |
|
|
|
|
|
|
|
для: Лена
(05.08.2009 в 10:44)
| | INET_ATON использовать опасно. Это Всё ж таки лишь IPv4. | |
|
|
|
|
|
|
|
для: Trianon
(05.08.2009 в 11:29)
| | А что же тогда вместо нее использовать?
Где найти безопасную альтернативу? И вообще есть ли такая?
Как можно одновременно конвертировать строку в ее бинарное представление и обеспечить ей защиту?
Еще вот что. Если проблему безопасности адресов попробовали решить в IPv6, то как ее решили на уровне SQL? Если это не решено, то можно же, допустим, конвертировать при помощи SQL , а защиту сделать средствами PHP, если SQL с этим не справляется...
С другой стороны, если какие-то средства защиты и есть в IPv6, шестую версию протокола, как я поняла, еще не используют повсеместно, тогда и применять что-то, что работает только в шестой версии, нет смысла. Как-то все безрадостно получается... | |
|
|
|
|
|
|
|
для: Лена
(06.08.2009 в 00:25)
| | А нужно именно в бинарное? | |
|
|
|
|
|
|
|
для: Trianon
(05.08.2009 в 11:29)
| | А в чем выражается опасность? | |
|
|
|
|
|
|
|
для: serjinio
(06.08.2009 в 04:44)
| | код оказывается жестко привязанным к стеку IPv4. | |
|
|
|