тоже после прочтения первого поста сразу возникла мысль:
Если все не нравится, тогда напишите сами и покажите как надо :)
прошу прощения, до этого поста не дошел, когда в обратном порядке смотрел. Имел ввиду #13.
Ну да ладно.. не смертельно. Тем более #13 показал, что работа надо ошибками проведена :)
вроде без ошибок последний пост. Или Вы про стилистику? :)
Так у каждого автора может быть свой почерк.
Не думал, что 40 - это возраст! Жизнь только начинается :). На обучения уйдет год-два....к Вашей пенсии от большинства таких фирм и табличек не останется.
Имхо главное большое желание и все получится.
P.S. мне 28, но в 40 никак не собираюсь уходить на отдых.
купил №2 и №4. Очень приятно работать с ТС. Передача произошла быстро и без каких-либо проблем.
Работали частично без протекции и гаранта. Первый отправлял часть денег. Мне не хватало порядка 10% средств и ТС согласился подождать пару дней, предварительно передав полностью оба сайта, за что ему отдельное спасибо.
купил данный сайт. Сделка прошла без малейших проблем. Почти мгновенная передача сайта и прав на управление доменом.
Работали частично без протекции и гаранта. Первый отправлял часть денег и ни разу не возникло сомнений или каких-то проблем. Спасибо за сделку!
Использую комбинированный вариант.
1) Выделение максимальных/минимальных координат на нужном расстоянии от заданной точки и фильтр всех точек, которые попадают в эту область.
2) Среди них уже расчет точного расстояния до начальной точки и сортировка по этому значению.
Проблем с производительностью замечено не было. У меня в этот прямоугольник обычно может попадать до 2к точек пока. Работающий пример
Для первого этапа граничные значения расчитываются вот так:
$R = 6371; // earth's radius, km // first-cut bounding box (in degrees) $max_latitude = $latitude + rad2deg($max_distance/$R); $min_latitude = $latitude - rad2deg($max_distance/$R); // compensate for degrees longitude getting smaller with increasing latitude $max_longitude = $longitude + rad2deg($max_distance/$R/cos(deg2rad($latitude))); $min_longitude = $longitude - rad2deg($max_distance/$R/cos(deg2rad($latitude)));
Дальше эти значения просто в WHERE добавляются в запрос. С использованием ORM у меня так, но думаю, смысл понятен:
$this->where('address.latitude', '>', $min_latitude) ->where('address.latitude', '<', $max_latitude) ->where('address.longitude', '>', $min_longitude) ->where('address.longitude', '<', $max_longitude);
Использую встроенную процедуру для определения расстояния на втором этапе. По результату и делаю сортировку.
CREATE DEFINER=`root`@`%` FUNCTION `GetDistance`(`lat1` VARCHAR(120), `lon1` VARCHAR(120), `lat2` VARCHAR(120), `lon2` VARCHAR(120)) RETURNS varchar(120) CHARSET latin1 LANGUAGE SQL NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER COMMENT '' BEGIN DECLARE distance DECIMAL(12,8); select ((ACOS(SIN(lat1 * PI() / 180) * SIN(lat2 * PI() / 180) + COS(lat1 * PI() / 180) * COS(lat2 * PI() / 180) * COS((lon1 - lon2) * PI() / 180)) * 180 / PI()) * 60 * 1.1515 * 1.609344) into distance; RETURN distance; END
Пример расчета расстояния от точки А с координатами lat1, lon1 до точки B c координатами lat2 : GetDistance(lat1,lon1,lat2,lon2);
Если что-то не понятно описал, обращайтесь, расскажу.
Вкладка Net. Не забудьте перед тестирование редиректа выбрать в меню Persist (не помню русский вариант, вторая кнопка слева после "очистить"), чтобы сохранялась история запросов после редиректа.
Думаю, Вам нужно для начала вообще разобраться, что такое XSS, а потом перестать утверждать то, что вы здесь про этот способ взлома утверждаете.
XSS прежде всего - это выполнение вредного javascript кода в браузере пользователя без его ведома. С трудом представляю, как только с его помощью, не имея изъянов в движке, можно получить спамную ссылку.
А если изъяны есть, то тут уже ПС ни при чем, а бороться с ними должны люди, которые писали движок.
Аналогичная ситуация как у mad_dk.
Только я беру десяток своих кампаний с ТИЦ от 10 до 600. Цену даже от 10рублей пробывал стаавить, получаю 0 вариантов для отправки заявок. Что-то поломалось в фильтре?