Вопрос № 174369: Здравствуйте, у меня вот кокая проблема хотела я сделать чтоб по айпи адресу определяла страну посетителя и нашла не большой пример, но почему-то не могу закачать в базу фаил ip-to-country.csv , саму статью нашла здесь (http://www....
Вопрос № 174369:
Здравствуйте, у меня вот кокая проблема хотела я сделать чтоб по айпи адресу определяла страну посетителя и нашла не большой пример, но почему-то не могу закачать в базу фаил ip-to-country.csv , саму статью нашла здесь (http://www.xakep.ru/post/28285/default.asp ) все пробую локально на denwer помогите пожалуйста, если можно то выполните у себя а мне скиньте sql фаил вот мой пример (
CREATE TABLE countries ( short character varying(2), nshort character varying(3),
country_name character varying(50), start_ip bigint, stop_ip bigint );
//Путь к CSV файлу $csv="ip-to-country.csv"; $countrys=file($csv); while (list(,$value)=each($countrys)) { //Разборка строки для занесения в базу if (preg_match('/"
([0-9]+)","([0-9]+)", "(\w+)","(\w+)","(.+)"/',$value,$match)) { // Формируем и отправляем запрос к БД pg_query ($conn, "INSERT INTO countries (start_ip, stop_ip, short, nshort, country_name) values (".$match[1].",".$match[2].",'".$match[3]."','".$match[4]."','".$match[5]."')"); } } echo ("OK!"); ?> )
В дополнение к предыдущему ответу скажу, что кроме замены в Вашем случае функции pg_query на функцию mysql_query и $conn на $db, в тексте "хакера" есть ещё одна ошибка: в регулярном выражении присутствует лишний пробел в строке if (preg_match('/"([0-9]+)","([0-9]+)", "(\w+)","(\w+)","(.+)"/',$value,$match)) { нужно if (preg_match('/"([0-9]+)","([0-9]+)","(\w+)","(\w+)","(.+)"/',$value,$match))
{
к Вашей чести сказать, она не будет очевидна, пока не посмотришь сам файл ip-to-country.csv
Исправлено по просьбе автора ответа
-----
∙ Отредактировал: Зенченко Константин Николаевич, Модератор
∙ Дата редактирования: 19.11.2009, 16:10 (время московское)
----- Всё, что есть хорошего в жизни - либо незаконно, либо аморально, либо ведёт к ожирению...
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.