Как проверить, вошел ли пользователь в WordPress в сценарии загрузки на основе Perl? - PullRequest
0 голосов
/ 15 мая 2019

Я пытаюсь внедрить код в сценарий загрузки на основе Perl, чтобы проверить, вошел ли посетитель URL загрузки в WordPress. В противном случае не разрешайте загрузку. Прямые ссылки на скачивание похожи на external.com/vembed- в конце сценария Perl.

Я пытаюсь добавить код из 1 и 2 ниже в 3:

  1. Определения:

    define('COOKIE_DOMAIN', '.xxxfff.com'); 
    define('COOKIEHASH', md5('xxxfff.com')); 
    
    define('ADMIN_COOKIE_PATH', '/');
    define('COOKIEPATH', '/');
    define('SITECOOKIEPATH', '/');
    
  2. Код:

    require_once $_SERVER['DOCUMENT_ROOT'] . 'blog/wp-load.php'; 
    global $current_user;
    $current_user = wp_get_current_user();
    //var_dump($current_user->ID);
    //var_dump($current_user->display_name);
    //var_dump($_COOKIE);
    
    if ( !function_exists( 'is_user_logged_in' ) ) { 
        require_once    $_SERVER['DOCUMENT_ROOT'] . 'blog/wp-includes/pluggable.php'; 
    } 
    
    $current_user = wp_get_current_user();
    if ( 0 == $current_user->ID ) {
        // Not logged in.
        echo 'not logged in';
    } else {
        // Logged in.
        echo 'logged in';
    }       
    
  3. (часть кода скрипта загрузки)

    perl
    my $code = (split('/',$ENV{REQUEST_URI}))[-2];
    
    print("Content-type:text/html\n\nLink expired"),exit if time > $expire;
    print STDERR "GET $file_code from $ENV{REMOTE_ADDR}\n";
    $speed||=50000;
    my $dx = sprintf("%05d",$file_id/$c->{files_per_folder});
    
    my $expected_ip = join('.', $i1, $i2, $i3, $i4);
    my $mask = join('.', $m1, $m2, $m3, $m4);
    
    my $orig_dir = "$1/orig" if $c->{upload_dir} =~ /^(.*)\/uploads/;
    my $file_path = $orig ? "$orig_dir/$dx/$file_code" : "$c->{upload_dir}/$dx/$file_code";
    

Я пытался и ожидал, что смогу проверить, вошел ли пользователь в WordPress, но ничего не произошло.

Что я могу сделать на конце WordPress и на скрипте perl?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...