Visualizzazione risultati 1 fino 12 di 12

Discussione: sto impazzendo... e adesso che faccio [permessi cartelle]?

  1. #1
    Guest

    Angry sto impazzendo... e adesso che faccio [permessi cartelle]?

    Leggo nelle faq che
    > Su AlterVista tutte le cartelle hanno permessi 775
    ok, benissimo nessun problema.
    Ma allora perché quando creo una cartella con il comando mkdir() questa ha i permessi settati a 755???'
    E non posso neanche cambiarli a 775!!!
    Risultato: creo la cartella con uno script = non riesco più ad accederci,
    l'unica possibilità è crearla via ftp (crystal funziona)...
    come faccio a creare una cartella funzionante da uno script php???
    Ultima modifica di thousand : 14-02-2005 alle ore 23.08.34

  2. #2
    Guest

    Predefinito

    normalmente... io la faccio normale se serve in php

  3. #3
    Guest

    Predefinito

    A me non da questi problemi.
    Nelle faq c'è scritto che le cartelle e i files hanno chmod a 755, e lo script ti crea la cartella a 755, non vedo quale sia il tuo dubbio.


    Ciaooo!!!

  4. #4
    Guest

    Predefinito

    il testo delle faq è:

    Su AlterVista tutte le cartelle hanno permessi 775 mentre i files 664, non è possibile modificare questi permessi. Sebbene qualche script php richieda esplicitamente di impostare i permessi rispettivamente a 777 oppure 666, per come è strutturato lo spazio dei membri su AlterVista questa operazione non è necessaria per il buon funzionamento di qualsiasi script. L'installazione dovrà essere quindi fatta ignorando tutte le indicazioni relative all'impostazione dei permessi.

    Quindi le cartelle devono necessariamente essere su 775
    Il problema è che quando creo una cartella così:
    mkdir($_POST['name']);
    o così
    mkdir($_POST['name'],0775);
    si crea una cartella con permessi 0755 su cui non riesco ad usare la funzione move_uploaded_file() che a quanto pare funziona solo con i permessi settati a 0775. Se creo le cartelle via ftp lo script con move_uploaded_file() funziona.
    Che faccio? :neutral:

  5. #5
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    move_uploaded_file() non c'è su AV a causa del safe_mode!
    Per salvare i file mandati dagli utenti devi usare move(), cerca nel forum lo script per l''upload, o se non lo trovi telo do io.
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

  6. #6
    Guest

    Predefinito

    non è quello, move_uploaded_file() c'è ed è safe
    il problema lo leggo ora in un altro topic:

    Questo è purtroppo un "baco trasversale" o meglio, non è proprio un baco ma una limitazione intrinseca di ciò che sta alla base di questo genere di protezione.

    Ogni volta che crei dal nulla qualcosa, un file o una cartella l'utente proprietario di questa entità è chi la crea. Il tuo script, anche se di fatto appartiene all'utente "legaamici", agisce come utente "apache" (il webserver), e quindi ogni file o cartella da esso creato apparterrà a questo utente. Il safe mode non permette a scripts tuoi di eseguire determinate operazioni su entità che appartengono ad altri, per questo motivo l'unico sistema per fare in modo che questo non accada è creare manualmente la cartella via FTP o pannello.

    Parole di Gianluca...
    però, visto che non posso effettuare una connessione ftp per creare le directory, in quanto tali funzioni non sono installate su altervista, come faccio a creare una directory con i permessi corretti???

  7. #7
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    [Parentesi]
    A me il move_uploaded_file() non va...
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

  8. #8
    Guest

    Predefinito

    anche a me dà qualche problema, soprattutto con i nomi dei file strani.
    il codice che uso su
    http://www.thousand.altervista.org
    è (la presenza del [$key] è dovuta all'upload di file multipli, la funzione è inserita in un ciclo):
    Codice PHP:
    if (($HTTP_POST_FILES['file']['type'][$key] == "image/gif" OR $HTTP_POST_FILES['file']['type'][$key] == "image/pjpeg"
    OR $HTTP_POST_FILES['file']['type'][$key] == "image/jpeg" OR $HTTP_POST_FILES['file']['type'][$key] == "application/octet-stream")
    AND
    $HTTP_POST_FILES['file']['size'][$key] < 1024000)
    {
    if (
    is_uploaded_file($HTTP_POST_FILES['file']['tmp_name'][$key]))
    {
    //a file was uploaded
    if ($HTTP_POST_FILES['file']['size'][$key] > 1024000)
    {
    unlink($HTTP_POST_FILES['file']['tmp_name'][$key]);
    echo
    "La dimensione del file ".$HTTP_POST_FILES['file']['name'][$key]." è superiore ai 1024 KBytes, ridurre la dimensione del file!";
    }
    else
    {
    //File has passed all validation, copy it to the final destination and remove the temporary file:
    //invalid chars
    $file_ext_pos = strrpos($HTTP_POST_FILES['file']['name'][$key], '.');
    $ext = substr($HTTP_POST_FILES['file']['name'][$key],$file_ext_pos);
    $file_name = substr($HTTP_POST_FILES['file']['name'][$key],0,$file_ext_pos);
    if (
    $HTTP_POST_FILES['file']['name'][$key] != str_replace("+"," ",urlencode($HTTP_POST_FILES['file']['name'][$key])))
    {
    $new_name = preg_replace('/[^a-z0-9_\-\.]/i', ' ',$file_name);
    echo
    "Il file ".$HTTP_POST_FILES['file']['name'][$key]." contiene caratteri speciali e sarà pubblicato col nome ".$new_name.".<BR>";
    }
    else
    {
    $new_name = $file_name;
    }
    if (
    file_exists($_POST['name'].$new_name.$ext))
    {
    $i = 2;
    while (
    file_exists($_POST['name'].$new_name."(".$i.")".$ext))
    {
    $i++;
    }
    $new_name = $new_name."(".$i.")".$ext;
    echo
    "Il file ".$HTTP_POST_FILES['file']['name'][$key]." esiste già sul server e sarà pubblicato col nome ".$new_name.".<BR>";
    }
    else
    {
    $new_name = $new_name.$ext;
    }
    $HTTP_POST_FILES['file']['name'][$key] = $new_name;
    if (
    move_uploaded_file($HTTP_POST_FILES['file']['tmp_name'][$key],$_POST['name'].$HTTP_POST_FILES['file']['name'][$key])==false)
    echo
    "Alert! Il file ".$HTTP_POST_FILES['file']['name'][$key]." non è stato pubblicato correttamente.";
    else
    echo
    "Upload del file ".$HTTP_POST_FILES['file']['name'][$key]." avvenuto con successo.";
    $file_name = $_POST['name'].$HTTP_POST_FILES['file']['name'][$key];
    }
    }
    else
    {
    if (
    copy(stripslashes($HTTP_POST_FILES['file']['name'][$key]),
    $_POST['name'].basename($HTTP_POST_FILES['file']['name'][$key]))==false)
    echo
    "Alert! Il file ".$HTTP_POST_FILES['file']['name'][$key]." non è stato pubblicato correttamente.";
    else
    echo
    "Upload del file ".$HTTP_POST_FILES['file']['name'][$key]." avvenuto con successo.";
    $file_name = $_POST['name'].basename($HTTP_POST_FILES['file']['name'][$key]);
    }
    }
    else
    {
    if (
    $HTTP_POST_FILES['file']['size'][$key] > 1024000)
    echo
    "Alert! Questo formato (".$HTTP_POST_FILES['file']['type'][$key].") non è supportato, il file ".$HTTP_POST_FILES['file']['name'][$key]." non sarà pubblicato.";
    else
    echo
    "Alert! Questo file è troppo grande (".$HTTP_POST_FILES['file']['size'][$key]."), e ".$HTTP_POST_FILES['file']['name'][$key]." non sarà pubblicato.";
    unlink($HTTP_POST_FILES['file']['tmp_name'][$key]);
    echo
    "Sono ammessi solo file jpg e gif, cambiare il formato del file ".$HTTP_POST_FILES['file']['name'][$key]."!";
    }
    stringendo:
    Codice PHP:
    if (move_uploaded_file($HTTP_POST_FILES['file']['tmp_name'][$key],$_POST['name'].$HTTP_POST_FILES['file']['name'][$key])==false)
    echo
    "Alert! Il file ".$HTTP_POST_FILES['file']['name'][$key]." non è stato pubblicato correttamente.";
    else
    echo
    "Upload del file ".$HTTP_POST_FILES['file']['name'][$key]." avvenuto con successo.";
    mi faresti vedere che codice usi?
    Ultima modifica di thousand : 15-02-2005 alle ore 21.54.02

  9. #9
    Guest

    Predefinito

    Anche io ho questi problemi!!!

    Vorrei installare yappa-ng (un applicativo di gestione di gallerie fotografiche, da sourceforge) che ha script di installazione specifici per server safe-mode, ma c'è qualcosa che non va!!!

    Questo è l'iter da seguire per installare questa applicazione:
    1. upload del file "start.php" via ftp o pannello
    2. esecuzione del file "start.php" che crea una cartella e fa l'upload del file "install.php"
    3. esecuzione del file "install.php" che crea le sotto-cartelle e fa l'upload (nella cartella creata da "start.php") di alcuni files
    4. upload via ftp o pannello dei files rimanenti.

    Tutto questo va fatto perchè il file "start.php" assume l'UID dell'utente ma la cartella viene creata con l'UID del server, poi carica il file "install.php" che assume l'UID del server e quindi può caricare i file nella cartella (e assumeranno l'UID del server) e può creare le sotto-cartelle (che assumeranno anch'esse l'UID del server). Poi, quando l'applicazione gira, tutte le cartelle verranno create con l'UID del server e potranno essere utilizzate dai file in quanto avranno lo stesso UID (del server). Ovviamente esiste il problema che poi queste cartelle non saranno più accessibili via FTP!!!!!! (ma almeno l'applicazione funziona...)

    Non funziona l'upload dei file nel punto 3 (non mi dà errori particolari...)

    Il bello è che funziona sullo spazio che possiedo con un altro utente (iluvatar) e funzionava anche in questo spazio la settimana scorsa!!!!!!!!!!!! Cosa è successo nel frattempo????

    A parte il fatto che non capisco proprio quale sia la logica di questo benedetto SAFE MODE!!! Va bene impedirmi di lavorare su cartelle che non sono mie (ma comunque non potrei farlo al di fuori del mio spazio, no???) ma così non posso lavorare nemmeno sulle mie cartelle, visto che quelle create hanno l'UID del server!!!

  10. #10
    Guest

    Predefinito

    beh almeno non sono da solo allora! però
    nessuno sa come si possa ovviare questo problema?
    io avevo provato con questo:
    Codice PHP:
    $stream = ftp_connect("ftp://ftp.thousand.altervista.org");
    $login = ftp_login($stream, "thousand", "*********");
    $mydir = ftp_chdir($stream, "/foto/");
    $newdir = ftp_mkdir($stream, "prova");
    $quit = ftp_quit($stream);
    però mi servirebbe avere almeno avere le funzioni ftp
    C'è qualche altro modo per aggirare l'ostacolo? Secondo voi si potrebbero usare delle istruzioni ftp direttamente come se fosse uno stream generico, senza usare le funzioni ftp predefinite in php?

  11. #11
    Guest

    Predefinito

    Anche io ho provato con ftp_connect, ma non funziona... :(

    Mi chiedo come facciano tutti gli altri utenti a utilizzare lo spazio su altervista!
    O non utilizzano nessuno script che crea cartelle oppure c'è qualcosa che non mi è chiaro! (a parte il fatto che il safe mode ha ovviamente un bug (mi sembra sia anche citato su www.php.net), e cioè che la cartella creata assume l'uid del server e non del proprietario dello script! O_O)

    -Ivano

  12. #12
    Guest

    Predefinito

    forse ho trovato un modo per aggirare il problema...
    Ho provato ad utilizzare fsockopen per stabilire una connessione ftp senza usare le funzioni specifiche del php. Ma con molta simpatia scopro che anche fsockopen non funziona su altervista (questa è una limitazione voluta, non è dovuta alla safe mode, o ad opzioni di compilazione).
    A questo punto ho detto... sì ok, ma un modo deve esserci!
    e l'unico modo che mi viene in mente è... usare un altro server!
    proprio così: creo una pagina su uno spazio a pagamento che ho su tophost - dal mio script su altervista richiamo quella pagina passandogli via get tutte le variabili del caso - da tophost mi connetto via ftp ad altervista e creo la directory.
    Adesso però... ma si può dover fare una roba del genere per una cretinata come creare una directory???

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •