User Tools

Site Tools

Translations of this page:

Sidebar

Documentation index

ru:troubleshooting

Troubleshooting

It doesn't work !

Я рад вам помочь, но в 95% случае начинается все с одного и того же: вопроса что именно не работает и как именно не работает. Поэтому дабы ускорить тот процесс, пожалуйста, сделайте следующее:

  • Сделайте все апдейты, скорее всего ваша проблема уже решена.
  • Попробуйте найти свой вопрос в траблшутинге или факе, скорее всего ответ там уже есть
  • Напишите где именно проблема (урл, пункт в админке, на какой урл вы кликали и тд)
  • Что именно вам выдало (ошибка, варнинг, что угодно - просто скопируйте что вывел скрипт)
  • Если считаете что этого не достаточно - опишите что вы ожидали увидеть

Заранее спасибо! чем больше информации - тем быстрее и качественее будет помощь :)

Page does not show

не показывается, белая страница и тп - значит в php.ini выключен вывод ошибок. По белому экрану я так же не могу опредлить в чем именно проблема. Надо выключить вывод ошибок и посмотреть что именно пишет.

Не считаются ины.

1. Проверьте работает ли крон. Вкладка Home. Если там нет надписи “check SCJ crontab job” - следуйте к следующим пунктам. Если есть эта надпись, значит кто-то удалил нашу задачу для крона. Необходимо прописать запуск каждую минуту строки вида

cd /path_to_scj/scj/bin/; env HTTP_HOST=yourdomain.com /path_to_php/php -q cron.php

2. При использовании инклуда

<!--#include virtual=”/scj/cgi/include.php”--> 

Если вы загружаете в браузере страницу сиджа, а этот код остается неизменным - значит у вас не включена поддержка SSI. Обратительсь к админу.

3. Если вы используете index.php Смарта убедитель, что в том же каталоге нет других index файлов, например index.html. В зависимости от настроек сервера по умолчанию при запросе урла

http://domain.com/ 

он может брать файл index.php или index.shtml или index.html и тд. Те если в каталоге лежит index.html - сервер грузит его вместо index.php (файл SmartCJ), те скрипт смарта не отрабатывает и хиты не считаются.

How to view HTTP headers

Это так же вариант, как можно посмотреть, куда вас редиректит например внешний ротатор. Поскольку каждый клик проходит много правил - единственный вариант узнать почему вас редиректит туда а не сюда - это хедеры. Итак в протоколе HTTP, говоря простым языком, существует понятие хедеров и контента. В хедерах передается служебная информация, контент - это сама страница, картинка или например флеш. 99% всех редиректов происходит с использование хедера Location. Когда браузер получает от сервера такой хедер он сразу же идет по указанному урлу.

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

  1. В settings - other включить out.php debug (Yes) (ждем минуту)
  2. Если у вас еще не установлен, то скачать и установить FireFox
  3. Нажать Инструменты-Дополнения (Tools-addons), оттуда перейти на сайт аддонов для ФФ и скачать аддон Live HTTP Headers
  4. Открыть в ФФ свой сайт, из меню Инструменты (Tools) запустить Live HTTP Headers. Откроется новое окно, в котором будут видны все хедеры. Кликаете на любой ссылке и можете наблюдать как в этом окошке бегут запросы от вас к серверу. В этом надо найти строки вида
Location: http://site.com/

это редирект.

Так же в хедерах может быть строки типа Current-Click: и тп. Для того что бы разобрать каждую конкетную ситуацию надо именно хедеры.

SmartCJ doesn't count hits properly

Варианта 2:

1. если вы используете для подсчета кликов инклуд

Проверить это очень просто. Если вы используете include.php переименуйте его в include_scj.php и создайте файл include.php следующего содержания

<?php
$f = fopen('./log.txt', a);
fputs($f, date('H:i') . " {$_SERVER["HTTP_REFERER"]} \n");
fclose($f);
include('include_scj.php');

потом создайте файл log.txt и chmod его 666

Скрипт очень простой, он просто пишет рефы в файл. Ставьте скрипт на час или сутки по желанию и в конце этого периода загрузите файл в эксель и отсортируйте - так будет проще посчитать сколько было хитов с нужным рефом и соотв узнать сколько было хитов с нужного домена.

2. если вы используете индекс смарта

  • создайте в корне файл log.txt и chmod 666 его
  • оригинальный индекс (index.php смарта) переименуйте в index_scj.php
  • создайте index.php следующего содержания
<?php
$f = fopen('./log.txt', a);
fputs($f, date('H:i') . " {$_SERVER["HTTP_REFERER"]} \n");
fclose($f);
include('index_scj.php');

Все. Скрипт очень простой, он просто пишет рефы в файл. Ставьте скрипт на час или сутки по желанию и в конце этого периода загрузите файл в эксель и отсортируйте - так будет проще посчитать сколько было хитов с нужным рефом и соотв узнать сколько было хитов с нужного домена.

Если надо посчитать кол-во КЛИКОВ все практически так же.

  • out.php смарта переименовываем в scj_out.php
  • создаем там же файл log.txt и 666 на него
  • создаем out.php следующего содержания
<?php

if ($_COOKIE['from'] == 'trader.com') {
	$f = fopen('./log.txt', a);
	fputs($f, date('H:i') . " {$_SERVER["REMOTE_ADDR"]} \n");
	fclose($f);
}

include('out_scj.php');

где trader.com соответственно нужный трейдер.

потом остается только посмотреть кол-во строк в лог файле за выбранный промежуток времени.

Все клики (или клики только опредленного трейдера) считаются как nocookie.

A: Клики считаются по кукам. При ИНЕ пользователю ставится кука, в которой записано от какого трейдера он пришел. При кликах считывается эта кука и соответствующему трейдеру зачисляется клик. Если при клике скрипт не может прочесть куку (ее нет) - скрипт записывает такие клики в nocookie.

Технология работы кук такова, что если кука была поставлена на странице на домене www.asd.com, то на странице с домена asd.com она НЕ будет видна. Прочесть подробнее про это можно в RFC 2965 и RFC 2109.

Что это значит в нашей ситуации: если серфер пришел к вам на страницу

http://www.site.com/ 

а линк к ауту

http://site.com/out.php

(те без www), то на аут куки переданы НЕ будут и клики будут засчитаны как нокуки. Что бы такого не было надо все линки на аут делать относительными.

<a href='http://site.com/out.php'>Click here</a>  - НЕПРАВИЛЬНО
<a href='/out.php'>Click here</a>  - Правильно

Бывают частные случаи, например : У трейдера прописана Personal Page. Трейдер шлет вам как

http://host.com/

, а в Personal Page прописано

http://www.host.com/trader.html 

, те теряется кука. Что бы избежать этого лучше прописывать персональную страницу как путь те просто trader.html (без http:/www..)

У меня в параметрах к ауту вот это и вот это а редиректит меня туда-то.

Проверить куда и почему шлет скрипт очень просто. Для этого надо:

1. добавить в common.php после <? строку

$comments = true;

2. открыть окно просмотра хедеров (как это сделать описано выше) и внимательно посмотреть на хедеры: в них скрипт пишет какое правило срабатывает и куда он шлет. В большинстве случаев там все совершенно есно, если у вас есть вопросы с разбором хедеров - велкам в асю.

У меня равов в 3 раза больше чем уников. ** или "у меня по 2 раза считает каждого серфера"

Часто сталкиваюсь со сл. ситуацией: при ошибках вебсервера (403, 404 ) редиректит на корень домена. При отсутствующей карнитке на индексе браузер загружает вместо отсутствующей картинки - индекс, так мы получаем 2 ина при одном заходе.

Вариант 2: на корне лежит индекс смарта. При этом в CJ Pages так же прописан тот же индекс, получается что индекс инклудит сам себя.

Вариант 3: включена опция Use SmartCJ as toplist script, а у вас обычный сидж.

Не работает out.php (Please, refresh page in a minute) или не считает ауты

Проблема в том, что аут не видит файла с трейдерами. Такое происходит в 2х случаях:

  1. вы только что установили скрипт “с 0” и не работает крон (в таком случае во вкладке Home в скрипте будет соотвю предупреждение об этом)
  2. вы перенесли скрипт с другого хоста, при этом оставили файл common.php со старого хоста. В этом файле прописан путь к каталогу scj/data. Вероятнее всего надо поменять путь в файле common.php

Все трейдеры отмечены как забаненые на uribl.com

Вероятнее всего проблема в настройках resolv сервера. Скрипт проверяет наличие в бане этого сервиcа (http://www.uribl.com/about.shtml) запуском команды в шеле

host -tA trader.com.multi.uribl.com

Если домена нет в базе сервис должен ответить что-то вроде

Host trader.com.multi.uribl.com not found: 3(NXDOMAIN)

Если у вас отвечает например “can not connect” или “can not resolve” - надо обратиться к админу и попросить поправить resolv.conf. Как вариант показать доку (http://www.uribl.com/about.shtml) с описанием того, как это должно работать.

Нету хистори (History)

Скрипт пишет хистори каждый час в определнную минуту. Если в нужную минуту скрипт не будет запущен - хистори не будет записана. Следовательно основная причина - cron.php запускается не каждую минуту. Причины - локи в кроне, неправильно прописан крон и тп.

It doesn't count in\out properly

Проверяет очень просто: все части скрипта которые работают с траффиком инклудят файл common.php соответственно можно дописать в этот файл небольшой простой код, который будет логгировать в текстовый файл все обращения к скрипту.

  • создаем файл log.txt и 666 пермишены для него
  • в common.php добавиваем ПОСЛЕ <?php добавляем следующий код
$f = fopen('полный путь до log.txt', 'a');
fputs($f, date('Y-m-d H:i:s') . " file {$_SERVER['REQUEST_URI']} ref {$_SERVER['HTTP_REFERER']} ip {$_SERVER['REMOTE_ADDR']}\n");
fclose($f);

Все. В скрипте как видно 3 строки, ошибиться просто негде, потом можно посчитать кол-во запросов нужных к нужному скрипту (ин\аут) и сравнить с тем что есть в скрипте. Удобно отфильтровать напрмиер в экселе.

It doesn't count hits from https to http

Сейчас гугл все больше любит сайты которые подписаны сертификатом (https). Вопрос трейда заключается в том, что по дефолту при переходе с https на http реферер не передается, соответственно траффик приходит как нореф.

В этой ситуации есть 2 выхода:

  1. добавлять и слать на трейдеров с ИД. Те если у вас сайт с https то трейдеров вы добавляете как http://trader.com/?id=your_domain
  2. Либо добавить <meta таг который скажет браузеру что в конкретной ситуации реферер передавать все же надо.

Таг добавляется в <head> вашего документа и имеет вид <meta name=“referrer” content=“unsafe-url”>

Есть следующие варианты значения тага:

  • unsafe-url - передает реферер как есть, те полностью урл как все привыкли
  • origin - только домен
  • none-when-downgrade - пустой реферер если переход на http, и реферер ка обычно если переход на https
  • none - ничего совсем

Из этого нас интерисуют только origin и unsafe-url. Технически для трейда достаточно origin. Однако, учитывая что в скрипте часто используется редирет на нишу по реферу трейдера, лучше использовать unsafe-url.

Хотелось бы отметить, что это не фича какого-то скрипта, а фича современных браузеров.

Wrong skimming, wrong redirect, out does not work

99% проблем с аутом решаются просмотром дебаг хедеров out.php

  1. Settings - включаем дебаг Add out.php debug comments = yes
  2. ждем минуту пока обновится конфиг
  3. кликаем на любом линке и смотрим хедеры (как смотреть хедеры и что это такое описано на этой же странице чуть выше)

Обычно по хедерам сразу ясно что как и почему, если что-то не ясно - суппорт на форуме поможет разобраться.

ru/troubleshooting.txt · Last modified: 2017/07/16 18:13 by admin