Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    14

    unlink - permission denied

    Salve ragazzi, come da titolo, io ho uno script che carica delle immagini per alcuni utenti, fin qui nessun problema, ad ogni utente però è concesso di caricare un massimo di 8 immagini, allora può capitare che un utente voglia eliminare un immagine per caricarne un altra, solo che quando faccio elimina, e quindi avvio la funzione unlink sull'immagine interessata mi viene detto permission denied!!
    Qualcuno può aiutarmi? può essere che al caricamento dell'immagine si debbano impostare dei permessi speciali? grazie e a presto

  2. #2
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    ..codice..

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    14
    il codice per l'upload o per l'eliminazione del file???

  4. #4
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    se non riesci ad eliminare il file..
    è possibile che ci siano nomi di immagini con caratteri speciali, e che il server non riesca ad accedervi per la cancellazione. qualche immagine si cancella o è un errore generale?

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    14
    no no è proprio un errore generale.. non cancella nulla neanche se prima imposto i permessi a 0777 con la funzione chmod:
    Codice PHP:
                    //cerco il nome dell'immagine da cancellare
                    
    $sql "SELECT * FROM `photogallery` WHERE 'id' = '$id' LIMIT 0,1;";
            
    $db->db_connect();
            
    $nomefile mysql_query($sql);
                    
    //una volta ottenuto il nome cancello il record dal database
            
    $sql "DELETE FROM `photogallery` WHERE `id` = '$id';";
            
    mysql_query($sql);
            
    $db->db_close();
                    
    //chiudo la connessione e passo a cancellare il file dal disco
            
            //elimina il file dal disco
                    //prendo il nome del file
            
    $nomefile mysql_fetch_array($nomefile);
                    
    //imposto l'indirizzo dell'immagine base e del thumb
            
    $indirizzoB "../../../../img/b/$nomefile[nome]";
            
    $indirizzoT "../../../../img/t/$nomefile[nome]";
                    
    //nel file imposto i permessi necessari ad effettuare l'eliminazione
            
    if(chmod($indirizzoB0777))
                            
    //elimino il file
                
    unlink($indirizzoB);
            else echo 
    "errore";
            if(
    chmod($indirizzoT0777))
                
    unlink($indirizzoT);
            else echo 
    "errore"
    la piattaforma è windows 7, può essere che anche windows voglia i permessi per eliminare il file? Se si perché non ne ha voluto per crearlo?

  6. #6
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    sei sicuro che il percorso sia corretto?
    io proverei a fare una cosa tipo
    C:\ilPercorso\Che\Usi\Per\ilTuoFile\img\b\$nomefil e[nome]
    invece di
    ../../../../img/b/$nomefile[nome]
    giusto per vedere se riesci a raggiungere il file correttamente

    PS: che io sappia chmod su windows non funziona...

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    14
    il percorso è corretto al 100%, di aprire il file lo apre.. chmod so che potrebbe non funzionare.. ma non so come altro provare

  8. #8
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    allora, prova a cambiare i "directory separator" usando il "\" invece dello "/"... non si sa mai...

    altra cosa, prova a cambiare il proprietario del file prima di cancellarlo, usa chown mettendo come user uno non di sistema (che ne so, 1000...)

  9. #9
    altra cosa, prova a cambiare il proprietario del file prima di cancellarlo, usa chown mettendo come user uno non di sistema (che ne so, 1000...)
    chmod, chown, ecc, funzionano su Windows? Non ho mai provato e per il momento non potrei neanche volendo... fatemi sapere grazie
    io inizieri a cambiare i permessi con un clic destro dal mouse...

    allora, prova a cambiare i "directory separator" usando il "\" invece dello "/"... non si sa mai...
    no è su Windows...

    posso sapere quale è l'errore (o warning dato che non utilizzi le @) riscontrato?
    inserisci:
    ini_set('display_errors',true);
    in cime al file

  10. #10
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    proprio perché usa windows il separatore di directory è il backslash invece dello slash...Windows
    C:\cartella\file.qcv
    Unix
    /usr/dir/file.qcv

    Che chmod e chown funzionino correttamente su Windows ho i miei dubbi, ma googlando ho trovato dei workaround (dichiarati funzionanti) che prevedevano il cambio di proprietario del file e poi quello dei permessi prima di fare unlink sul file... Dato che Windows non ce l'ho disponibile, non ho potuto verificare che i workaround funzionassero

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.