Visualizzazione risultati 1 fino 10 di 10

Discussione: Salva con nome

  1. #1
    Guest

    Predefinito Salva con nome

    Salve avrei bisogno di un aiuto. Ho bisogno che i miei utenti scarichino la mia pagina html.
    Però mi piacerebbe semplificare questa operazione. Cioè invece di dir loro clicca con il tasto destro e vai su salva con nome... vorrei una cosa del genere:

    scarica questa pagina html cliccando QUI.

    Cliccando dunque si aprirà la finestrina salva con nome...

    So che questa operazione è semplice per le estensioni href, zip, txt ecc.. dove basta mettere un <a href=.. però con i file html non so proprio come fare. Spero sia chiaro il mio bisogno. Grazie mille.

    PS. ho inserito questa domanda sia in questo forum PHP, MySql e Apache (.htaccess) che nel forum JavaScript e altri linguaggi di scripting non sapendo il tipo di soluzione. Spero non sia un problema.
    Ultima modifica di animeNOD : 11-06-2012 alle ore 09.25.06

  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

    Devi puntare un link ad uno script PHP (che magari prende il nome del file da scaricare come parametro) fatto più o meno così:

    Codice PHP:
    <?php
    $filename
    = 'exempio.html';
    header("Content-disposition: attachment; filename=$filename");
    header('Content-type: text/html');
    readfile($filename);
    ?>
    Ricordati di fare gli opportuni controlli per evitare che chiunque possa scaricare un file qualsiasi del tuo sito.
    Ultima modifica di saitfainder : 11-06-2012 alle ore 14.28.45


    «È 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

    Innanzitutto grazie della risposta...
    cmq ricevo questo errore:

    Fatal error: Call to undefined function headfile() in /membri/animenod/php/ciao.php on line 5

    Cosa posso aver sbagliato? Premetto che non me ne intendo di php.
    Grazie ancora.

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

    Predefinito

    Un errore di battitura, era readfile.


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


  5. #5
    Guest

    Predefinito

    Adesso mi ha creato un file di nome esempio.html ma senza contenuti... da cosa può dipendere questa volta?

    EDIT:

    RISOLTO ;)
    dovevo cambiare il nome exempio.html con il nome del file da salvare...
    Nasce un altro mio dubbio dunque.
    Se io voglio che in 10 pagine html ci sia la scritta:

    scarica questa pagina html cliccando QUI.

    allora devo creare 10 script PHP dove in ognuno dei quali ci sarà il $filename della pagina? Non c'è un modo che ogni pagina possa essere salvata puntando allo stesso script PHP?
    Grazie 1000 comunque ;)
    Ultima modifica di alemoppo : 11-06-2012 alle ore 16.26.17 Motivo: Non fare post consecutivi: usa il tasto "Edita" per editare i messaggi.

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

    Predefinito

    Puoi cambiare la variabile "$filename", ad esempio con un parametro get, dove indichi la pagina da poter scaricare; ad esempio:

    download.php
    Codice PHP:
    <?php
    if(!isset($_GET['pagina']))
    die(
    'Nulla da scaricare');
    $filename = $_GET['pagina'].'.html';
    header("Content-disposition: attachment; filename=$filename");
    header('Content-type: text/html');
    readfile($filename);
    ?>
    Quindi potresti farli con una cosa del tipo:

    pagina1.html
    Codice HTML:
    per scaricare il sorgente di questa pagina, premere <a href="download.php?pagina=pagina1">qui</a>
    pagina2.html
    Codice HTML:
    per scaricare il sorgente di questa pagina, premere <a href="download.php?pagina=pagina2">qui</a>
    ...Ovviamente i nomi li ho inventati.

    Comunque, riquoto saitfainder:
    Citazione Originalmente inviato da saitfainder
    Ricordati di fare gli opportuni controlli per evitare che chiunque possa scaricare un file qualsiasi del tuo sito
    ..anche se ho forzatol'estensione '.html', un bel controllo è sempre meglio farlo.
    Tra l'altro, per migliorare ulteriormente lo script, prima di procedere con il download, potresti verificare che il file esiste realmente, con la file_exists().

    Ciao!
    Ultima modifica di alemoppo : 11-06-2012 alle ore 16.26.56

  7. #7
    Guest

    Predefinito

    Alemoppo grazie 1000 !
    Per quanto riguarda il controllo, beh c'è da dire che questo script purtroppo fa salvare tutta la sorgente e quindi non vorrei che mi copiassero il file html. A me sarebbe piaciuto avere un risultato proprio come il salva con nome.. fatto con il tasto destro, dove il file html scaricato, se aperto con un editor di testo, mostra un contenuto indecifrabile. Comunque va bene anche così.
    GRAZIE ANCORAA

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

    Predefinito

    Non ho capito il fatto del tasto destro... Comunque, è impossibile rendere indecifrabile il codice html, perché il browser che lo apre deve poter, appunto, decifrarlo. E se ci riesce il browser, ci riesce anche una persona.
    Al massimo, potresti convertire tutto con entità html (ad esempio qui), ma per un utente medio, anche questa "protezione" è facilmente aggirabile.

    Infine, potresti prelevare il sorgente con una richiesta ajax, ma è molto macchinoso, e funzionerebbe soltanto se l'utente supporta/ha attivato javascript. (anche questo è facilmente aggirabile da un utente medio).

    Ciao!
    Ultima modifica di alemoppo : 12-06-2012 alle ore 13.30.00

  9. #9
    Guest

    Predefinito

    Alemoppo quello che volevo dire io (sicuramente in termini sbagliati) è questo:
    creo un file html così: inserisco con blocco note dei codici e poi salvo con estensione html
    carico tale file html sul sito
    dal sito faccio tasto destro, salva con nome.. e risalvo questa pagina sul desktop
    se apro con blocco note il file appena salvato i codici non sono quelli che ho scritto io, ma sono diversi (per me indecifrabili).
    Comunque volevo dirti che sei gentilissimo a rispondermi ;) buon lavoro

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

    Predefinito

    Ah, adesso ho capito cosa intendi con "salva con nome".
    Quel codice non è indecifrabile: è il tuo html reinterpretato dal browser.
    Non so bene come funziona al cosa, però lato server penso non sia possibile ricavare quel sorgente, proprio perché è un lavoro del browser.

    Ciao!

Regole di scrittura

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