воскресенье, апреля 06, 2014

Ещё одна причина, почему надо избегать кириллических доменов

Подключал сайт к эквайрингу Сбербанка. Всё как по писаному, кроме последнего этапа: возврат пользователя из банка в магазин. Не происходит. Пустой экран. Уже написал письмо в саппорт, но что-то дёрнуло. Чисто для эксперимента заменил в адресе возврата блаблабла.рф на xn--blahblahblah.xn--p1ai

Ну ёёёлы-палы :-)

воскресенье, марта 30, 2014

Что, выпивая пачку чаю,...

Побочно запустил людям чайный сайтик.

Побочные проектики вообще странная вещь. Вылупляются себе и вылупляются. А основные - вечно без пяти секунд почти вот-вот уже совсем немножко допилить.

В сайтике из примечательного, пожалуй, ценники. Каждый товар имеет стандартные фасовки и возможность заказать произвольную. Цена пересчитывается на лету с учётом скидок и - тадаааааам! - сортности чая, каковая сортность у каждой позиции может разбрасываться от 1 до 6. Это оказалось немного хлопотно.

понедельник, марта 24, 2014

DLE: я упал об стол

Есть такой чудо-движок невероятной уродливости.

Тем не менее, иногда приходится по мелочи подшаманивать сайты, имевшие несчастье на нём быть сделанными.

Сегодня надо было в некоем модуле получить категорию, куда относится статья.

Оказалось, что статья отнесена в 2 категории. Но системная переменная, хранящая категорию,  скалярная.

Полез посмотреть таблицы напрямую.

Думаю, в таком случае там есть таблица категорий, таблица статей и таблица привязки второго к первому.

Уже тип поля category в dle_post (VARCHAR(200)) внушил худшие опасения.

Поковырял данные: так и есть. Номера категорий хранятся в записи статьи в виде текста, через запятую. Соответственно, выборка статей по категории происходит поиском подстроки.

*HEADSHOT.JPG*

среда, февраля 12, 2014

Сказ о том, как платёжная система с хостингом не подружилась

Злободневное, и может сэкономить кому-то время и мозг.

Подключал платёжную систему PayAnyWay (Монета.Ру) к сайту на Фабрике Хостинга (hostfabrica.ru). Всё нормально, но не доставляется техническое уведомление о прохождении платежа. Оно происходит невидимо для пользователя. Пользователь получает своё спасибо, деньги поступают, но на технический е-мейл начинают десятками идти сообщения от Монеты.Ру о невозможности передать уведомление.

Техподдержка Монеты.Ру поясняет, что их сервер по адресу Pay URL получает 403.

Делаю запрос из браузера руками: всё работает.

Техподдержка Фабрики Хостинга предполагает, что Монета.Ру не передаёт user-agent, и такие запросы получают 403.

Монета.Ру отвечает, что user-agent передаётся.

Круг замкнулся, мои возможности были исчерпаны.

Можно было попробовать ввести их в диалог друг с другом, но - время. Поэтому просто перевёл сайт на другую площадку (hostline.ru). Всё работает.

Итоги:

1) если непонятно не работает уведомление на Pay URL от Монеты.Ру, причина может быть в блокировании их робота хостером.

2) до решения этой проблемы сайты с подключенной Монетой.Ру не будут полноценно работать на Фабрике Хостинга. Вряд ли их конфигурация в этом уникальна. То есть нестыковка может происходить и на других площадках.

понедельник, января 20, 2014

Разделение сиамских близнецов с помощью .htaccess

Вот ещё было: делал сайт (по субподряду, поэтому - без ссылки). У сайта, как водится, есть нормальное доменное имя и техническое. По недогляду СЕОшников подрядчика технический домен утёк в Гуглояндексы и стал выдаваться лучше нормального.

Написал в .htaccess правило переадресации: если домен не такой-то, ответить 301 на домен такой-то с тем же запросом. Но оно не заработало.

Почитав phpinfo(), увидел, что конкретный хостинг-провайдер обслуживает оба домена через прокси, перезаписывающий заголовки. И все запросы на сайт приходят с правильным доменом, несмотря на то, что клиент работает с неправильным.

После минуты паники ещё раз просмотрел переменные окружения Апача в том и ином случае и переписал правило:

RewriteCond %{HTTP:X-FORWARDED-FOR} ^ай.пи.прокси.провайдера [NC]
RewriteRule ^(.*)$ http://правильный.сайт/$1 [L,R=301] 

Правило эксплуатирует особенность настройки конкретного хостера: при обращении на нормальный домен X-Forwarded-For содержит, как и положено, айпи клиента, а при обращении на технический - айпи прокси, адрес клиента указывается отдельно в X-Real-IP.

Заодно это постфактум объяснило, почему злостно глючил логин в админку сайта при входе по техническому домену: в браузер приходили куки для неправильного домена.

Гугл видит, Гугл знает

Для одного проекта делалось получение геокоординат клиента.

Предполагалось, что клиент мобильный. Для проверки зашёл туда с десктопа. К моему удивлению, моё положение было определено достаточно верно: ошибка составила метров 50, но здание можно идентифицировать однозначно.

Не ожидал этого для компьютера, который невозможно триангулировать по сотовым вышкам. Стал читать, в чём фокус.

Браузер (конкретно - Хром), похоже, может получить от ОС список видимых Wi-Fi сетей (не нужно быть ассоциированным для этого) и уровень их сигналов.

Для проверки выключил на компьютере Wi-Fi совсем. Моментально "переместился" в другой район города.

ОК, но как Гугл знает, где находится конкретная AP, положение которой никогда ему не сообщалось?

Оказывается, сообщалось :-) Если верить людям, Андроид-устройства с включенным позиционированием сообщают Гуглу видимые им AP, их SSID, MAC и уровень сигнала. Информация накапливается, дальше всё просто.

Поскольку я сам пару раз включал GPS в офисе, очень вероятно, что и я приложил руку к чуду своего обнаружения :-)

В моей работе такая любознательность Гугла скорее большой плюс. Впрочем, в чьей-нибудь ещё работе тоже :-) В конце концов, трафик на Гугл, как и любой другой, не идёт бесконтрольно.

Думаю, системой позиционирования пациентов по Wi-Fi сетям не только они располагают, так-та.


Поисковикам читать

Уважаемые поисковики,

начните уже, пожалуйста, находить этот сайт, а то вы зае  заранее благодарен.

Поиск по этому блогу