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

    Cancellare directory file e sottodirectory

    Ciao,

    sto creando un'area per gestire un mail server (Postfix) in php, Utenti, Domini, ecc.
    1 quando inserisco nel db dall'area amministrativa un nuovo e mail ho fatto in modo che mi crea gia le cartelle necessarie sul server, e fin qui ci siamo, ora vorrei fare in modo che se cancello l'email mi cancelli anche la cartella che non si trova nella home, come faccio?


    /home/vmail/dominio1.com/info
    /home/vmail/dominio1.com/test *** Cancellare test e tutto quello che c'é dentro (cartelle e file)

    nella pagina dove gestisco riesco ad estrarre il nome di dominio e il nome da cancellare ma non so buttare giu il codice, mi date una mano pf.

    ho buttato giu questo pezzo di codice:
    Codice PHP:
    if(isset($_GET['delEmail'])) {
            
    $email $_GET['delEmail'];
            
    $sql_delEmail "DELETE FROM users WHERE email = '$email'";
            
    $query_delEmail mysql_query($sql_delEmail) or die ("Errore nella query : " mysql_error());
            
            
    $dom_id $_GET['dom_id'];
            
    $sql_folderDomain "SELECT * FROM domains WHERE dom_id = '$dom_id'";
            
    $query_folderDomain mysql_query($sql_folderDomain) or die ("Errore nella query : " mysql_error());
            
    $result_folderDomain mysql_fetch_assoc($query_folderDomain);
            
    $folder_domain $result_folderDomain['domain'];
            
    $email_name explode'@' $email);
            echo 
    $email_name[0];

    ...... 
    e qui dovrei dire di cancellare la cartella e i file contenuti!!!!


            } 

    Grazie
    PHP THE BEST

  2. #2
    io pensavo qualcosa del genere ma suppongo che in unix bisogna dare i diritti:

    unlink("../../home/vmail/$folder_domain/$email_name");
    PHP THE BEST

  3. #3
    se sei usando il linux si puoi provare il questo:

    Codice PHP:
    system("rm -rf path/a/sottodirectory"); 
    Ciao!
    Nuovo Blog di Programmazione! (Lo ha i tutti tipi! PHP e C/C++)
    Per piacere lo supporti!

  4. #4
    ok grazie e per i permessi posso settarli da php?
    PHP THE BEST

  5. #5
    Codice PHP:
    $path "$folder_domain/$name";
    system("chmod -R 777 \"/home/vmail/$folder_domain\"  ");
    system("rm -rf  /home/vmail/$path"); 
    cosi non funziona, ma se do i diritti sulla shell me la cancella come posso risolvere?
    PHP THE BEST

  6. #6
    hmm. beh php solo possa cancellare una cartella se ha i permissi. cosi un altro script si deve fare la cartella.

    Creare:
    Codice PHP:
    <?php
    // Chmod su "parent" cartella si deve essere a 0777
    mkdir("parent/cartella");
    ?>
    Per cancellare:
    Codice PHP:
    <?php
    // Cancellare i contenti
    system("rm -rf parent/cartella/*");

    // RMDIR
    rmdir("parent/cartella");
    ?>
    Ciao!
    Nuovo Blog di Programmazione! (Lo ha i tutti tipi! PHP e C/C++)
    Per piacere lo supporti!

  7. #7
    Grazie per la risposta;

    il problema é che non le creo con php queste cartelle le crea l'utente vmail all'arrivo di un primo mail e chiaramente i diritti non corrispondono!!

    io pensavo di aggiungere al gruppo vmail l'utente www-data funzionerebbe??
    PHP THE BEST

  8. #8
    Questo é il codice :

    Codice PHP:
        if(isset($_GET['delEmail'])) {
            
    $email $_GET['delEmail'];
            
    $sql_delEmail "DELETE FROM users WHERE email = '$email'";
            
    $query_delEmail mysql_query($sql_delEmail) or die ("Errore nella query : " mysql_error());
            
            
    $dom_id $_GET['dom_id'];
            
    $sql_folderDomain "SELECT * FROM domains WHERE dom_id = '$dom_id'";
            
    $query_folderDomain mysql_query($sql_folderDomain) or die ("Errore nella query : " mysql_error());
            
    $result_folderDomain mysql_fetch_assoc($query_folderDomain);
            
    $folder_domain $result_folderDomain['domain'];
            
    $email_name explode'@' $email);
            
    $name $email_name[0];
            
    $path "$folder_domain/$name";
            
    system("chown -R root:root  /home/vmail/$folder_domain/$name") or die ("errore chown"); *** Qui non va e si ferma
            system
    ("chmod -R 777 /home/vmail/$folder_domain/$name ") or die ("errore chmod");
            
            
    system("rm -rf  /home/vmail/$path");
            } 
    Dove sbaglio? so che é questione dei diritti ma non ci riesco a capire come risolvere!!!
    PHP THE BEST

  9. #9
    e se metto l'utente www-data nel gruppo vmail cosi posso cancellare ??

    Non capisco piu niente sono confuso!!
    PHP THE BEST

  10. #10
    ho notato che quando inserisco un nuo mail i diritti sono solo per vmail, ma questo lo crea in automatico appena arriva la prima email! nessuno mi sa dare consigli o una mano??

    Thx
    PHP THE BEST

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.