Visualizzazione risultati 1 fino 20 di 20

Discussione: File htaccess

  1. #1
    Guest

    Predefinito File htaccess

    Salve.
    Volevo sapere come poter configurare un file di tipo .htaccess.
    Ad esempio vorrei proteggere in una cartella dei file tipo .jpg ed in un'altra cartella dei file formato .doc e .pdf.
    Grazie.

    Edit:

    Qualcuno sa dove posso trovare tutte le direttive di un file .htaccess?
    Ad esempio ho scritto questo:

    Codice:
    <Files ~ ".pdf">
    Order allow,deny
    Deny from all
    Satisfy All
    </Files>
    per evitare l'accesso ai file .pdf è giusto?
    Ultima modifica di andreafallico : 31-10-2012 alle ore 13.24.53 Motivo: + tag

  2. #2
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Citazione Originalmente inviato da maxprova1 Visualizza messaggio
    per evitare l'accesso ai file .pdf è giusto?
    Non ti rimane che provare


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  3. #3
    Guest

    Predefinito

    Ho provato è funziona.
    Avevo anche provato precedentemente senza chiudere il browser e senza riavviare il computer, e mi dava sempre la pagina con le relative immaggini, per questo ho pensato che non funzionasse.
    Quindi ogni volta che modifico il file .htaccess devo spegnere il computer oppure solo uscire e riavviare solo il browser?
    Grazie.

  4. #4
    habbogalactica non è connesso Utente giovane
    Data registrazione
    12-06-2012
    Messaggi
    66

    Predefinito

    Citazione Originalmente inviato da CodeIsMagic Visualizza messaggio
    Ho provato è funziona.
    Avevo anche provato precedentemente senza chiudere il browser e senza riavviare il computer, e mi dava sempre la pagina con le relative immaggini, per questo ho pensato che non funzionasse.
    Quindi ogni volta che modifico il file .htaccess devo spegnere il computer oppure solo uscire e riavviare solo il browser?
    Grazie.
    Probabilmente è perché erano ancora salvate nelle cache, se provavi ad aggiornare la pagina o a visitarla in modalità "in incognito" o simili probabilmente non le vedevi.

  5. #5
    Guest

    Predefinito

    Scusate adesso ho fatto un file di tipo accesso.php con questo script:
    Codice PHP:
    if($_SESSION['tipo_utente'] == "amministratore"){

    $nome_file="flanders.jpg";
    $dimensione_file="21kb";
    $percorso_assoluto="";

    header("Content-Type: application; name=".$nome_file);
    header("Content-Transfer-Encoding: binary");
    header("Content-Length: ".$dimensione_file);
    header("Content-Disposition: inline; filename=".$nome_file);
    header("Expires: 0");
    header("Cache-Control: no-cache, must-revalidate");
    header("Cache-Control: private");
    header("Pragma: public");

    readfile($percorso_assoluto.$nome_file);

    }
    Solo che ora se non tolgo il file .htaccess non mi fa più vedere il specifico file che ho messo qui:

    <Files ~ "flanders.jpg">
    Order allow,deny
    Deny from all
    Satisfy All
    </Files>

    Come posso fare perchè solo io amministratore o chi è autorizzato può passare oltre il file .htaccess?
    Centra qualcosa il percorso assoluto?
    Grazie

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,791

    Predefinito

    Hai messo la session_start() all'inizio?

    L'immagine è nella stessa cartella in cui è contenuto lo script? (altrimenti dovrai agire nel "percorso assoluto", anche se più che "percorso assoluto", lo chiamerei "percorso"...

    Per la dimensione del file, perché non utilizzi la filesize() ?

    Ciao!

  7. #7
    Guest

    Predefinito

    Guarda alemoppo ho corretto lo script così:
    Codice PHP:
    <?php
    // file accesso.php
    session_start();
    if(
    $_SESSION['tipo_utente'] == "amministratore"){

    $nome_file="flanders.jpg";
    $dimensione_file=filesize($nome_file);
    // solo se il file da raggiungere non si trova nella stessa cartella di questo
    // $percorso_assoluto="../immagini/";

    header("Content-Type: application; name=".$nome_file);
    header("Content-Transfer-Encoding: binary");
    header("Content-Length: ".$dimensione_file);
    header("Content-Disposition: inline; filename=".$nome_file);
    header("Expires: 0");
    header("Cache-Control: no-cache, must-revalidate");
    header("Cache-Control: private");
    header("Pragma: public");

    //readfile($percorso_assoluto.$nome_file);
    readfile($nome_file);
    }
    ?>
    poi ho richiamato nella barra degli url il seguente percorso:
    Codice:
    http://www.codeismagic.altervista.org/immagini/flanders.jpg
    ma continuo a non vedere niente anche se mi loggo al sito con la sessione "amministratore".
    Il file accesso.php è nella cartella immagini quindi non setto il percorso.
    Devo fare un import del file accesso.php all'interno del file di autenticazione del login?

  8. #8
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,791

    Predefinito

    Boh... Io ho provato con un get, così:

    Codice PHP:
    <?php
    if($_GET['tipo_utente'] == "amministratore"){
    $nome_file="flanders.jpg";
    $dimensione_file=filesize($nome_file);
    // solo se il file da raggiungere non si trova nella stessa cartella di questo
    // $percorso_assoluto="../immagini/";

    header("Content-Type: application; name=".$nome_file);
    header("Content-Transfer-Encoding: binary");
    header("Content-Length: ".$dimensione_file);
    header("Content-Disposition: inline; filename=".$nome_file);
    header("Expires: 0");
    header("Cache-Control: no-cache, must-revalidate");
    header("Cache-Control: private");
    header("Pragma: public");

    //readfile($percorso_assoluto.$nome_file);
    readfile($nome_file);
    }
    else echo
    'Non puoi vedere questa immagine';
    ?>
    E a me funziona:
    http://alemoppo.altervista.org/LABS/...amministratore
    http://alemoppo.altervista.org/LABS/max1prova/index.php
    http://alemoppo.altervista.org/LABS/...a/flanders.jpg


    L'unica cosa, prova a controllare se la sessione tipo_utente è veramente "amministratore"...

    Ciao!
    Ultima modifica di alemoppo : 02-11-2012 alle ore 13.03.11

  9. #9
    Guest

    Predefinito

    Scusa ma non fai nessun "require" da qualche parte in qualche file?

  10. #10
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,791

    Predefinito

    no... che require dovrei fare?

    Ciao!

  11. #11
    Guest

    Predefinito

    Comunque continua a non passare nella prima condizione if, ho fatto già diversi tipi di tentativi.
    Quindi il file tipo accesso.php che ho sul server quando le variabili di sessione sono attivate, anche il file viene attivato da solo?

  12. #12
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,791

    Predefinito

    Non capisco cosa intendi per "il file viene attivato da solo" .

    Hai messo qualche codice prima della session_start()?

    Ciao!

  13. #13
    Guest

    Predefinito

    No non ho messo niente prima di session_start();

    Non è che ho un problema di sessione? Nel senso che le immagini sono sotto la cartella immagini così anche il file accesso.php ,è possibile che le sessioni nella sotto cartella immagini non arrivano?
    Ultima modifica di maxprova1 : 03-11-2012 alle ore 23.52.39

  14. #14
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,791

    Predefinito

    No. Le sessioni non dovrebbero avere questi problemi.
    Prova a stampare $_SESSION['tipo_utente']

    Ciao!

  15. #15
    Guest

    Predefinito

    Stampando $_SESSION['tipo_utente'] non ottengo nulla.

    Ho provato a mettere nella condizione if(empty($_SESSION['tipo_utente'])) e così funziona ma accedendo al file accesso.php mi dà subito la finestra se voglio salvarlo o se voglio aprirlo, poi provo ad aprirlo con firefox e mi da questo errore
    L'immagine file:///C:/DOCUME~1/MASSIM~1.IRO/IMPOST~1/Temp/flanders-7.jpg non può essere visualizzata poichè
    contiene degli errori
    Se lo scarico mi da errore quando tento di aprirlo con un software visuale.
    Mentre se scrivo nella barra dell' url tutto il percorso fino all'immagine non mi fa vedere niente

  16. #16
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,791

    Predefinito

    Se lo scarico mi da errore quando tento di aprirlo con un software visuale.
    Quindi il file è corrotto.
    Mentre se scrivo nella barra dell' url tutto il percorso fino all'immagine non mi fa vedere niente
    Questo è dato dal file .htaccess che lo protegge.

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Hai messo qualche codice prima della session_start()?
    Come setti la sessione? In altre pagine funzionano le sessioni?

    Ciao!

  17. #17
    Guest

    Predefinito

    Nelle altre pagine di sessione metto questo:
    Codice PHP:
    session_start();
    if (
    $_SESSION['nome_utente'] == "massimo" && $_SESSION['tipo_utente'] == "amministratore")
    {
    fai questo}
    else{
    sessione scaduta}
    Ho provato anche a metterlo nel file di accesso.php questa condizione ma continua a non passare per la condizione if.

    Si nelle altre pagine del sito le sessioni funzionano correttamente.

    Il mio sito e composto così:
    /
    /__/immagini/flanders.jpg
    /__/ / .htaccess
    /__/ / accesso.php
    /__/upload/
    /__/font/
    file.php
    file1.php
    file2.php

    Il file non è corrotto perchè quando tolgo la protezione del file .htaccess posso vedere l'immagine .jpg scrivendo l'indirizzo nella barra dell' url e poi ho provato anche con altri file .jpg.
    Non capisco cosa non funziona

    Scusa se te lo richiedo ma nel file accesso.php non inserisci nulla che prenda dei riferimenti di sessione oltre a quelli che passi dalla variabile sessione?
    Fai per caso qualche header nelle pagine precedenti? Perchè volevo capire come fa il server a leggere il file accesso.php se prima non lo processo da qualche parte.
    Ultima modifica di maxprova1 : 04-11-2012 alle ore 12.57.45

  18. #18
    Guest

    Predefinito

    Alla fine sono riuscito ad autorizzare ed a scaricare o aprire il file correttamente utilizzanodo il codice che ho trovato a questo link:
    http://www.miniscript.it/articoli/71...dei_files.html

    Mentre invece aprire l'immagine dall'url quando faccio l'autorizzazione non sono ancora riuscito.
    Ciao

  19. #19
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,791

    Predefinito

    Citazione Originalmente inviato da maxprova1 Visualizza messaggio
    Scusa se te lo richiedo ma nel file accesso.php non inserisci nulla che prenda dei riferimenti di sessione oltre a quelli che passi dalla variabile sessione?
    Fai per caso qualche header nelle pagine precedenti? Perchè volevo capire come fa il server a leggere il file accesso.php se prima non lo processo da qualche parte.
    Non ho fatto nulla, anche perché nella prova non ho usato le sessioni, ma semplicemente $_GET, come ho scritto su.

    L'utilizzo delle sessioni è semplice: in ogni pagina che si utilizzano, occorre inserire la session_start() prima di qualsiasi output html. Ecco perché per 2 volte ti ho chiesto se prima c'era altro codice, ma ancora non mi hai risposto.

    Il PHP viene compilato a runtime, quindi non ho capito cosa devi processare prima.

    Ciao!

  20. #20
    Guest

    Predefinito

    Ecco perché per 2 volte ti ho chiesto se prima c'era altro codice, ma ancora non mi hai risposto.
    Nel file accesso.php c'è solamente il codice che ti ho postato ed è quello che tu hai provato e che ti funziona.

    Quando faccio l'autenticazione faccio session_start(); e poi assegno alla sessione il valore "amministratore", qua sotto c'è il codice:
    Codice PHP:
    session_start();
    if (isset(
    $_POST['user1']) && isset($_POST['pass1']) )// se esiste e non è nulla
    {

    $user=$_POST['user1'];
    $password=$_POST['pass1'];
    if(
    $user == $user_ok && $password == $password_ok)
    {
    $_SESSION['nome_utente'] = "massimo";
    $_SESSION['tipo_utente'] = "amministratore";
    header("location: operazioni.php");
    }
    elseif(
    $_POST['user1'] == "" && $_POST['pass1']=="")
    {
    echo
    "Password e user vuote, Inserire";
    echo
    "<br>";
    echo
    "sarai reindirizzato al login tra 5 secondi<br>";
    echo
    "clicca qui per non aspettare <a href=\"login_azienda.php\">Torna indietro</a>";
    header('refresh:5;url=login_azienda.php');// reindirizza alla pagina voluta dopo un certo tempo
    }

    else
    {
    echo
    "Lo user e la password non coincidono. <a href=\"login_azienda.php\" >Torna indietro</a>";
    }
    }
    Quello che ti volevo dire e che quando ho utilizzato il codice del link:
    http://www.miniscript.it/articoli/71...dei_files.html
    crea un bottone con il quale avvii il codice che verifica se hai fatto l'autenticazione o meno, il login, se si ti rende il file disponibile, se no il file non può essere raggiunto, e comunque passa per un processo di verifica. Il codice l'ho messo all'interno della directory principale del server del mio sito.
    Ultima modifica di maxprova1 : 04-11-2012 alle ore 20.07.52

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •