Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Download file da Mysql attraverso PHP

    Salve a tutti,
    ho un problemino nello scaricare un file caricato su un database mysql...

    Il fatto è questo:
    Se utilizzo uno script così:
    Codice PHP:
    @mysql_connect("host""utente""password") or die("Connessione fallita !"); @mysql_select_db("database") or die("Selezione Database fallita !"); $query "SELECT File, Nome FROM download WHERE ID = '2'"$select = @mysql_query($query) or die("Query fallita !");  $result = @mysql_fetch_array($select);  $data $result["File"]; $name $result["Nome"];  // IE if(ereg("MSIE ([0-9].[0-9]{1,2})", $_SERVER["HTTP_USER_AGENT"])) {  header("Content-Type: application/octetstream"); header("Content-Disposition: inline; filename=$name"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Pragma: public");  } else {  header("Content-Type: application/octet-stream"); header("Content-Disposition: attachment; filename=$name"); header("Expires: 0"); header("Pragma: no-cache");  }  echo $data; 
    Lo script funziona perfettamente, e riesco a scaricare il file...

    Se invece tutta quella pappardella la inserisco in uno script più complesso dopo le dovute verifiche di "login" il file invece di essere "scaricato" viene visualizzato...

    Per essere più chiari: io inserisco il codice sopra scritto in un if di una query:


    Codice PHP:
    $res1 mysql_query($que1); $obj1 mysql_fetch_object($res1); if ($obj1) {
    CODICE SOPRA 
    e mi salta fuori quel problema della visualizzazione invece del download...

  2. #2
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    forse ho capito il problema....quando inserisci questo codice in tanti if, stampi qualcosa prima dell'esecuzione di quel pezzo di codice? te lo chiedo perchè, citando il manuale PHP:
    Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. It is a very common error to read code with include(), or require(), functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file.

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  3. #3
    Originariamente inviato da oronze
    forse ho capito il problema....quando inserisci questo codice in tanti if, stampi qualcosa prima dell'esecuzione di quel pezzo di codice? te lo chiedo perchè, citando il manuale PHP:
    Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. It is a very common error to read code with include(), or require(), functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file.
    Diciamo che quel frammento di codice lo inserisco dopo altre operazioni... In sequenza:

    Un "GET" dell'indirizzo HTML per controllare un ID e un Codice di verifica,
    se nel Database viene trovato un campo con quell'id e quel codice l'account viene attivato.
    Se non viene trovato viene stampato "Permesso negato".

    Lo script poi continua controllando che l'account oltre ad aver inserito codice di verifica e ID corretti sia attivato e che l'indirizzo IP di registrazione corrisponda a quello attuale (questo perchè si tratta solamente di un download, non di una registrazione vera e propria con dei futuri accessi). Se tutti i dati corrispondono viene fatto un:
    require_once del file "download" (con intestazione if(__FILE__ == $_SERVER['SCRIPT_FILENAME']) per evitare accessi esterni allo script...)

    Facendo così non funziona, se invece avvio semplicemente il file "download" senza l'intestazione il download parte perfettamente...

    Qualche consiglio?

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 © 2025 vBulletin Solutions, Inc. All rights reserved.