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

    Problema Upload file con Internet Explorer

    Salve!

    Propongo, gentilmente, di provare a risolvere questo problema...

    Problema:

    Ho creato un modulo che permette l’invio di immagini, quindi le immagini vengono gestite con php, MySql e le librerie GD2 per creare una galleria dinamica. Ora, il tutto funziona perfettamente su browser Firefox, Safari ecc. ma non su Internet Explorer(mi stampa il messaggio di errore)

    Non riesco proprio a capire il problema(anche perché sono alle prime armi), ho cercato qualche suggerimento su internet ed alcuni utenti hanno il mio stesso problema, ma non è stata trovata alcuna soluzione.

    Questo è il codice

    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Documento senza titolo</title>
    </head>
    <body bgcolor="#ff9999">
    <center>








    <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" >
    Titolo:

    <input name="titolo" type="text" size="20">

    Autore:

    <input name="autore" type="text" size="20">

    e-mail:

    <input name="email" type="text" size="20">

    Descrizione:

    <textarea name="descrizione" cols="20" rows="4"></textarea>


    Immagine:

    <input type="file" name="imagefile">

    <button type ="submit" name="submit">Invia</button>



    </form>
    <?php
    error_reporting
    (E_ALL);
    if(isset(
    $_POST['submit'])){
      
    // faccio un po' di inclusioni...
      
    @include 'config.php';
      @require 
    'function.php';

      
    // Creo una array con i formati accettati
      
    $tipi_consentiti = array("image/gif","image/jpeg","image/png","image/jpg");

      
    // verifico che il formato del file sia tra quelli accettati
      
    if (@in_array($_FILES['imagefile']['type'], $tipi_consentiti)){ 
        
    // copio il file nella cartella delle immagini
        
    @copy ($_FILES['imagefile']['tmp_name'], $path_img $_FILES['imagefile']['name']);

        
    // recupero i dati dal form
        
    $titolo = @addslashes($_POST['titolo']);
        
    $descrizione = @addslashes($_POST['descrizione']);
        
    $nome = @addslashes($_FILES['imagefile']['name']);
        
    $path $path_img stripslashes($nome);
        
    $tipo = @addslashes($_FILES['imagefile']['type']);
                    
    $autore = @addslashes($_POST['autore']);
                    
    $email = @addslashes($_POST['email']);

        
    // creo la miniatura
        
    @makeThumb($path_img,$path,$nome,$tipo);
      
        
    // aggiorno il database
        
    $query "INSERT INTO images (Titolo,Descrizione,Nome,Tipo,Autore,Email) VALUES('$titolo','$descrizione','$nome','$tipo','$autore','$email')";
        
    $res = @mysql_query($query) or die (mysql_error());
        @
    mysql_close($cn);

        
    // Stampo a video un po' di informazioni
        
    echo "Nome: ".$_FILES['imagefile']['name']."
    "

                    echo 
    "Autore: ".$autore."
    "

        echo 
    "Dimensione: ".$_FILES['imagefile']['size']."
    "

        echo 
    "Tipo: ".$_FILES['imagefile']['type']."
    "

        echo 
    "Copia eseguita con successo."
      }else{
        
    // stampo un messaggio di errore nel caso in cui il file sia di un formato non consentito
        
    echo "Errore";
      }

    ?>

    </center>
    </body>
    </html>

  2. #2
    Ke errore ti fa visualizzare, quello che ti fa uscire la scritta Errore?

    Se si allora vuol dire che questo
    if (@in_array($_FILES['imagefile']['type'], $tipi_consentiti))
    {

    ritorna false; se è così prova a fare prima dell'if

    echo "Il tipo del file è ---> " . $_FILES['imagefile']['type'];
    exit;

    se non ti dà nulla allora vuol dire che vi sono dei problemi nell'invio del file.
    A questo punto controlla il log di Apache per vedere se ti dà delle informazioni.
    Controlla il file php.ini nella sezione dell'upload (può darsi che come cartella temporanea per i file di upload hai settato una cartella che non esiste).

  3. #3
    ciao e grazie per avermi risposto.

    Io credo sinceramente che il problema si trovi nell'action oppure nell'uso di enctype.

    La tua soluzione non l'ho provata per un semplice motivo:

    lo script è perfetto altrimenti non funzionerebbe su altri browser

  4. #4
    Ma gli altri browser li hai provati sulla stessa macchina in cui hai provato Internet Explorer?

  5. #5
    no...

    Credimi, non riesco proprio a capire qual è il problema...


    ps. Ho provato Internet Explorer su un altro computer...idem!

  6. #6
    E allora vuol dire che ci sono diverse configurazioni del php.ini sulla macchina dove tu provi Internet Explorer e sull'altre o le altre macchine dove tu hai provato gli altri browser!

  7. #7
    Ti ringrazio per l'interessamento...ma sinceramente non credo proprio che sia questo il problema.

    Sicuramente c'è qualcosa che non va (come già ti ho detto prima) con action oppure enctype che non permette a IE di interpretare correttamente lo script.

  8. #8
    Io nn penso sia questo il problema. Il tag enctype è corretto. Per action prova al limite a mettere una pagina di prova tipo prova.php

    e in prova.php metti:

    if(isset($_POST['submit'])){
    // faccio un po' di inclusioni...
    @include 'config.php';
    @require 'function.php';

    // Creo una array con i formati accettati
    $tipi_consentiti = array("image/gif","image/jpeg","image/png","image/jpg");

    // verifico che il formato del file sia tra quelli accettati
    if (@in_array($_FILES['imagefile']['type'], $tipi_consentiti)){
    // copio il file nella cartella delle immagini
    @copy ($_FILES['imagefile']['tmp_name'], $path_img . $_FILES['imagefile']['name']);

    // recupero i dati dal form
    $titolo = @addslashes($_POST['titolo']);
    $descrizione = @addslashes($_POST['descrizione']);
    $nome = @addslashes($_FILES['imagefile']['name']);
    $path = $path_img . stripslashes($nome);
    $tipo = @addslashes($_FILES['imagefile']['type']);
    $autore = @addslashes($_POST['autore']);



    ..........

  9. #9
    Ecco, questa potrebbe essere una soluzione.

    Dovrei però creare un'altra pagina prova.php ed un semplice form.html, visto che non vado più a leggere all'interno del file ("che io ho chiamato form.php) ma appunto in uno esterno.

    Forse il problema e proprio questo.

    Provo e ti faccio sapere

    Se funziona significa quindi che il problema si trova nell'action?

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.