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

    Cambiare permessi in PHP

    Ciao, sto usando ils eguente codice per uppare dei file su di un srver:

    Codice PHP:
                          else {

                              
    //Prendiamo l'ID del file da uppare
                              
    $query "SELECT max(id) FROM file_uppati";
                              
    $query_limit mysql_query($query) or die(mysql_error());
                              
    $ress mysql_fetch_array($query_limit);
                              
    $ide $ress[id] + 1;

                              
    /********************* VARIABILI DA SETTARE ********************/
                              // Directory dove salvare i files Uploadati ( chmod 777, percorso assoluto)
                              
    $upload_dir "articoli/upload2/";

                              
    // Eventuale nuovo nome da dare al file uploadato
                              
    $new_name $ide $_FILES["file"]["name"];

                              
    // Se $new_name è vuota, il nome sarà lo stesso del file uploadato
                              
    $file_name = ($new_name) ? $new_name $_FILES["file"]["name"];
                                  if(@
    is_uploaded_file($_FILES["file"]["tmp_name"])) {

                                      if (@
    move_uploaded_file($_FILES["file"]["tmp_name"], $upload_dir "/$file_name")) {
                                              echo 
    "L'upload del file " $_FILES["file"]["name"] . " è avvenuto correttamente";
                                              
    $res 1;
                                          }
                                      else {
                                         echo 
    '<div align="center">
                                                  Errore nell\'upload del file
                                                 <form method="post" action="">
                                                   <input type="submit" name="tasto" value="Indietro">
                                                 </form>
                                                  </div>'
    ;
                                      }
                                  }
                                  else {

                                     echo 
    "Problemi nell'upload del file " $_FILES['file']['name'] . " Se il problema persdiste contatti l'amministratore del sito...

    "
    ;
                                     echo 
    '<div align="center">
                                             <form method="post" action="">
                                               <input type="submit" name="tasto" value="Indietro">
                                             </form>
                                              </div>'
    ;
                                  }

                             if (
    $res) {  //Se il file è stato uppato correttamente inseriamo tutto nel database
                                 
    $query "INSERT INTO file_uppati (titolo, descrizione, file, id_uploader, id_materia, id_tipo, down) VALUES ('$_POST[titolo]', '$_POST[descrizione]', '$new_name', '$nicklog', '$_POST[materia]', '$_POST[tipo]', 0)";
                                 
    mysql_query($query) or die(mysql_error());
                                 echo 
    '<meta http-equiv="Refresh" content="5; URL=tutorials.php">';
                             }

                          } 
    #END else di $errori

                        
    #END elseif ($_POST['tasto'] == 'Invia')

                      
    //Fine Pagina per gli utenti ammessi
                      
    ?> 

    Solamente il fiel che io uppo li vengono dati i permessi 500, mentre io vorrei darli i permessi 755.

    Qualcuno sa dirmi come posos fare per mettergleli tramite php?
    magari aggiungiendo 2-3 righe alal fine diq eusto script?


    Poi ho un secondo problema:

    //Prendiamo l'ID del file da uppare
    $query = "SELECT max(id) FROM file_uppati";
    $query_limit = mysql_query($query) or die(mysql_error());
    $ress = mysql_fetch_array($query_limit);
    $ide = $ress[id] + 1;


    non capisco perchè, ma anche se ci sono più record il file prende sempre come $ide il valore 1.


    Grazie

  2. #2
    :quote:

  3. #3
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    per il primo problema puoi usare la funzione chmod
    think simple think ringo

  4. #4
    niente mi manca un qualche passaggio fondamentale...

    chmod e' un comando php, giusto?
    cioe' i permessi di una cartella mi sembra di aver capito che li posso cambiare col php.
    ma a me interessa settarli una volta e basta.. quindi non devo mettere chmod nella pagina che fa l'upload.php, giusto?

    vi spiego il mio problema, che e' simile a quello di SkOrPiOn`87.
    sto provando in locale l'upload di file con php, apache e ho anche installato mySQL... sto proprio seguendo il corso di frephp.it aggiungendo altre guide che ho trovato su internet, tra le quali questa


    a parte che nella parte html il campo input va' chiamato filez1 e non filez, a me da' comunque l'errore:

    Warning: Unable to create 'http://localhost/utenti/prova_db/img/apo.jpg': Invalid argument in c:\programmi\apache group\apache\test\utenti\prova_db\do_upload.php on line 4
    Impossibile copiare il file!

    quindi intuisco di non avere i permessi per la scrittura nella cartella img

    allora mi son messo a cercare e ho trovato questo thread, la relativa risposta di maketto e ho seguito il suo link.

    quindi ho aggiunto:
    chmod("http://localhost/utenti/prova_db/img/$filez1_name", 0755);


    in questo maodo:
    <?
    if ($filez1_name != "") {
    chmod("http://buk_one/utenti/prova_db/img/$filez1_name", 0755);
    copy("$filez1", "http://buk_one/utenti/prova_db/img/$filez1_name")
    or die("Impossibile copiare il file!");
    } else {
    die("File non specificato");
    }
    ?>

    e oltre al messaggio d'errore di prima si e' aggiunto:

    Warning: chmod failed: Invalid argument in c:\programmi\apache group\apache\test\utenti\prova_db\do_upload.php on line 3


    mi potete aiutare??
    ciao e grazie
    apo
    che vita oh!

  5. #5
    mi sembra di aver capito, continuando le ricerche, che i permessi di una cartella si possono cambiare con programmi di ftp.

    io ho flashFTP e ho due problemi:
    1_ non riesco a collegarmi a localhost... (forse perche' non si puo' fare, o forse perche' sbaglio usr e pwd (ma dove sono scritii??))

    2_ mi sembra che comunque nelle voci che escono dopo aver fatto tasto destro su un file o una cartella non ci sia niente relativo ai permessi... forse flashFTP non ha questo comando?



    in compenso con dreamweaver mi funziona il testing server, ma non ho possibilita' di cambiare i permessi

    continuo a cercare fiducioso... se intanto a voi viene in mente qualcosa..


    ciao e grazie
    che vita oh!

  6. #6
    riga' aiuto
    direi che per cambiare i permessi in una cartella in locale ho 2 possibilita':

    1_ chmod con client ftp, che pero' non riesco a far collegare a localhost, quindi se e' possibile, e sapete come si fa, sarebbe una cosa graditissima

    2_ mettere delle istruzioni (che non trovo!!!) in .htaccess per dare i permessi alla cartella
    quindi se sapete dove posso trovare info a riguardo.. anch'esse molto gradite


    vi ricordo che il mio problema e' il test di un upload file in locale.. sembra che funzi tutto tranne che non ho i diritti di scrittura e quindi mi dice:

    Warning: Unable to create 'http://localhost/utenti/prova_db/img/apo.jpg': Invalid argument in c:\programmi\apache group\apache\test\utenti\prova_db\do_upload.php on line 4
    Impossibile copiare il file!


    vi prego aiutatemiiiii
    disperApo
    che vita oh!

  7. #7
    il comando chmod in locale su windows non funzionerà mai...i permessi con chmod si settano solo su linux.
    L'ftp non serve per collegarsi in locale.
    Cmq per un futuro non conosco FlashFtp ma chi possiede la proprieta di modificare chmod è per esempio uno tra tanti CuteFtp.

  8. #8
    sicuro che si settano solo su linux e non su apache, a prescindere dal sistema operativo?

    la possibilita' di cambiare i chmod flashFTP ce l'ha, ma ovviamente solo nei file della directory remota (nel mio caso localhost), che pero' non mi ci si collega


    io vorrei provare solo in locale, per ora.

    come si cambiano i permessi in una cartella in locale??
    grazie ancora
    apo
    che vita oh!

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.