Visualizzazione risultati 1 fino 3 di 3

Discussione: Incopatibilità codice php/msql con I.E.

  1. #1
    Guest

    Predefinito Incopatibilità codice php/msql con I.E.

    Un amico mi ha fatto notare una cosa, abbastanza particolare... e rognosa a cui, non sono ancora riuscito a trovare una soluzione.

    Il problema
    Ho installato nel suo sito un piccolo script che permette da browser di caricare nel suo spazio web un immagine e di impostarla come logo. Il problema è che con Firefox funziona benissimo, infatti riesco a caricare sia Gif che Jpeg/Jpg... con I.E. no, si riescono a caricare solo file GIF.

    Codice
    Codice PHP:
    <?php
    include("config.inc.php");

    // se è stato inviato il file...
    if(isset($_POST['invia']))
    {
    // se ci sono stati problemi nell'upload del file
    if(!isset($_FILES['file_inviato']) OR $_FILES['file_inviato']['error'] != UPLOAD_ERR_OK)
    mostra_form("errore nell'invio del file. Riprova");

    // connessione e selezione del database
    mysql_connect($db_host, $db_user, $db_password)
    or die(
    'Connessione non riuscita: ' . mysql_error());

    if(!
    mysql_select_db($db_name))
    die(
    'Selezione database fallita!');

    // recupero alcune informazioni sul file inviato
    $nome_file_temporaneo = $_FILES['file_inviato']['tmp_name'];
    $nome_file_vero = $_FILES['file_inviato']['name'];
    $tipo_file = $_FILES['file_inviato']['type'];

    // leggo il contenuto del file
    $dati_file = file_get_contents($nome_file_temporaneo);

    if((
    $tipo_file == 'image/gif') or ($tipo_file == 'image/jpeg') or ($tipo_file == 'image/jpg')){

    // preparo il contenuto del file per la query
    $dati_file = addslashes($dati_file);

    // query per inserire il file nel DB
    $query = "UPDATE tabella_files SET
    id_file = '1',
    nome_file = '
    $nome_file_vero',
    tipo_file = '
    $tipo_file',
    dati_file = '
    $dati_file'";

    mysql_query($query)
    OR die(
    'Query non valida: ' . mysql_error());

    // mostro nuovamente il form ed un messaggio di successo
    mostra_form("Memorizzazione del file <b>$nome_file_vero</b> nel database eseguita correttamente.");
    }
    //chiudo controllo sul tipo di file inviato
    else { echo "Tipo file non supportato"; }
    }
    else
    {
    mostra_form();
    }

    /**
    * Mostra il form per l'upload del file
    *
    */
    function mostra_form($messaggio = '')
    {
    ?><html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Carica file nel database</title>
    </head>
    <body>
    <p align="center"><?php echo $messaggio?> <br> Seleziona un file da memorizzare nel database: </p>
    <form name="form1" enctype="multipart/form-data" method="post" action="">
    <p align="center">
    <input type="file" name="file_inviato" size="20">
    </p>
    <p align="center">
    <input type="submit" name="invia" value="Invia file">
    </p>
    </form>
    </body>
    </html>
    <?php
    exit();
    }
    ?>
    Qualcono sa dirmi da cosa puà dipendere?

  2. #2
    ivenuti non è connesso Neofita
    Data registrazione
    05-04-2003
    Messaggi
    18

    Predefinito

    prova a stampare il valore di $tipo_file .
    Forse la sua valorizzazione è dipendente dal browser?
    Fammi sapere ;)

  3. #3
    Guest

    Predefinito

    Firefox giustamente lo prende come "image/jpeg";
    I.E. come "image/pjpeg"

    Ora provo ad aggiungere la condizione ($tipo_file == 'image/pjpeg') e vedo cosa succede.

    [EDIT]
    Sembra funzionare, anche se è una "zozzata"...
    [/EDIT]

    Ho unito i due post consecutivi che hai scritto.
    Utilizza il pulsante "EDITA", rendiamo più pulito il forum

    Ciao!
    Ultima modifica di radioradianti : 07-11-2005 alle ore 12.39.36

Regole di scrittura

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