Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: problema upload file

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    298

    problema upload file

    Ho un problema con questo script, con il quale vorrei caricare nel DB i seguenti campi: id, data, autore, titolo, messaggio, link.
    Il tutto funziona ma provando a loggarmi con un utente (è richiesta una password) riesco ad effettuare l'upload SOLO la prima volta. Il fatto è che l'ID viene incrementato correttamente (come campo nel DB) ma purtroppo non viene incrementato nel campo LINK (che sfrutta tale ID)...questo problema fa sì che i files caricati successivamente vengono sovrascritti ai precedenti. Non credo di essermi spiegato molto chiaramente

    ah, se invece mi loggo con utenti differenti ad ogni upload, tutto funziona alla perfezione!?

    Spero qualcuno possa farmi capire dov'è l'errore.

    codice:
    <?
    include 'indexlogged.php'; //riguarda l'autenticazione degli utenti
    
    // database connection
    include 'db.php';
    
    $autore = $_SESSION['first_name'];
    
    $titolo = $_POST['titolo'];
    
    $messaggio = $_POST['messaggio'];
    $messaggio = nl2br($messaggio);
    
    
    //inserisco nuovi campi
    $sql = "INSERT INTO documenti (id, data, autore, titolo, messaggio)
    VALUES
    ('', now(), '$autore', '$titolo', '$messaggio') ";
    $controllo = mysql_query($sql, $connection) or die('ERROR - 1'. mysql_error());
    
    //prelevo id
    $sql = "SELECT id FROM documenti WHERE autore = '$autore' ";
    $controllo = mysql_query($sql, $connection) or die('ERROR - 2'. mysql_error());
    $riga = mysql_fetch_array($controllo);
    
    $id_doc = $riga['id'];
    
    //percorso
    $salva_doc = "files/".$id_doc;
    
    //link al documento
    $sql = "UPDATE documenti SET
    link='$salva_doc'
    WHERE id='$id_doc'
    ";
    $controllo = mysql_query($sql, $connection) or die('ERROR - 3'. mysql_error());
    
    //salvo documento
    if (is_uploaded_file($documento)) {
    move_uploaded_file($documento,$salva_doc);
    chmod($salva_doc, 0777);
    echo $salva_doc." - documento caricato correttamente.
    ";//tutto OK
    }else{
    echo $salva_doc." - errore nel caricamento. Riprovare.
    ";
    }
    
    
    ?>
    -trx000-

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    298
    up
    -trx000-

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    298
    up, please
    -trx000-

  4. #4
    ehm...non riesco a capire cosa devi fare...

    se il campo link deve incrementare anche lui assegnagli l'auto increment, però a questo punto non serve perché sarebbe un campo sempre uguale a id

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    298
    il fatto è che il campo Link, che contiene "files/"+la variabile $id, non viene incrementato correttamente.Deve esserci un errore perchè il codice che ho scritto dovrebbe (nei miei sogni) restituirmi lo stesso valore per ID e LINK, invece a volte (!?!) LINK non viene incrementato...mi sapete dire per favore se nel codice che ho postato ci sono grossi errori in questo senso? Grazie.
    -trx000-

  6. #6
    Ma a che ti serve il campo link?

    Hai già l'id!
    Quando estrai la lista dei files estrai anche l'id; quindi fai una cosa del genere

    codice:
    while ( $row = mysql_fetch_array( $result ) )
         {
           echo $row['name'] . ' ' .
           $row['data'] .
           '
    scarica' ;
         }
    Molto semplice! Il campo link non serve assolutamente a niente! Ciao!

    Un'altra cosa. Quando scrivi i titoli dei post cerca di scrivere un titolo descrittivo del problema. "problema con upload file" non è per niente descrittivo visto che il tuo problema potrebbe essere "incrementare due campi contemporaneamente" o qualcosa del genere. Ciao!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  7. #7
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    cosa intendi con "incrementato"?

    La query restituisce un solo record vero?

    hai provato a stampare a video la variabile $salva_doc e $id_doc?

    Comunque se chiami il file con l'id potresti farne pure a meno .. tanto sai che i file vanno nella dir files, e che hanno nome = a id...

    ciao

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    298
    ok, elimino il campo link. In effetti cercavo un sotterfugio!? Mi dite per favore come faccio ad inserire i valori nel DB e (nello stesso script) richiamare solo la riga appena inserita? Il mio problema nasce perchè, se inserisco un nuovo $id (come nel mio codice) non so come andare a ripescarmelo perchè essendo auto incr. non so che valore ha..so che sto chiedendo una banalità....
    -trx000-

  9. #9
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    SELECT MAX(id) FROM tabella;

    ciao

  10. #10
    oppure mysql_insert_id()
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

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.