• User

    problemi on campo file per foto

    ciao a tutti. Spero possiate essermi di aiuto come sempre..essendo alle prime armi e autodidatta cercherò di essere più chiaro possibile.

    Nel mio spazio web ho una cartella "foto". nel db mysql un campo che si chiama "foto" all'interno del quale viene segnato il percorso per trovare la foto (quindi foto/mario.jpg).
    Fino a qui tutto chiaro spero...adesso vengono i problemi...
    ho creato una pagina per la modifica che rinvia ad un'altra. cmq all'interno della seguente pagina, non appena accedo, mi da all'interno dei campi il contenuto del database ad es tel
    <input type="text" name="tel" value="<?=$rigo['tel']?>">

    ho però un'altro campo dove dovrei modificare ad esempio la foto
    <input name="userfile" type="file" value="<?=$rigo['foto']?>">

    quando però accedo alla pagina di modifica tutti i campi text sono riempiti con quello che trova nel db...il campo file invece vuoto, con il risultato che se invio senza selezionare una foto con sfoglia, mi dà errore(ma i campi text li modifica!!!) e mi fa perdere il percorso della precedente foto magari presente nel db.
    sapreste aiutarmi a risolvere questo problemuccio????
    grazie in anticipo


  • ModSenior

    sicura di non dover fare
    <?php echo $rigo['foto']; ?>


  • User Attivo

    non sono sicuro di aver capito bene... il problema è che nella pagina in cui puoi eventualmente modificare i dati, se non selezioni una foto ti aggiorna il campo con una stringa vuota?
    se è così, prova a verificare che la stringa sia piena prima di caricarla sul DB...
    if (!empty($_FILES['nomeCampo']['name'])){
    carichi sul DB;
    }
    Al campo file a quanto so non si può attribuire un valore, perché vorrebbe dire poter interagire con il sistema dell'utente ed ottenerne informazioni sensibili...

    spero di esserti stato utile! 🙂


  • User

    grazie per aver risposto
    questo è il codice che sono riuscito ad elaborare. funziona tutto bene tranne per il problema che ti ho spiegato e mi sembra che tu mi abbia suggerìto la soluzione adatta. purtroppo per inesperienza non so adattarlo...potresti farlo tu per favore.

    <?
    $id_amico= $_REQUEST['id_amico'];
    $nome= $_REQUEST['nome'];

    $file_temp= $_FILES['userfile']['tmp_name'];
    //file temporaneo che contiene l'immagine caricata da un campo file del form nella pagina di rinvio a questa.

    $name = $_FILES['userfile']['name'];

    $percorso="foto/";
    //cartella sul server dove verrà spostata la foto
    $foto = $percorso.$name;

    if (move_uploaded_file($file_temp, $percorso . $name))
    {
    print "L'aggiornamento è stato effettuato";
    }
    else
    {
    print "Si sono verificati dei problemi durante l'Upload";
    }

    $query="UPDATE amici SET nome='".$nome."', foto='".$foto."' WHERE id_amico=".$id_amico;

    ?>


  • User Attivo

    @shira said:

    <?
    $id_amico= $_REQUEST['id_amico'];
    $nome= $_REQUEST['nome'];
    //prima verifichi che un file sia scelto
    if(!empty ($_FILES['userfile']['name'])){
    $file_temp= $_FILES['userfile']['tmp_name'];
    //file temporaneo che contiene l'immagine caricata da un campo file del form nella pagina di rinvio a questa.

    $name = $_FILES['userfile']['name'];

    $percorso="foto/";
    //cartella sul server dove verrà spostata la foto
    $foto = $percorso.$name;

    if (move_uploaded_file($file_temp, $percorso . $name))
    {
    print "L'aggiornamento è stato effettuato";
    }
    else
    {
    print "Si sono verificati dei problemi durante l'Upload";
    }
    }
    $query="UPDATE amici SET nome='".$nome."', foto='".$foto."' WHERE id_amico=".$id_amico;

    ?>
    io proverei così... non ho testato quindi non ti so dire per certo... spero di essere utile !:)


  • User

    grazie di cuore. a buon rendere....

    andava però creata la condizione else....

    te lo faccio leggere per piacere mio e a futura memoria dei visitatori del forum....grazie ancora

    <?
    $id_amico= $_REQUEST['id_amico'];
    $nome= $_REQUEST['nome'];
    //prima verifichi che un file sia scelto
    if(!empty ($_FILES['userfile']['name'])){
    $file_temp= $_FILES['userfile']['tmp_name'];
    //file temporaneo che contiene l'immagine caricata da un campo file del form nella pagina di rinvio a questa.

    $name = $_FILES['userfile']['name'];

    $percorso="foto/";
    //cartella sul server dove verrà spostata la foto
    $foto = $percorso.$name;

    if (move_uploaded_file($file_temp, $percorso . $name))
    {
    print "L'aggiornamento è stato effettuato";
    }
    else
    {
    print "Si sono verificati dei problemi durante l'Upload";
    }

    $query="UPDATE amici SET nome='".$nome."', foto='".$foto."' WHERE id_amico=".$id_amico;
    }
    else
    {
    $query="UPDATE amici SET nome='".$nome."' WHERE id_amico=".$id_amico;
    }

    ?>