Небольшие баги

Постим сюда все найденые ошибки
admin
Site Admin
Posts: 37202
Joined: Wed Sep 10, 2008 11:43 am

Re: Небольшие баги

Post by admin »

ivlad wrote: Mon Apr 18, 2022 2:27 pm К сожалению, мне надо отъехать на пару часов...
форум работает 24\7, пишите когда вам уобно будет
Don't forget to run script update
ivlad
Posts: 109
Joined: Wed May 10, 2017 2:17 pm

Re: Небольшие баги

Post by ivlad »

Я вернусь через пару часов и сделаю 2 наглядных варианта...
admin
Site Admin
Posts: 37202
Joined: Wed Sep 10, 2008 11:43 am

Re: Небольшие баги

Post by admin »

наглядный вариант это ваш код?

если вы просто редиректите на аут и все работает а с вашим кодом нет - понятно что проблема где-то в вашем коде
Don't forget to run script update
admin
Site Admin
Posts: 37202
Joined: Wed Sep 10, 2008 11:43 am

Re: Небольшие баги

Post by admin »

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

например out.php?url=http://asd.com/ это реальна ссылка на смарт и она работает

сейчас у вас есть условно o.php который выглядит примерно как

<?

ваш код line1
ваш код line2
ваш код line3

include(real_out.php)

и такой код не работает


вы перемещаете инклудт смарта в самое начало

<?

include(real_out.php)
exit;

ваш код line1
ваш код line2
ваш код line3

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

после этого начинаете двигать инклуд смарт вниз своего кода, условно

<?
ваш код line1

include(real_out.php)
exit;

ваш код line2
ваш код line3


и ловите в какой момент оно перестает работать.
Don't forget to run script update
ivlad
Posts: 109
Joined: Wed May 10, 2017 2:17 pm

Re: Небольшие баги

Post by ivlad »

Нет, я еще более упрощаю тестовый код до минимума...

Итак, есть domain.com, установлен SmartCJ в /scj/, ин считается через смартовский /index.php, соответственно, в CJ Pages:
/home/path_to_root/domain.com/index2.php

В nginx стоит реврайт:

Code: Select all

    location / {
        try_files $uri $uri/ /index.php?no_niche_redirect=true$is_args$args;
    }
Делаем тестовый index2.php, со следующим кодом:

Code: Select all

<?php

if (strpos(@$_SERVER['HTTP_REFERER'],'domain.com')!==false) {
    $url="https://duckduckgo.com/";
    $_REQUEST['url']=$_GET['url']=$url;
    $_SERVER['QUERY_STRING']='url='.urlencode($url);
    $_SERVER['SCRIPT_NAME']=$_SERVER['PHP_SELF']=$_SERVER['DOCUMENT_URI']='/scj/cgi/out.php';
    $_SERVER['SCRIPT_FILENAME']=$_SERVER['DOCUMENT_ROOT'].$_SERVER['SCRIPT_NAME'];
    $_SERVER['REQUEST_URI']=$_SERVER['SCRIPT_NAME'].'?'.$_SERVER['QUERY_STRING'];
    include($_SERVER['SCRIPT_FILENAME']);
    exit;
}
echo "<a href='/test111/' target='_blank'>OUT</a>";
exit;
- так все работает!
2022-04-18 18:12:41 :: click at /scj/cgi/out.php?url=https%3A%2F%2Fduckduckgo.com%2F ref: https://www.domain.com/test111/
2022-04-18 18:12:41 :: X-trader: trader1.com
2022-04-18 18:12:41 :: Current-Click: 14
2022-04-18 18:12:41 :: X-Current-Trader: trader1.com
2022-04-18 18:12:41 :: Last-key: default skimming (proxy_url)
2022-04-18 18:12:41 :: X-Set-skim: 50 ()
2022-04-18 18:12:41 :: URL-Redirect: https://duckduckgo.com/ at 50 % ( rand 60)
2022-04-18 18:12:41 :: Script-group: ff (q: 1) (52 70) (70, 15, 15)
2022-04-18 18:12:41 :: Get-traderQ1: field ff, total traders 99
2022-04-18 18:12:41 :: Field-Set: No traders so this set, change it to main
2022-04-18 18:12:41 :: Get-traderQ1: field main, total traders 99
2022-04-18 18:12:41 :: Rand: 1644 (1644)
2022-04-18 18:12:41 :: Got-member: trader2.com (http://trader2.com/)
2022-04-18 18:12:41 :: Traffic-sell-X: check trader1.com sell_skim = 0
2022-04-18 18:12:41 :: Traffic-Trade: Sending to trade
2022-04-18 18:12:41 :: Redirect-to-location: to trade
2022-04-18 18:12:41 :: Load-tube: get params
2022-04-18 18:12:41 :: Click-count-action-start: res count 4
2022-04-18 18:12:41 :: Click-count-error: https://www.domain.com/test111/ magic:1 no gal:1 skip_cookie: get_skip: ..
2022-04-18 18:12:41 :: Tube-action: return result
2022-04-18 18:12:41 :: Load-tube: done
2022-04-18 18:12:41 :: Script-select: result
2022-04-18 18:12:41 :: Show-member: true
2022-04-18 18:12:41 :: Add-click: started
2022-04-18 18:12:41 :: Write-hits: done
Как только мы выносим этот код в класс или хотя бы в функцию:

Code: Select all

<?php

function out111() {
    $url="https://duckduckgo.com/";
    $_REQUEST['url']=$_GET['url']=$url;
    $_SERVER['QUERY_STRING']='url='.urlencode($url);
    $_SERVER['SCRIPT_NAME']=$_SERVER['PHP_SELF']=$_SERVER['DOCUMENT_URI']='/scj/cgi/out.php';
    $_SERVER['SCRIPT_FILENAME']=$_SERVER['DOCUMENT_ROOT'].$_SERVER['SCRIPT_NAME'];
    $_SERVER['REQUEST_URI']=$_SERVER['SCRIPT_NAME'].'?'.$_SERVER['QUERY_STRING'];
    include($_SERVER['SCRIPT_FILENAME']);
}
if (strpos(@$_SERVER['HTTP_REFERER'],'domain.com')!==false) {
    out111();
    exit;
}
echo "<a href='/test111/' target='_blank'>OUT</a>";
exit;
- на контент срабатывает аут, а трейдеров не находит:
2022-04-18 18:13:06 :: click at /scj/cgi/out.php?url=https%3A%2F%2Fduckduckgo.com%2F ref: https://www.domain.com/test111/
2022-04-18 18:13:06 :: X-trader: trader1.com
2022-04-18 18:13:06 :: Current-Click: 18
2022-04-18 18:13:06 :: X-Current-Trader: trader1.com
2022-04-18 18:13:06 :: Last-key: default skimming (proxy_url)
2022-04-18 18:13:06 :: X-Set-skim: 50 ()
2022-04-18 18:13:06 :: URL-Redirect: https://duckduckgo.com/ at 50 % ( rand 64)
2022-04-18 18:13:06 :: Script-group: ff (q: 1) (25 70) (70, 15, 15)
2022-04-18 18:13:06 :: Get-traderQ1: field ff, total traders 99
2022-04-18 18:13:06 :: Field-Set: No traders so this set, change it to main
2022-04-18 18:13:06 :: Get-traderQ1: field main, total traders 99
2022-04-18 18:13:06 :: Rand: 0 (0)
2022-04-18 18:13:06 :: Script-group: nbf (q: 1) (25 85) (70, 15, 15)
2022-04-18 18:13:06 :: Get-traderQ1: field nbf, total traders 99
2022-04-18 18:13:06 :: Field-Set: No traders so this set, change it to main
2022-04-18 18:13:06 :: Get-traderQ1: field main, total traders 99
2022-04-18 18:13:06 :: Rand: 0 (0)
2022-04-18 18:13:06 :: Script-group: pbf (q: 1) (25 100) (70, 15, 15)
2022-04-18 18:13:06 :: Get-traderQ1: field pbf, total traders 99
2022-04-18 18:13:06 :: Field-Set: No traders so this set, change it to main
2022-04-18 18:13:06 :: Get-traderQ1: field main, total traders 99
2022-04-18 18:13:06 :: Rand: 0 (0)
2022-04-18 18:13:06 :: Script-group: main (q: 1) (25 100) (70, 15, 15)
2022-04-18 18:13:06 :: Get-traderQ1: field main, total traders 99
2022-04-18 18:13:06 :: Rand: 0 (0)
2022-04-18 18:13:06 :: Traffic-Trade: out of traders, sending to url
2022-04-18 18:13:06 :: Traffic-sell-set: trader1.com .. 0
2022-04-18 18:13:06 :: Traffic-sell-X: check trader1.com sell_skim = 0
2022-04-18 18:13:06 :: Redirect-to-location: to content
2022-04-18 18:13:06 :: Load-tube: get params
2022-04-18 18:13:06 :: Click-count-action-start: res count 4
2022-04-18 18:13:06 :: Click-count-error: https://www.domain.com/test111/ magic:1 no gal:1 skip_cookie: get_skip: ..
2022-04-18 18:13:06 :: Tube-action: return result
2022-04-18 18:13:06 :: Load-tube: done
2022-04-18 18:13:06 :: Script-select: result
2022-04-18 18:13:06 :: Script-location: url
2022-04-18 18:13:06 :: Add-click: started
2022-04-18 18:13:06 :: Write-hits: done
Last edited by ivlad on Mon Apr 18, 2022 6:29 pm, edited 1 time in total.
ivlad
Posts: 109
Joined: Wed May 10, 2017 2:17 pm

Re: Небольшие баги

Post by ivlad »

Как мне видится, есть какая-то особенность в PHP или в коде Смарта, которая не дает заинклюдить аут из любой функции, при этом без вызова функции инклюд работает без проблем.
admin
Site Admin
Posts: 37202
Joined: Wed Sep 10, 2008 11:43 am

Re: Небольшие баги

Post by admin »

Это может быть ньюансом ioncube, он переименовывает переменные в функциях

но я 3й раз возвращаюсь к вопросу просто редиректа на аут, что с ним не так?
Don't forget to run script update
ivlad
Posts: 109
Joined: Wed May 10, 2017 2:17 pm

Re: Небольшие баги

Post by ivlad »

admin wrote: Mon Apr 18, 2022 6:29 pm но я 3й раз возвращаюсь к вопросу просто редиректа на аут, что с ним не так?
теоретически или практически? есть задача уйти от двойного редиректа - отсюда и исходим

admin wrote: Mon Apr 18, 2022 6:29 pm Это может быть ньюансом ioncube, он переименовывает переменные в функциях
вот это уже хотя бы какое-то направление, гугл пока молчит(
admin
Site Admin
Posts: 37202
Joined: Wed Sep 10, 2008 11:43 am

Re: Небольшие баги

Post by admin »

так зачем для этого подменять переменные и тп?

/vide/12345 реврайтиться на out.php

out.php инклудит common.php

в комон вы инклудите свой код который считает ротацию как вам надо

все.
Don't forget to run script update
ivlad
Posts: 109
Joined: Wed May 10, 2017 2:17 pm

Re: Небольшие баги

Post by ivlad »

не все так просто

во-первых, код достаточно большой (> 5к строк)
во-вторых, код данного приложения лежит в одном месте и инклюдится сотнями доменов
в-третьих, раньше это работало, потом перестало - поставили костыль с промежуточным редиректом
Post Reply