Visualizzazione risultati 1 fino 11 di 11

Discussione: [PHP] - Header("Location: .... [mod]

  1. #1
    Guest

    Predefinito [PHP] - Header("Location: .... [mod]

    Ciao,

    ho fatto uno script PHP che tramite un id individua il link e tramite l'header location fa partire il download.
    Pero succede questo: se apro lo script in una pagina del browser tutto funge bene, ma se questo script e' linkato da una pagina di un altro sito, nonostante il redirect al download viene fatto ho letto le risposte del server, mi compare la pagina di Altervista.
    Ho trovato una soluzione temporanea con lo scrivere un jscript con location.href....., ma non va bene per il semplice motivo che al browser viene inviato una pagina html. Dovrei per altri motivi, downloads manger, non interpretare tags html.
    Una mano? :)
    Ultima modifica di SoftBits : 10-01-2006 alle ore 07.04.17

  2. #2
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Ma scusa perché usare l'header Location?..
    aspe' prima di tutto fammi sapere se ho intuito bene:
    tu linki su un altro sito -diciamo- un url tipo "http://softbits.altervista.org/scripts/scarica.php?id=1010"
    lo script associa al'id 1010 un path per far scaricare il file.
    A questo punto invece di fare il redirect con location a quel file perché non apri il contenuto del file tramite script e fai sì che LUI STESSO restituisca in output i bytes? usando anche gli appositi header (cerca su google: "content disposition attachment") puoi anche dichiarare il NOME del file che apparirà all'utente.
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  3. #3
    Guest

    Smile

    Citazione Originalmente inviato da heracleum
    Ma scusa perché usare l'header Location?..
    aspe' prima di tutto fammi sapere se ho intuito bene:
    tu linki su un altro sito -diciamo- un url tipo "http://softbits.altervista.org/scripts/scarica.php?id=1010"
    lo script associa al'id 1010 un path per far scaricare il file.
    Si giusto e cosi.

    Citazione Originalmente inviato da heracleum
    A questo punto invece di fare il redirect con location a quel file perché non apri il contenuto del file tramite script e fai sì che LUI STESSO restituisca in output i bytes? usando anche gli appositi header (cerca su google: "content disposition attachment") puoi anche dichiarare il NOME del file che apparirà all'utente.
    In verita' ho dei dubbi, non sono molto pratico, sul fatto di inviare direttamente sul canale di out il file, non che un timeout dello script, se esiste, chiude la connessione? Qualcosa del genere mi capitava su altri spazi web, non usavo il php. :)
    Cmq provo poi ti faccio sapere.

    Grazie

  4. #4
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Beh certo se fai scaricare 100MB di files potrebbe esserci qualche problemino..
    ma non mi sembra una "sana pratica" -anche per la banda di traffico- far girare roba di tali entità su AV.

    Comunque se non ricordo male su AV il max_execution_time per gli script è di 15 secondi.
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  5. #5
    Guest

    Predefinito

    No... sono files al max di qualche mega.
    Il discorso che sono programmi linkati un po ovunque per la rete e quindi vorrei rendere la cosa accessibile a tutti.

  6. #6
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Guarda personalmente, per come tengo a bada io la banda,
    il termine "qualche mega" non mi sembra il più appropriato..
    E' come dire, "scusi lei uccide?": "sì, ogni tanto ammazzo qualcuno, ma niente di che"
    Se vuoi trovarti il traffico esaurito alla prima settimana questa è la strada migliore.

    Aspetta.. ora mi sorge un dubbio rileggendo questo:
    "sono programmi linkati un po ovunque per la rete"

    la frase è un po' ambigua, non capisco se "linkati un po' ovunque" significa che il redirect al file era ad un URL remoto, al di fuori del tuo spazio av (cosa impossibile per la mia soluzione visto che puoi fare fopen solo sui tuoi files) oppure avevo capito bene e cioè "un po' ovunque" tu metterai il link al TUO script qui su av.
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  7. #7
    Guest

    Predefinito

    beeh, si. Lo script php, a vero anche il file vero e proprio, vengono linkati anche da altri siti. Dici che, se non erro mi capito con il sito iDeaS, e' un problema di visibilita' del file? C'e' una dir apposta? Qual'e'?

  8. #8
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    No penso che uno script php possa essere eseguito ovunque da qualsiasi sito...
    Niente il mio dubbio è che tentassi di aprire URL remoti ma non è, niente, cancella

    Quindi riconfermo il mio consiglio dell'altro post:
    occhio alla banda di traffico o ti ritrovi il sito disattivato perché hai superato i 10GB dopo meno di una settimana. Se poi non hai guadagni in AC allora è impossibile sostenerlo, soprattutto se il link viene "diffuso" per il web...
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  9. #9
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    La cartella per far vedere le immagini all'esterno è _altervista_ht che devi creare nella root del tuo spazio.

    Nel tuo script in PHP prova a mettere prima del Location un Content-type.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  10. #10
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Citazione Originalmente inviato da funcool
    La cartella per far vedere le immagini all'esterno è _altervista_ht che devi creare nella root del tuo spazio.

    Nel tuo script in PHP prova a mettere prima del Location un Content-type.
    nel dubbio, se hai qualche conoscenza -che a noi sfugge- riguardo un nesso tra la cartella antileech _altervista_ht e l'esecuzione di script.php dall'esterno, sarei curioso di sentirla (in caso negativo rimuovo).

    Ho già consigliato di cercare "php content disposition attachment" su google che al primo risultato mette http://it.php.net/header dove cercando "disposition" nella pag spiega il tutto. Visto il contesto di download direi che è più rilevante consigliare il:
    header("Content-Disposition: attachment; filename=nomefile.est");
    non pensi? che ovviamente va a braccetto col content-type, è scontato.

    "Prova a..." lo sento troppo spesso, "prova così prova cosà"
    come diceva Yoda:
    "non c'è provare... fare.. o non fare.."
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  11. #11
    Guest

    Predefinito

    Attualmente lo script php risponde con questo header :

    header('Location: ' . $file);
    header('Content-Type: ' . $mime_type);

    Ma da questo http://www.softpedia.com/progDownloa...oad-31563.html non parte nulla, anche utilizzando la cartella _altervista_ht.
    Cmq se da un nuovo browser incollo il link che ottengo copiandolo da softpedia parte.
    Ultima modifica di SoftBits : 11-01-2006 alle ore 12.10.32

Regole di scrittura

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