Блокировщик "Биланов-стояков" в AdSense на php

SG
На сайте с 22.06.2017
Offline
160
153714

Написал ПО на php для автоматический чистки от шлака в текстовых объявлениях.

Есть описание с инструкцией и рекомендациями.

Почитать и скачать можно здесь: php-клиент для блокировки объявлений в AdSense.

С внешним видом можно ознакомиться: тут.

Обсуждение началось где-то здесь: /ru/forum/968625

Продолжим тут.

Компьютеров с разными php много, не у всех всё хорошо работает. Пишите у кого какие проблемы.

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

Запись файлов включается галочкой "Enable logs" Она внизу слева.

Файл пишутся во временную папку (tempdata) в папку logs.

php-клиент AdSense для поиска объявлений с блокировкой по ключевым словам и не только: Bad ads Blocker (https://www.howgadget.com/adsense/kak-zablokirovat-musornye-obyavleniya-v-adsense.html#download) Заблокированные домены (https://www.howgadget.com/bad_ads_blocker/domains/)
Z0
На сайте с 03.09.2009
Offline
756
#1

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

Но за софт спасибо, полезная штука.

Оптимизайка
На сайте с 11.03.2012
Offline
396
#2

Спасибо за усилия, но код ужасен :D

⭐ BotGuard (https://botguard.net) ⭐ — защита вашего сайта от вредоносных ботов, воровства контента, клонирования, спама и хакерских атак!
Z0
На сайте с 03.09.2009
Offline
756
#3
Оптимизайка:
Спасибо за усилия, но код ужасен :D

Напишите лучше :) Критиковать не камни таскать 🤪

Пользователю главное что? Главное - результат :)

SG
На сайте с 22.06.2017
Offline
160
#4

Отвечаю на вопросы заданные в другой теме:

vga1:
Тоже не.
Какие функции в php.ini нельзя запрещать?

Цитата:
; This directive allows you to disable certain functions for security reasons.
; It receives a comma-delimited list of function names.
; http://php.net/disable-functions
disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled, pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror, pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,exec,passthru, shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source

Из Вашего списка curl_exec никак нельзя.

time, file_put_contents, file_get_contents, file, json_encode, json_decode.

Пожалуй, не буду дальше. Обычные функции.

alexey_jc:
Notice: iconv(): Detected an illegal character in input string in /home/111/site.xyz/bad-ads-blocker/functions.php on line 278

Notice: iconv(): Detected an illegal character in input string in /home/111/site.xyz/bad-ads-blocker/functions.php on line 280

На одном сервере видел такое. Автоматическими проверками не удалось решить проблему. Почему-то условие с пустой строкой не срабатывало, хотя вывод был пуст.

Принял в план, поразмышляю над этим.

igor3310:
Новый 1.5 скрипт - залогинился вроде (написало в окошке Login successful!)

П.С. Правда при сохранении настроек ругалось на Заголовок в файле Warning: Cannot modify header information - headers already sent by (output started at D:\SERVER\OpenServer\domains\adsends\functions.php:498) in D:\SERVER\OpenServer\domains\adsends\settings\settings_update.php on line 13

Это я накосячил. Переводы строк в файле были перед header. У меня это ошибки не вызвало почему-то, исправил.

Vanzent:
Возникает вопрос - в чем разница stopwords и bad ad text. Разная логика работы? Ведь в любом случае запрос с этим словом/текстом как фильтр посылается гуглу и тот отвечает списком объяв. Или здесь как-то по-другому?
Ведь один список на виду лучше чем два.
Добвил "суставы как в молодости" в stopwords - все прекрасно заблокировалось.

Разница лишь в том, что один список, который на виду сами заполняем.

А другой автоматически формируется из текстов заблокированных объявлений.

В текстах заблокированных объявлений могут быть слова, которые не подходят для блокировки.

В списках отсеиваются повторы и какой-то из них сортируется.

В общем их два, чтобы не мешать ручной набор слов и автоматический.

А при фильтрации никакой разницы нет. Оба списка сливаются в один массив поиска (если галки соответствующие стоят).

Vanzent:
Еще. Запросы идут на новый ЦПО или старый? В новом, если пометить объявы как проверенные, они не будут появлятся в фильтре.

Запросы идут в старый ЦПО. Когда начинал у меня ещё не было нового. Он появился когда уже рабочий прототип очеловечивал. А в новом запросы другие. Если старый отключат, то придётся переписывать. Не знает кто-нибудь планы Google на старый ЦПО?

Vanzent:
ps
"смотреть видео" - по этому фильтру было два объявления, одно текстовое, оно заблокировалось, а вот такое как на картинке не заблокировалось почемуто.

На картинке медийное. Они пока что не поддерживаются. Можно включить галку, если код поправить. И он будет запрашивать медийные. Но механизм разбора текста не подходит от текстовых, они выходят просто пустыми.

Telebird:
Необязательно тянуть весь Symfony, достаточно только одного этого компонента и подключить по Psr-4 + Composer. Это намного облегчит жизнь по парсингу, плюс в самом компоненте уже есть полная совместимость со всеми популярными версиями php.
P.S. Раньше я как и Вы кодил на чистом php. Как только перешел на фреймворки + composer, то как будто глоток свежего воздуха получил. Это нереально облегчит вам дальнейший код и сэкономит массу времени и нервов.

Да, понимаю даже, что это правильно, но пока что отложу. )

Vanzent:
Поставил каждые 15 проверку )) Огонь!
Если бы можно было скрипт проверки в крон запихнуть, и через веб это контролировать, а я думаю что это можно сделать, то вообще зер гуд будет.

Так есть же поддержка cron, изначально это закладывал. У меня так и работает, захожу иногда посмотреть что там наблокировалось. Добавляйте search_bad_ads.php в cron и смотрите что будет.

Vanzent:
ps.
Check for redirects вылазят ошибки. И понаблокировал целую кучу нормальных объяв ))

Да, это потому что на нормальных объявлениях тоже встречаются переадресации между доменами. А ещё с русскоязычными доменами косячит. Ещё не добрался до исправления этого.

Drayz:
Notice: Undefined variable: forms in /home/домен/public_html/login_functions.php on line 165

А Google прислал уведомление

"кто-то далеко завладел Вашим паролём и пытался войти, но я жёстко присёк попытку!"?

Если нет, то надо смотреть файлы.

Vanzent:
Ни с того ни с сего перезаписался сеттингс, мыло стало *** gmail.com . Откуда он это выкапал?
Вобщем блокировал, блокировал и перестал. Может там каптча вылазит? попробую позже.

Может кто ещё зашёл и сменил? Других логичных объяснений не вижу...

FUS:
если нажать Update settings
Warning: Cannot modify header information - headers already sent by (output started at /home/n//public_html/functions.php:498) in /home/n//public_html/settings/settings_update.php on line 13
ошибка при нажатии Login in Google
Notice: Undefined variable: forms in /home/Xxxx/public_html/login_functions.php on line 165

Этот косяк поправил, выложу.

Z0
На сайте с 03.09.2009
Offline
756
#5

sergeich_gs

Warning это не ошибки, как я понимаю, а предупреждения :)

error_reporting у вас натсроен без них, наверное 🙄

SG
На сайте с 22.06.2017
Offline
160
#6
ziliboba0213:
Побыстрей бы версия 2.0, чтобы поставил, настроил и забыл Судя по куче ошибок и глюков разных у людей, пока ставить остерегаюсь

Но за софт спасибо, полезная штука.

Да, поработать есть над чем. После 1.7 2.0 сделаю )

---------- Добавлено 26.10.2017 в 20:14 ----------

ziliboba0213:
sergeich_gs
Warning это не ошибки, как я понимаю, а предупреждения :)

Да, Nitice тоже, только, как я понял ещё мене важное.

---------- Добавлено 26.10.2017 в 20:15 ----------

Оптимизайка:
Спасибо за усилия, но код ужасен

Недооптимизирован? ))

Оптимизайка
На сайте с 11.03.2012
Offline
396
#7
ziliboba0213:
Пользователю главное что? Главное - результат :)

Хорош результат будет после перехода автора по такой ссылке.

Или после просмотра этой "невидимой" картинки:

Ну это самое безобидное кнчн.

Z0
На сайте с 03.09.2009
Offline
756
#8

Оптимизайка, Так это надо самому так делать, только зачем? 🤪

Поставить deny from all или авторизацию простенькую и все дела :)

Если я вас правильно понял, я не шибко силен в PHP:)

Drayz
На сайте с 03.02.2015
Offline
52
#9

Notice: Undefined index: HTTP_REFERER in /home/домен/public_html/334/settings/settings_update.php on line 13 Warning: Cannot modify header information - headers already sent by (output started at /домен/public_html/334/functions.php:498) in /home/домен/public_html/334/settings/settings_update.php on line 13

При нажатии кнопки обновления настроек.

Notice: Undefined variable: forms in /home/домен/public_html/334/login_functions.php on line 165

При нажатии Login in Goolt после ввода пароля.

Это ещё неисправлено в в версии 1.5 по ссылке для скачивания?

Жадность порождает бедность
RedBird
На сайте с 10.05.2010
Offline
128
#10

Спасибо за скрипт! Доработал под себя список стоп слов. А так все работает отлично.

Только не особо понял, зачем нужен bad ad text list, если тоже самое блокируется с помощью stopwords list.

🚀 Push партнерка с Header Bidding: https://t.ly/LuTl 🍋 Выжимай максимум со всех Push рекламных сетей.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий