Проблема: код поставлен, но система не принимает сайт и просит указать страницу, на которой он установлен. Для решения этой проблемы выполните следующие действия.
Исправьте код вывода ссылок:
<?php define('_SAPE_USER', 'xxxxxxxxxxxxxxxxxxxxxxxxxx'); require_once(realpath($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php')); //Добавьте эти строки для вывода строки <!--check code--> $o = array(); $o[ 'force_show_code' ] = true; $client = new SAPE_client($o); echo $client->return_links(); ?>
После этого обновите страницу и посмотрите ее исходный HTML-код. На месте, где должны быть в дальнейшем ссылки, должна появиться строка <!--check code-->
Строка есть, но сайт все равно не добавляется
Есть строка return_links(); ?>
Строка не появилась, появилось сообщение об ошибке.
Строка <!--check code--> не появилась
На одной площадке размещено несколько сайтов
При добавлении площадки выдается "Такой сайт уже есть в системе"
На сайте включено кеширование/фильтрация/шаблонизация
Строка есть, но сайт все равно не добавляется
Проверьте, находятся ли строка <--check code--> в индексируемой зоне доступного для индексации поисковыми системами документа. Если ссылки закрыты от индексации одним из следующих способов, они не будут найдены роботом нашей системы:
ссылки закрыты от индексации с помощью тегов <noindex>,<script>, <frames>, <applet>, <embed>, <object>, тегов форм или комментариев;
страница, на которой размещаются ссылки, закрыта от индексации в файле robots.txt или в метатегах;
при проверке наличия ссылок на страницах, робот получает отличный от 200 код ответа в HTTP заголовках Вашего сервера;
ссылки размещены за пределами тега <body>;
на сайте включено кеширование/фильтрация/шаблонизация.
Если все вышеперечисленные пункты не подходят к ситуации, но сайт не добавляется, и если сайт имеет ИКС более 50 или присутствует в Яндекс.Каталоге, сообщите о проблеме в форму обратной связи.
[В Начало]
Есть строка return_links(); ?>
Это означает, что страницы вашего сайта не обрабатываются PHP. Для включения обработки PHP достаточно прописать в файле .htaccess (он должен находиться в корневой директории сайта) следующие строки
RemoveHandler .php .htm .html AddHandler application/x-httpd-php .php .htm .html
Если файла не существует - его можно создать в блокноте и закачать в корень сайта.
Если и в этом случае выводится return_links(); ?> , то обратитесь к службе поддержки хостинга с вопросом «Как заставить html-страницы обрабатывать php-код?».
[В Начало]
Строка не появилась, появилось сообщение об ошибке.
Внимательно прочитайте сообщение, устраните ошибку, и проверьте правильность установки кода.
Одна из самых распространенных проблем: код не может подключить файл sape.php из-за того, что папка лежит не в корневой директории сайта. Проверьте значение переменной $_SERVER['DOCUMENT_ROOT'] и допишите недостающую часть пути вручную.
[В Начало]
Строка check code не появилась
Если строка <!--check code--> не появилась, проверьте, выставлены ли права доступа к папке с кодом в значение 777.
Как выставить права на папку "777"
Доступ выставлен. Строки не видно.
Как выставить права на папку "777"
FTP клиентов очень много и описать каждый случай нет возможности.
Например, в Total Commander права на папку выставляются следующей последовательностью действий:
Выделяете папку -> Files -> Change Attributes...
После чего устанавливаете права 777 и нажимаете «ОК».
Некоторые хостеры не поддерживают права 777, учтите и проверьте это.
Доступ выставлен. Строки не видно.
Проверьте, создается ли в папке с кодом файл links.db.
Файл создается и заполнен, но строки все равно не видно
Файл не создается или создается пустой
Файл создается и заполнен, но строки все равно не видно
Видимо, Вы неправильно передаете переменную в шаблон или в какую-либо функцию, где производится непосредственно вывод ссылок.
Аккуратно проследите все шаги передачи параметров.
Файл не создается или создается пустой
Вероятно, у вас проблемы с подключением к нашему серверу, раздающему ссылки. Чтобы убедиться в этом, добавьте в код вывода ссылок следующую строчку:
<?php define('_SAPE_USER', 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); require_once(realpath($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php')); $o = array(); $o[ 'force_show_code' ] = true; //Добавьте эту строку для вывода красной надписи $o[ 'verbose' ] = true; $client = new SAPE_client($o); echo $client->return_links(); ?>
На месте размещения кода должна появиться красная надпись :
SAPE ERROR: Нарушена целостность данных при записи в файл: .........
SAPE ERROR: Не могу записать данные в файл: .........
SAPE ERROR: Не могу подключиться к серверу: .........
SAPE ERROR: Не могу считать данные из файла: .........
SAPE ERROR: Нет доступа на запись к файлу: links.db! Выставите права 777 на папку.
SAPE ERROR: Нет файла links.db. Создать не удалось. Выставите права 777 на папку.
SAPE ERROR: Нарушена целостность данных при записи в файл: .........
Проверьте количество свободного места, выделенного площадке на Вашем хостинге.
SAPE ERROR: Не могу записать данные в файл: .........
Проверьте права файла и папки на запись.
См. раздел Как выставить права на папку "777".
SAPE ERROR: Не могу подключиться к серверу: .........
Проблема в том, что Ваш хостер должен разрешить удаленное соединение с сервером, раздающим ссылки:
dispenser-01.saperu.net
Свяжитесь с поддержкой вашего хостинга и уточните этот вопрос.
Обратите так же внимание на п.2 в этом разделе.
SAPE ERROR: Не могу считать данные из файла: .........
Проверьте права файла и папки на чтение.
См. раздел Как выставить права на папку "777".
SAPE ERROR: Нет доступа на запись к файлу: links.db! Выставите права 777 на папку.
См. раздел Как выставить права на папку "777".
SAPE ERROR: Нет файла links.db. Создать не удалось. Выставите права 777 на папку.
См. раздел Как выставить права на папку "777".
Надпись не выводится
Возможно Вы разместили код так, что он вообще не выполняется. Для того, чтобы это проверить, внесите следующие изменения:
<?php define('_SAPE_USER', 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx'); require_once(realpath($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php')); $o = array(); $o[ 'force_show_code' ] = true; $o[ 'verbose' ] = true; $client = new SAPE_client($o); //Добавьте эту строку для вывода дампа переменной var_dump( $client ); echo $client->return_links(); ?>
В HTML-коде должна появиться длинная строка, в которой описано все содержимое объекта $client.
Если строка не появляется, значит код не выполняется. Ищите проблему.
var_dump() сработал, но links.db по прежнему не создается
Присылайте в обратную связь ваш логин в системе и FTP-доступ к сайту, будем разбираться.
[В Начало]
На одной площадке размещено несколько сайтов
Если папка с кодом SAPE используется несколькими сайтами, то, чтобы избежать конфликтов в links.db, используйте следующий параметр:
<?php $o = array(); $o['multi_site'] = true; //Указывает скрипту наличие нескольких сайтов $client = new SAPE_client(); ?>
В данном случае для каждого сайта будет создан индивидуальный файл со ссылками.
[В Начало]
При добавлении площадки выдается "Такой сайт уже есть в системе"
Если при попытке добавить сайт вам выдается сообщение "Такой сайт уже есть в системе", то вам следует произвести следующие действия:
1) В корне сайта создайте файл sape.txt, в котором напишите логин своего аккаунта. Файл sape.txt должен быть доступен по адресу domen.ru/sape.txt (как пример).
2) Напишите в Обратную Связь в раздел "Другое" и дайте ссылку на размещенный файл sape.txt
После этого мы перенесем сайт на ваш аккаунт.
[В Начало]
На сайте включено кеширование/фильтрация/шаблонизация
Если при добавлении сайта появляется ошибка "Чек-код не найден на странице", но при этом в коде выводится строка <--check code-->: проблема может быть в том, что CMS, шаблонизатор или сервис кеширования/фильтрации контента (к примеру Cloudflare), который используется для сайта, изменяет исходную выдачу html для страницы или вырезает теги комментариев.
Почему это плохо:
мы ориентируемся на выдачу нашего кода и не сможем добавить сайт в систему и в дальнейшем проверять размещенные ссылки, если будет блокироваться вывод кода или ссылок на страницах.
Как понять, что дело именно в промежуточном слое кеширования/фильтрации/шаблонизации:
откройте исходный код страницы, сделайте вызов var_export(...); die(); c контентом, который отдаётся в результате вызова функции return_links() или подобных;
если в результате на экране вы видите контент с чек-кодом , а на конечной странице его нет, то дело в кешировании или вырезании контента.
Как исправить эту проблему:
отключить кеширование при выводе всех блоков с нашим клиентским кодом;
отключить минимизацию/обфускацию исходного html.
Идеальным вариантом является оборачивание блока вызова нашего кода в исключающие теги, которые не дают вашему промежуточному слою кешировать и/или обрабатывать вывод нашего клиентского кода.
Отключение минификации и оптимизации изображений в сервисе Cloudflare
Если вы используете Cloudflare, то для вашего сайта может быть включена автоматическая минификация контента. Минификация html может изменять исходную выдачу нашего клиентского кода. Избирательно отключить минификацию для одного блока кода нельзя, поэтому нужно отключить минификацию html целиком для сайта.
Для этого зайдите в Cloudflare, в разделе Overview выберите сайт, на котором наблюдается проблема. Перейдите в подраздел Speed.
В настройках автоминификации (Auto Minify) снимите галочку у чекбокса HTML.
Если у вас тариф Pro и выше, включена оптимизация изображений и есть проблемы с проверкой картинок в тизерных размещениях, то отключите оптимизацию изображений.
Может ли отключение минификации в Cloudflare сказаться на производительности сайта? Может, но крайне незначительно. Гораздо больший эффект для оптимизации даёт сжатие gzip, но оно включено всегда.
Может ли отключение оптимизации загрузки изображений в Cloudflare сказаться на производительности сайта? Да, может. Если на сайте много исходных изображений и они не оптимизированы, то отключение этой опции может дать сильную нагрузку на ваш сервер и увеличить объём исходящего трафика. Обсудите возможность отключения этой опции с администратором сайта или другим техническим специалистом.
[В Начало]