Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 18 su 18

Hybrid View

  1. #1
    Quote Originariamente inviata da Santino83_02 Visualizza il messaggio
    con http basi authentication basta che fai http://USERNAME:PASSWORD@url/to/script.php e il box non appare
    Fantastico, ci provo. Grazie ancora

  2. #2
    Quote Originariamente inviata da digitos Visualizza il messaggio
    Fantastico, ci provo. Grazie ancora
    Fino a ieri il procedimento http://USERNAME:PASSWORD@url/to/script.php funzionava alla grande.
    Da stamattina, non so per quale misterioso motivo, non va più. Idee?

  3. #3
    A quanto pare il problema riguarda la configurazione di php.
    Con questa configurazione

    • PHP 5.6
    • Apache 2.4
    • PHP5-FPM

    la variabile $_SERVER['HTTP_AUTHORIZATION'] è vuota e di conseguenza non funziona.
    Anche provando a inserire in un file htaccess questa regola non va.

    codice:
    RewriteEngine on
    RewriteRule.?-[E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    


    Leggendo in giro, l'unica strada è questa:

    You can work around this issue by passing the header directly to PHP via the env:
    SetEnvIfAuthorization"(.*)" HTTP_AUTHORIZATION=$1
    Ma non ho capito dove va inserita questa riga.
    Consigli? grazie
    digitos




  4. #4
    Quote Originariamente inviata da digitos Visualizza il messaggio

    Leggendo in giro, l'unica strada è questa:

    You can work around this issue by passing the header directly to PHP via the env:
    SetEnvIfAuthorization"(.*)" HTTP_AUTHORIZATION=$1
    Ma non ho capito dove va inserita questa riga.
    Consigli? grazie
    digitos



    Inserendola nell'htaccess non funziona. Ho trovato altri script ma non ne esiste uno che funzioni.
    Immenso problema.

  5. #5
    Nessuno è al corrente di questo problema? grazie comunque

  6. #6
    Codice PHP:

    <?php

    $user 
    $_SERVER['PHP_AUTH_USER'];
    $passwd $_SERVER['PHP_AUTH_PW'];
    //autentico l'utente
    if(!$user || !$passwd || $user!='USERNAME_UTENTE_VALIDO' || $passwd !='PASSWORD_UTENTE_VALIDO'){
      
    header('WWW-Authenticate: Basic realm="My Realm"');
      
    header('HTTP/1.0 401 Unauthorized');
      exit;
    }

    //l'utente è loggato, leggo l'xml
    $xml file_get_contents('test.xml');

    //output dell'xml
    header('Content-Type: text/xml');
    echo 
    $xml;
    esempio banalissimo. Salva il file come, ad esempio, getxml.php , mettigli accanto un file test.xml con l'xml che vuoi, poi:

    codice:
    cd path/to/cartella/contentente_getxml.php
    php -S localhost:8000
    apri il browser, vai ad http://localhost:8000/getxml.php e ti chiederà l'autenticazione, et voilà. Il browser poi si ricorda l'autenticazione che hai fatto, quindi dopo la prima richiesta non ti richiede più di autenticarti

    WWW-Authenticate: Basic informa il client che è richiesta un'autenticazione di tipo HTTP basic. Il client dovrà quindi mandare, nella richiesta http, l'header Authorization con il digest formato da base64(usernameassword) , ad esempio:
    codice:
    Authorization: Basic dXNlcjpwYXNzd29yZA==
    tale autorizzazione puoi scegliere se gestirla a livello di Apache o di Php
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  7. #7
    Quote Originariamente inviata da Santino83_02 Visualizza il messaggio
    Codice PHP:

    <?php

    $user 
    $_SERVER['PHP_AUTH_USER'];
    $passwd $_SERVER['PHP_AUTH_PW'];
    //autentico l'utente
    if(!$user || !$passwd || $user!='USERNAME_UTENTE_VALIDO' || $passwd !='PASSWORD_UTENTE_VALIDO'){
      
    header('WWW-Authenticate: Basic realm="My Realm"');
      
    header('HTTP/1.0 401 Unauthorized');
      exit;
    }

    //l'utente è loggato, leggo l'xml
    $xml file_get_contents('test.xml');

    //output dell'xml
    header('Content-Type: text/xml');
    echo 
    $xml;
    esempio banalissimo. Salva il file come, ad esempio, getxml.php , mettigli accanto un file test.xml con l'xml che vuoi, poi:

    codice:
    cd path/to/cartella/contentente_getxml.php
    php -S localhost:8000
    apri il browser, vai ad http://localhost:8000/getxml.php e ti chiederà l'autenticazione, et voilà. Il browser poi si ricorda l'autenticazione che hai fatto, quindi dopo la prima richiesta non ti richiede più di autenticarti

    WWW-Authenticate: Basic informa il client che è richiesta un'autenticazione di tipo HTTP basic. Il client dovrà quindi mandare, nella richiesta http, l'header Authorization con il digest formato da base64(usernameassword) , ad esempio:
    codice:
    Authorization: Basic dXNlcjpwYXNzd29yZA==
    tale autorizzazione puoi scegliere se gestirla a livello di Apache o di Php
    Grazie per la risposta. Ma se il problema è che non vengono inizializzate le variabili $_SERVER['PHP_AUTH_USER'] e $_SERVER['PHP_AUTH_PW'] come faccio usare questo script? Perdona la mia ignoranza in materia ma mi sembra di capire che il mio ostacolo sia a monte.
    grazie ancora digitos

  8. #8
    Ce l'ho fatta!!!

    Questo è l'unico codice htaccess che ho trovato per far funzionare le variabili php_auth_user e pw con php 5.6 in modalità FPM con Apache 2.2 o 2.4.

    codice:
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L] 
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ nomefile.php [QSA,L]
    </IfModule>
    grazie a tutti!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.