Newsgroup: it.comp.www.php
Titolo: Creare un File

Salve a Tutti.
Devo, tramite uno script PHP, creare un file all'interno di una directory
nel mio sito. Quando provo ad utilizzare fopen ricevo un messaggio di errore
che mi dice che non ho i permessi per creare il file. Ho provato a settare i
permessi della directory in cui devo creare il file a 766, ma niente lo
stesso. Qualcuno di voi può darmi una mano?
Vi ringrazio infinitamente
Marco Baggio

 cui devo creare il file a 766, ma niente lo stesso
766 e' sbagliato. L'attributo 'x' dev'essere impostato.
Cambia la proprieta' della directory ed attribuiscila a "nobody"
e metti le permission a 700.
Oppure cambia il gruppo (sempre nobody) lasciando "root" (o quello che
e') come utente, e metti le permission a 770


Ho provato, ma lo script restituisce sempre Permission Denied

 Ho provato, ma lo script restituisce sempre Permission Denied
Posta la riga di codice con la fopen() ed il messaggio
d'errore esatto.

"ak47" <ak...@local.armory> ha scritto nel messaggio
news:9k22n5$b8r$1...@pegasus.tiscalinet.it...

$fp = fopen ("/usr/home/nomesito/www/files/file1.txt", "w");
errore:
Warning: fopen("/usr/home/nomesito/www/files/file1.txt","w") - Permission
denied in /usr/home/nomesito/www/script.php on line 76
Naturalmente ho modificato i nomi delle directory...
Ciao

 $fp = fopen ("/usr/home/nomesito/www/files/file1.txt", "w");
Se hai eseguito:
    chmod 770 /usr/home/nomesito/www/files
    chgrp nobody /usr/home/nomesito/www/files
deve funzionare. Secondo me hai pastrocchiato con le  directory
intemedie. Esempio:
    cd /home/httpd/html/
    mkdir pippo
    chmod 766 pippo # <== L'errore e' qui
    cd pippo
    mkdir peppo
    chmod 700 peppo
    chown nobody peppo
Se cerchi di creare /home/httpd/html/pippo/peppo/file1.txt col
php non ci riesci manco se piangi. Le directory devono avere il
bit "x" impostato.


Ti sbagli, non ho pasticciato. Prima ho provato con i permessi di default,
POI ho provato a cambiarli. Cmq, nemmeno adesso funziona. P.S. Il comando
chgrp non funzia....
Grazie ancora

 funziona. P.S. Il comando chgrp non funzia....
Cosa vuol dire "non funzia"? Ti restituisce "command not found"
oppure "operation not permitted". Se il caso e' il secondo allora
significa che non sei root, e se non sei root molto probabilmente
sei in hosting, e se sei in hosting probabilmente il php e' in
esecuzione in "safe_mode", e se sei in "safe_mode" hai delle
grosse limitazioni nell'accesso al file system: verifica con
phpinfo() ...

 phpinfo() ...
Penso proprio che hai centrato il problema. Non sono il root, ma sono in
hosting, (e probabilmente ti starai mettendo le mani in faccia o tra i
capelli imprecando contro di me perché non te l'ho detto prima). Allora ti
chiedo se è possibile inserire un testo di lunghezza indefinita (anche
abbastanza lungo) all'interno di un database mysql.... Così risolverei il
problema.
Grazie mille e scusami. Ciao

 mysql.... Cosě risolverei il problema.
Indefinita, no. Pero' puoi usare un campo di tipo *TEXT ossia:
TINYTEXT:   256 byte max
TEXT:       65536 byte max (64 KB)
MEDIUMTEXT: 16777216 byte max (16 MB)
LONGTEXT:   4294967296 byte max (4 GB)
Nelle versioni recenti di MySQL (>= 3.23.2) puoi anche indicizzare
questi campi.