Реклама на сайте Advertise with us

Подскажите как до редиректа можно запустить php скрипт.

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 19.04.05
Сообщения: 1577
Рейтинг: 957

Ссылка на сообщениеДобавлено: 25/12/13 в 00:53       Ответить с цитатойцитата 

Допустим есть PHP редирект, осуществляющий перенаправление, сразу при заходе сёрфера без задержки.

Но нужно из редиректа запустить php скрипт который будет работать ~ секунд 20.
Желательно что бы была возможность добавить get параметры к урлу этого скрипта.

Дёргаемый скрипт простукивает IP сёрфера с помощью CURL, добавляя стандартные порты (80, 8080, 3128 ...) - на предмет прокси это или нет. С таймаутом в 7 секунд, вот и выходит 20 > секунд.



Пробовал разные варианты:
инклуды...
загрузка с помощью echo file_get_contents ($scrypt_name);
exec ('wget '.$sctrpt_name);

Всё это откладывает выполнение редиректа на 20 секунд.

А хотелось бы что бы редирект прошел, а скрипт анализа получив параметры продолжал работать.
Всем заранее благодарен за советы icon_wink.gif
Рейтингом не обижу smail54.gif

Последний раз редактировалось: Retox (25/12/13 в 17:53), всего редактировалось 5 раз(а)

Link Trade - блоги в Art,Comics,Hentai,3D и тп - 338198557

0
 



С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538


Передовик Master-X (01.11.2009) Передовик Master-X (16.11.2009) Передовик Master-X (01.02.2011) Передовик Master-X (01.12.2011) Передовик Master-X (16.12.2011) Ветеран трепа Master-X (01.01.2014)
Ссылка на сообщениеДобавлено: 25/12/13 в 01:05       Ответить с цитатойцитата 

Если редирект на твою страницу, то с нее аяксом дернуть нужный скрипт.

2
 



С нами с 19.04.05
Сообщения: 1577
Рейтинг: 957

Ссылка на сообщениеДобавлено: 25/12/13 в 01:09       Ответить с цитатойцитата 

Yacc: - не редирект на страницу шопа, партнёрки.

Link Trade - блоги в Art,Comics,Hentai,3D и тп - 338198557

0
 



С нами с 06.11.12
Сообщения: 1715
Рейтинг: 1136

Ссылка на сообщениеДобавлено: 25/12/13 в 01:14       Ответить с цитатойцитата 



Последний раз редактировалось: ^Krot (26/11/19 в 01:07), всего редактировалось 1 раз

0
 



С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538


Передовик Master-X (01.11.2009) Передовик Master-X (16.11.2009) Передовик Master-X (01.02.2011) Передовик Master-X (01.12.2011) Передовик Master-X (16.12.2011) Ветеран трепа Master-X (01.01.2014)
Ссылка на сообщениеДобавлено: 25/12/13 в 01:20       Ответить с цитатойцитата 

Retox писал:
не редирект на страницу шопа, партнёрки.

Сделай прокладку у себя, там аякс и редирект на шоп.

А вообще надо задачу полностью, возможно там все проще можно сделать.

-1
 



С нами с 19.04.05
Сообщения: 1577
Рейтинг: 957

Ссылка на сообщениеДобавлено: 25/12/13 в 01:31       Ответить с цитатойцитата 

^Krot: я немного не понял, ведь после редиректа , в обоих случаях уже нечего не выполняется. При предложенном варианте

Код: [развернуть]



Код: [развернуть]

Link Trade - блоги в Art,Comics,Hentai,3D и тп - 338198557

1
 



С нами с 19.04.05
Сообщения: 1577
Рейтинг: 957

Ссылка на сообщениеДобавлено: 25/12/13 в 01:42       Ответить с цитатойцитата 

Yacc: - дополнил вопрос icon_wink.gif
Прокладка не вариант, с неё конверсия выше. Но суммарно количество продаж c того же трафа ниже, нежели при прямом сливе, часть трафа теряется даже если работать над CTR прокладки...

Link Trade - блоги в Art,Comics,Hentai,3D и тп - 338198557

0
 



С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538


Передовик Master-X (01.11.2009) Передовик Master-X (16.11.2009) Передовик Master-X (01.02.2011) Передовик Master-X (01.12.2011) Передовик Master-X (16.12.2011) Ветеран трепа Master-X (01.01.2014)
Ссылка на сообщениеДобавлено: 25/12/13 в 01:45       Ответить с цитатойцитата 

Код:
<SCRIPT LANGUAGE="JavaScript">
$.get('script.php', {data: 'data'}, function(response) {
  console.log(response);
});
var userLanguage = navigator.language;
location.replace('http://site.com?s=idxxxx);
</SCRIPT>

4
 



С нами с 06.11.12
Сообщения: 1715
Рейтинг: 1136

Ссылка на сообщениеДобавлено: 25/12/13 в 01:49       Ответить с цитатойцитата 



Последний раз редактировалось: ^Krot (26/11/19 в 01:06), всего редактировалось 1 раз

5
 



С нами с 19.04.05
Сообщения: 1577
Рейтинг: 957

Ссылка на сообщениеДобавлено: 25/12/13 в 02:00       Ответить с цитатойцитата 

Yacc: - Всё супер, прям как надо, "анализитор" фоном на сервере отрабатывает и редирект не задерживает smail54.gif

Link Trade - блоги в Art,Comics,Hentai,3D и тп - 338198557

0
 

Криптопохуист

С нами с 05.04.03
Сообщения: 17158
Рейтинг: 6019

Ссылка на сообщениеДобавлено: 25/12/13 в 02:12       Ответить с цитатойцитата 

Retox писал:
Дёргаемый скрипт простукивает IP сёрфера с помощью CURL, добавляя стандартные порты (80, 8080, 3128 ...) - на предмет прокси это или нет. С таймаутом в 7 секунд, вот и выходит 20 > секунд.

Это блокирующий последовательный опрос.

Нужно по другому
1. fsockopen на все порты + stream_set_blocking($stream,0) + stream_set_timeout
2. Дальше опрашивать по stream_select()

За 7 секунд таймаута опросишь все порты параллельно.

пс. 80 порт часто на домашних роутерах открыт.

6
 



С нами с 27.09.03
Сообщения: 5454
Рейтинг: 2506

Ссылка на сообщениеДобавлено: 25/12/13 в 04:20       Ответить с цитатойцитата 

Retox писал:
exec ('wget '.$sctrpt_name);

Всё это откладывает выполнение редиректа на 20 секунд.

обычно как-то так работает скрипт в фоне
Код:
exec('/usr/bin/php myscript.php 2>/dev/null &')

5
 



С нами с 03.02.11
Сообщения: 842
Рейтинг: 301

Ссылка на сообщениеДобавлено: 25/12/13 в 10:20       Ответить с цитатойцитата 

я опять бухой.
но тем не менее - не будет работать жаба после редиректа. как может работать то, что уже на прошлой странице?
игнор_юзер_аборт (ignore_user_abort) поможет. а там уж как хотите - file, exec...
и насчет пробива по портам - абсолютно не правильно и не нужно. тс потом откажется, проверенно.
смотри сюда: секи порт - до 5000 - прямой ип. после 5К - 90% прокси (остальные либо под нат, либо программеры, которые могут юзать порты).
кстати, грозный, ты юзаешь систему, а не пхп. а это четыре маленькие разницы. ну, или две большие.
вообщем, игнор юзер аборт(тру), потом редирект. все.

5
 



С нами с 19.04.05
Сообщения: 1577
Рейтинг: 957

Ссылка на сообщениеДобавлено: 25/12/13 в 13:07       Ответить с цитатойцитата 

Pentarh: - А похожий вариант какие подводные камни имеет?

Код: [развернуть]


80 - действительно у меня самого открыт на роутере icon_wink.gif

Ещё интересно фаервол у пользователя не будет кидать алерты о сканировании портов?

Link Trade - блоги в Art,Comics,Hentai,3D и тп - 338198557

0
 



С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538


Передовик Master-X (01.11.2009) Передовик Master-X (16.11.2009) Передовик Master-X (01.02.2011) Передовик Master-X (01.12.2011) Передовик Master-X (16.12.2011) Ветеран трепа Master-X (01.01.2014)
Ссылка на сообщениеДобавлено: 25/12/13 в 14:05       Ответить с цитатойцитата 

Имхо надо сначала пытаться отсечь прокси как-то так

Код:
function isProxy() {
   
    return ( ! (isset($_SERVER['HTTP_CONNECTION']) and strtolower($_SERVER['HTTP_CONNECTION']) == 'keep-alive' and isset($_SERVER['HTTP_CACHE_CONTROL']) and $_SERVER['HTTP_CACHE_CONTROL'] == 'max-age=0')) ? ((isset($_SERVER['HTTP_ACCEPT_ENCODING']) and $_SERVER['HTTP_ACCEPT_ENCODING'] != 'gzip, deflate') ? 'proxy' : 'vpn') : false;
}

Потом по диапазону ip и только после этого, порты сканить.

4
 



С нами с 03.02.11
Сообщения: 842
Рейтинг: 301

Ссылка на сообщениеДобавлено: 25/12/13 в 14:25       Ответить с цитатойцитата 

вообще-то для решения задачи, нужно ее получить. а в случае тс - нет задачи. просто порты. тс, и не забудь 818... ты порты в википедии прочитал? а приватные? короче, танунах!
задача: кардер (ну или просто любимец сёбы) хочет пробить мусора. вопрос: как его идентифицировать? ответ - я знаю. никак. там тоже есть умы....

0
 



С нами с 03.02.11
Сообщения: 842
Рейтинг: 301

Ссылка на сообщениеДобавлено: 25/12/13 в 14:29       Ответить с цитатойцитата 

Yacc писал:
Имхо
ты давно юзал прокси? такую чушь выдадут только прокси тобой настроенные. тупо бредятина.

0
 



С нами с 19.04.05
Сообщения: 1577
Рейтинг: 957

Ссылка на сообщениеДобавлено: 25/12/13 в 14:34       Ответить с цитатойцитата 

...

Последний раз редактировалось: Retox (25/12/13 в 17:54), всего редактировалось 1 раз

Link Trade - блоги в Art,Comics,Hentai,3D и тп - 338198557

0
 



С нами с 27.09.03
Сообщения: 5454
Рейтинг: 2506

Ссылка на сообщениеДобавлено: 25/12/13 в 14:39       Ответить с цитатойцитата 

записывай все ипы в базу, и отдельным скриптом анализируй
нафига в реалтайме систему грузить?

7
 



С нами с 09.03.09
Сообщения: 6053
Рейтинг: 3538


Передовик Master-X (01.11.2009) Передовик Master-X (16.11.2009) Передовик Master-X (01.02.2011) Передовик Master-X (01.12.2011) Передовик Master-X (16.12.2011) Ветеран трепа Master-X (01.01.2014)
Ссылка на сообщениеДобавлено: 25/12/13 в 14:39       Ответить с цитатойцитата 

AWD писал:
такую чушь выдадут только прокси тобой настроенные.

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

Последний раз редактировалось: Yacc (25/12/13 в 14:40), всего редактировалось 1 раз

4
 



С нами с 16.07.06
Сообщения: 886
Рейтинг: 892

Ссылка на сообщениеДобавлено: 25/12/13 в 14:40       Ответить с цитатойцитата 

Если у тебя на сервере php-fpm,
то есть волшебная ф-ция:

Код:

fastcgi_finish_request

http://www.php.net/manual/en/function.fastcgi-finish-request.php

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

5
 



С нами с 16.07.06
Сообщения: 886
Рейтинг: 892

Ссылка на сообщениеДобавлено: 25/12/13 в 15:43       Ответить с цитатойцитата 

Еще как вариант запуска процессов в фоне:

shell_exec
proc_open
exec

Главное не забыть '&', чтобы пустить процесс в фон:
Код:

shell_exec("php script.php > /dev/null &");


Но имхо лучше писать в базу IPшники, а уже потом их чекать другим скриптом (отдельный php процесс запустить демоном и в случае появления в БД IPшников - чекать их).

Btw,
опасно массово чекать адреса на открытые порты, хостеру может не понравиться, в какие-то блэк листы попадешь и абуза прийдет.

5
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »