Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    problema caricamento immagine

    ciao a tutti, ho un problema a caricare una foto nel db, tramite un form. Vi posto il codice per l'upload:
    codice:
    $file_new_name = ''; 
    $file_new_path = '';
    if (isset($_FILES) && is_uploaded_file($_FILES['miofile']['tmp_name'])){//se c'è un file da caricare...lo faccio!
    
    // http://forum.html.it/forum/showthre...threadid=694523 
    
        $file_temp= $_FILES['miofile']['tmp_name']; 
    
        $file_new_name= time().'_'.$_FILES['miofile']['name']; //aggiungo un numero all'inizio 
        $file_new_path = $cartella .  $file_new_name;
    	        
        if($_FILES["miofile"]["type"] == "image/gif" || $_FILES["miofile"]["type"] == "image/jpg" || $_FILES["miofile"]["type"] == "image/png") { 
        // ESEGUO L'UPLOAD CONTROLLANDO L'ESITO 
        if (move_uploaded_file($file_temp, $file_new_path)) 
              echo "File caricato correttamente"; 
           else 
              echo "Si sono verificati dei problemi durante l'Upload. Ti preghiamo di segnalarci il problema, <a href=http://www.pm25.it/contatti.php>clicca qui.</a>"; 
    
       } else //nn ha una estensione valida 
           die("ATTENZIONE. Puoi caricare solamente file con la seguenti estenzioni: .jpg .png .gif"); 
    }
    quando clicca sul pulsante per inviare il form, mi esce quest'errore:
    codice:
    Warning: move_uploaded_file(/images/1182892862_baby3.gif) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/mhd-01/www.pm25.it/htdocs/register2.php on line 77
    
    Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpi6e78j' to '/images/1182892862_baby3.gif' in /home/mhd-01/www.pm25.it/htdocs/register2.php on line 77
    Si sono verificati dei problemi durante l'Upload. Ti preghiamo di segnalarci il problema, clicca qui.
    come mai?

  2. #2
    Verifica che la cartella di destinazione del file abbia i permessi CHMOD a 777 e che esista la cartella temporanea.
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

  3. #3
    la cartella images esiste, e ha pure i permessi 777, ma la cartella temporanea non so. Ieri sera mi funzionava lo script, poi avro' modificato qualcosa. (forse la parte in basso dove invia la mail per autenticare l'account.
    ti posto il codice copleto:
    [code]
    <?
    $dbhost = "localhost";
    $dbusername = "root";
    $dbuserpass = "";
    $dbname = "iscrizione";

    $cartella = "/images/"; //cartella in cui salvare le foto, controllare i permessi di scrittura!

    function ControlloEmail($email){
    $result = eregi("^[_a-z0-9+-]+(.[_a-z0-9+-]+)*@[a-z0-9-]+(.[a-z0-9-]+)+$",$email);
    return $result;
    }


    mysql_connect ($dbhost, $dbusername, $dbuserpass);
    if (!mysql_select_db($dbname)) die(mysql_error());


    // Define post fields into simple variables
    $first_name = $_POST['first_name'];
    $cognome = $_POST['cognome'];
    $username = $_POST['username'];
    $email = $_POST['email'];
    $indirizzo = $_POST['indirizzo'];
    $citta = $_POST['citta'];
    $stato = $_POST['stato'];
    $giorno = $_POST['giorno'];
    $mese = $_POST['mese'];
    $anno = $_POST['anno'];
    $peso = $_POST['peso'];
    $altezza = $_POST['altezza'];
    $capelli = $_POST['capelli'];
    $occhi = $_POST['occhi'];
    $sesso = $_POST['sesso'];

    /* Lets strip some slashes in case the user entered
    any escaped characters. */

    $first_name = stripslashes($first_name);
    $cognome = stripslashes($cognome);
    $username = stripslashes($username);
    $email = stripslashes($email);
    $indirizzo = stripslashes($indirizzo);
    $citta = stripslashes($citta);
    $stato = stripslashes($stato);
    $giorno = stripslashes($giorno);
    $mese = stripslashes($mese);
    $anno = stripslashes($anno);
    $peso = stripslashes($peso);
    $altezza = stripslashes($altezza);
    $capelli = stripslashes($capelli);
    $occhi = stripslashes($occhi);
    $sesso = stripslashes($sesso);


    $file_new_name = '';
    $file_new_path = '';

    if(ControlloEmail($email))
    echo 'Indirizzo email corretto... si procederà con la registrazione nel db';
    else {
    echo 'Indirizzo email non valido!';
    exit(0);
    }

    if (isset($_FILES) && is_uploaded_file($_FILES['miofile']['tmp_name'])){//se c'è un file da caricare...lo faccio!

    // http://forum.html.it/forum/showthre...threadid=694523

    $file_temp= $_FILES['miofile']['tmp_name'];

    $file_new_name= time().'_'.$_FILES['miofile']['name']; //aggiungo un numero all'inizio
    $file_new_path = $cartella . $file_new_name;

    if($_FILES["miofile"]["type"] == "image/gif" || $_FILES["miofile"]["type"] == "image/jpg" || $_FILES["miofile"]["type"] == "image/png") {
    // ESEGUO L'UPLOAD CONTROLLANDO L'ESITO
    if (move_uploaded_file($file_temp, $file_new_path))
    echo "File caricato correttamente";
    else
    echo "Si sono verificati dei problemi durante l'Upload. Ti preghiamo di segnalarci il problema, <a href=http://www.pm25.it/contatti.php>clicca qui.</a>";

    } else //nn ha una estensione valida
    die("ATTENZIONE. Puoi caricare solamente file con la seguenti estenzioni: .jpg .png .gif");
    }

    /* Do some error checking on the form posted fields */

    if((!$first_name) || (!$cognome) || (!$username) || (!$email) || (!$indirizzo) || (!$citta) || (!$stato) || (!$giorno) || (!$mese) || (!$anno) || (!$peso) || (!$altezza) || (!$capelli) || (!$occhi) || (!$sesso)){
    echo 'I campi non sono corretti!
    ';

    include 'iscrizione.php'; // Show the form again!
    /* End the error checking and if everything is ok, we'll move on to
    creating the user account */
    exit(); // if the error checking has failed, we'll exit the script!
    }

    /* Let's do some checking and ensure that the user's email address or username
    does not exist in the database */

    $sql_email_check = mysql_query("SELECT email FROM utenti WHERE email='$email'");
    $sql_username_check = mysql_query("SELECT username FROM utenti WHERE utenti='$username'");

    $email_check = @mysql_num_rows($sql_email_check);
    $username_check = @mysql_num_rows($sql_username_check);

    if(($email_check > 0) || ($username_check > 0)){
    echo "Errore nella compilazione:
    ";
    if($email_check > 0){
    echo "[b]Quest'email è stata già registrata da un'altro utente.!
    ";
    unset($email);
    }
    if($username_check > 0){
    echo "Username già in uso da un'altro utente!
    ";
    unset($username);
    }
    include 'iscrizione.php'; // Show the form again!
    exit(); // exit the script so that we do not create this account!
    }

    /* Everything has passed both error checks that we have done.
    It's time to create the account! */

    /* Random Password generator.
    http://www.phpfreaks.com/quickcode/R...nerator/56.php

    We'll generate a random password for the
    user and encrypt it, email it and then enter it into the db.
    */

    function makeRandomPassword() {
    $salt = "abchefghjkmnpqrstuvwxyz0123456789";
    srand((double)microtime()*1000000);
    $i = 0;
    while ($i <= 7) {
    $num = rand() % 33;
    $tmp = substr($salt, $num, 1);
    $pass = $pass . $tmp;
    $i++;
    }
    return $pass;
    }

    $random_password = makeRandomPassword();

    $db_password = md5($random_password);



    $query = "SELECT username FROM utenti WHERE username = '" . $username ."' OR email = '" . $email . "'";
    $rs = mysql_query($query);
    if(mysql_num_rows($rs)>0) {
    echo "esiste già uno unsername o l'indirizzo email inserito";
    } else {

    // Enter info into the Database.
    $info2 = htmlspecialchars($info);
    $sql = mysql_query("INSERT INTO utenti (first_name, cognome, username, password, email, indirizzo, citta, stato, giorno, mese, anno, peso, altezza, capelli, occhi, sesso, nomei, signup_date, decrypted_password)
    VALUES('$first_name', '$cognome', '$username', '$db_password','$email', '$indirizzo', '$citta', '$stato', '$giorno', '$mese', '$anno', '$peso', '$altezza', '$capelli', '$occhi', '$sesso', '$file_new_name', now(), '$random_password')") or die (mysql_error());
    }
    if(!$sql){
    echo 'Errore nel creare il tuo account. Contatta il webmaster.';
    } else {
    $userid = mysql_insert_id();
    $activatepath = "activate.php?id=$userid&code=$db_password";
    // Let's mail the user!
    $subject = "Messaggio da: $sitename";
    $message = "Caro $first_name $cognome,
    Sei stato appena registrato su $sitepath !

    Per attivare l'account, clicca qui: $sitepath$activatepath

    Dopo l'attivazione, inserisci questi dati:
    Username: $username
    Password: $random_password
    Conserva Username e Password per un login futuro.

    Grazie!
    Webmaster, $sitename



    Questa è un email automatica, non rispondere a quest'email!";

    mail($email, $subject, $message, "From: $sitename <$adminemail>\nX-Mailer: PHP/" . phpversion());
    echo 'Le informazioni per il tuo account ti sono stati inviati nella tua casella email! Controlla la tua email!';
    }

    ?>

  4. #4
    ragazzi mi aiutate a risolvere questo problema, per favore?

  5. #5
    Guarda fragolina-mx,
    ti do un consiglio d'oro: quando devi esporre un quesito, prova a semplificarlo il più possibile.
    Questo vuol dire che come minimo tu ci abbia già lavorato su qualche ora per cercare di capire l'origine del problema, e che lo abbia isolato.

    Il tuo script di n righe conterrà centinaia di istruzioni e funzioni, delle quali molto probabilmente solo una non fuonziona come vorresti.
    Quindi puoi capire bene che una cosa molto importante nel debug è isolare il problema:
    prendi il tuo script ed elimina tutto ciò che non fa brodo e scoraggia chi legge il post.

    Immagino che nessuno voglia perdere tempo a leggere righe e righe di codice altrui quando già deve lavorare su un sacco di quelle proprie.
    (D'altronde come nella vita reale, il sapersi presentare nel modo giusto aiuta molto).

    Ti faccio un esempio, avevo un problema grandissimo con una tabella di quasi 30 campi e più di 240 000 records, da cui dovevo tirar fuori un set di valori con una query che conteneva delle formule complesse: se avessi postato tutto il necessario per esporre quel problema, 3000 righe di codice postato non sarebbero bastate.
    Invece ho prima analizzato il mio problema, isolato l'origine e ricreato una situazione simile in piccolo, con una tabella molto elementare. Per chi mi ha risposto (tanto di cappello al bravo piero.mac) è stato subito facile individuare il problema:

    http://forum.html.it/forum/showthrea...ostid=10711375

    Questo è solo un consiglio amichevole
    Prova e vediamo cosa sapremo dirti.

    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

  6. #6
    ciao emanuele e grazie, ma a me l'errore persiste ancora, non riesco a capire come mai. la cartella i permessi CHMOD 777 li ha, ma quando invio il form mi registra l'utente, e vedo nel db che ci sta anche il nome dell'immagine, ma sulla pagina mi da l'errore. Non riesco a capire dove sta questo sbaglio?!

    cmq il pezzo di codice per l'invio della foto e questa:
    codice:
    $cartella = "/images/";
    
    if (isset($_FILES) && is_uploaded_file($_FILES['miofile']['tmp_name'])){//se c'è un file da caricare...lo faccio!
    
        $file_temp= $_FILES['miofile']['tmp_name']; 
    
        $file_new_name= time().'_'.$_FILES['miofile']['name']; //aggiungo un numero all'inizio 
        $file_new_path = $cartella .  $file_new_name;
    	        
        if($_FILES["miofile"]["type"] == "image/gif" || $_FILES["miofile"]["type"] == "image/jpg" || $_FILES["miofile"]["type"] == "image/png") { 
        // ESEGUO L'UPLOAD CONTROLLANDO L'ESITO 
        if (move_uploaded_file($file_temp, $file_new_path)) 
              echo "File caricato correttamente"; 
           else 
              echo "Si sono verificati dei problemi durante l'Upload. Ti preghiamo di segnalarci il problema, <a href=http://www.pm25.it/contatti.php>clicca qui.</a>"; 
    
       } else //nn ha una estensione valida 
           die("ATTENZIONE. Puoi caricare solamente file con la seguenti estenzioni: .jpg .png .gif"); 
    }
    l'errore q questo:
    codice:
    Warning: move_uploaded_file(/images/1182955226_WF000452.gif) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/mhd-01/www.pm25.it/htdocs/register2.php on line 77
    
    Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpVIvHVX' to '/images/1182955226_WF000452.gif' in /home/mhd-01/www.pm25.it/htdocs/register2.php on line 77
    Si sono verificati dei problemi durante l'Upload. Ti preghiamo di segnalarci il problema, clicca qui.
    la riga 77 e questa:
    codice:
    echo "File caricato correttamente";
    ho provato anche con ' ma niente, l'errore continua a rimanere, vi prego datemi una mano, grazie

  7. #7
    Originariamente inviato da fragolina-mx
    l'errore q questo:
    codice:
    Warning: move_uploaded_file(/images/1182955226_WF000452.gif) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/mhd-01/www.pm25.it/htdocs/register2.php on line 77
    
    Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpVIvHVX' to '/images/1182955226_WF000452.gif' in /home/mhd-01/www.pm25.it/htdocs/register2.php on line 77
    Si sono verificati dei problemi durante l'Upload. Ti preghiamo di segnalarci il problema, clicca qui.
    la riga 77 e questa:
    codice:
    echo "File caricato correttamente";
    ho provato anche con ' ma niente, l'errore continua a rimanere, vi prego datemi una mano, grazie
    Allora al 99% l'errore è nella riga 76 o in quella precedente.
    Posta dalla 70 alla 77 (indica il numero della prima o dell'ultima).

    [Che editor usi?
    Hai l'auto-wrapping disabilitato?]
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

  8. #8
    codice:
    70 - $file_temp= $_FILES['miofile']['tmp_name']; 
    
        $file_new_name= time().'_'.$_FILES['miofile']['name']; //aggiungo un numero all'inizio 
        $file_new_path = $cartella .  $file_new_name;
    	        
        if($_FILES["miofile"]["type"] == "image/gif" || $_FILES["miofile"]["type"] == "image/jpg" || $_FILES["miofile"]["type"] == "image/png") { 
        // ESEGUO L'UPLOAD CONTROLLANDO L'ESITO 
    77 -    if (move_uploaded_file($file_temp, $file_new_path))
    come editor uso notepadd++ oppure dreamweaver
    che cosa e' l'auto-wrapping?

  9. #9
    L'auto-wrapping è la funzione di un editor di testo che manda a capo una riga più lunga del viewport (la larghezza massima dell'area utile in cui viene visualizzato il testo).

    Se l'auto-wrap è attivo, di norma le interruzioni di riga utili alla visualizzazione non vengono mai salvate nel file alla chiusura, ma in alcuni editor un po' cessi succede che le interruzioni di riga dell'auto-wrapping vengano salvate, e il codice subisce mutazioni genetiche che creano non poche seccature, specialmente per linguaggi (diversi da PHP) in cui l'interruzione di riga nello script viene interpretata come fine di un comando (vedi JavaScript).
    Comunque Notepad++ non è di questi (lo uso anch'io).

    Allora, se l'errore è quello, vuol dire che PHP non riesce ad aprire il file $file_temp e quindi neanche può spostarlo.

    Per verificare se la variabile $temp_file individua effettivamente un flusso tra lo script e la risorsa sul disco del server, scrivi:
    codice:
    if (!is_file($temp_file)) { echo "
    
    $temp_file non individua correttamente una risorsa.</p>\n"; }
    else { echo "
    
    $temp_file individua correttamente una risorsa!</p>\n"; }
    prima di:
    codice:
    if (move_uploaded_file($file_temp, $file_new_path))
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

  10. #10
    ciao emanuele, ho messo il pezzo di codice e mi dice
    codice:
    non individua correttamente una risorsa
    cmq adesso quell'errore non me lo da piu', perche' ho tolto il / che stava davanti
    codice:
    $cartella = "images/";
    adesso sto pensando se non sia il problema la pagina dove estrae la foto dal db
    codice:
     if (!empty($nomei)) 
         echo 'Immagine  [img]/images/'.$nomei.'[/img]';
    pero' a me mi sembra buono, no?

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.