Visualizzazione risultati 1 fino 5 di 5

Discussione: [PHP] Problema Settaggio Headers [risolto]

  1. #1
    Guest

    Predefinito [PHP] Problema Settaggio Headers [risolto]

    Salve a tutti!
    Ho creato uno script per forzare il download di un file, senza utilizzare dei reindirizzamenti, cioè settando correttamente gli headers e usando readfile, in pratica:

    Codice PHP:
    <?php
    $db
    = mysql_connect("localhost", "nokiagames", null);
    mysql_select_db("my_nokiagames", $db);

    $id = isset($_GET["id"]) && is_numeric($_GET["id"]) ? mysql_real_escape_string($_GET["id"]) : null;
    $tot = mysql_num_rows(mysql_query("SELECT id FROM clicks", $db));

    if(!
    preg_match("/[0-9]/", $id) || empty($id)) {
    exit(
    "Errore, il parametro id pu&ograve; contenere soltanto numeri.");
    }

    if(
    $id > $tot) {
    exit(include(
    "not_found.php"));
    }

    $q = mysql_query("SELECT id, link, click, titolo FROM clicks WHERE id = '{$id}' ORDER BY id LIMIT 1", $db);
    $r = mysql_fetch_array($q, MYSQL_ASSOC);

    $bytes = filesize("/membri/nokiagames{$r["link"]}");
    $info = pathinfo("/membri/nokiagames/{$r["link"]}", PATHINFO_BASENAME);
    header("Content-Type: application/java-archive");
    header("Content-disposition: attachment; filename=\"{$info}\"");
    header("Content-length: {$bytes}");
    readfile("/membri/nokiagames{$r["link"]}");

    mysql_close($db);
    ?>
    Il download avviene, ma viene salvato con estensione file_esecuzione_script.php.
    Questo non è quello che voglio fare!

    Non riesco a capire il problema, come dovrei fare per salvare un file in estensione jar, ad esempio: file.jar

    EDIT: risolto, il problema era che $r["titolo"] non coincideva con il nome del file, ho corretto sopra il codice
    Ultima modifica di nokiagames : 27-07-2009 alle ore 19.33.25 Motivo: Risolto!

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    nell'ordine direi di provare a cambiare:
    1. Content-disposition in Content-Disposition, che ho sempre visto con due lettere maiuscole (stranamente, si)
    2. togliere le virgolette attorno al nome del file in Content-Disposition
    3. usare
      Codice PHP:
      header("Content-type: application/download");
      invece di java-archive
    Ultima modifica di dreadnaut : 27-07-2009 alle ore 19.36.51

  3. #3
    Guest

    Predefinito

    Ok, detto fatto

    Grazie per gli accorgimenti.

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    ehm, quale dei tre ha fatto funzionare la cosa?

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da nokiagames Visualizza messaggio
    EDIT: risolto, il problema era che $r["titolo"] non coincideva con il nome del file, ho corretto sopra il codice
    In realtà ho risolto prima.

    In pratica il titolo salvato nel database non coincideva con il titolo del file esistente.

Regole di scrittura

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