salve
eseguendo uno script nella cartella "file"
www.miosito.it/documenti/file/make.php
e possibile creare un file nella root del sito?
cioè come faccio a dare come percorso di creazione la root?
grazie![]()
![]()
salve
eseguendo uno script nella cartella "file"
www.miosito.it/documenti/file/make.php
e possibile creare un file nella root del sito?
cioè come faccio a dare come percorso di creazione la root?
grazie![]()
![]()
ho provato così:
in locale funzia!Codice PHP:
<php
//setto i permessi in scrittura x la root
chmod($_SERVER['DOCUMENT_ROOT'], 0777);
//creo il file assegnando il percorso
$fh = fopen($_SERVER['DOCUMENT_ROOT']."/"."file.txt", "w");
fwrite($fh, "a");
if($fh==false)
die("impossibile creare il file");
?>
ma su server il file nn viene creato![]()
![]()
![]()
prova così
Edit.: Non avevo visto che in locale andava, comunque prova quel codice che ti ho dato(non penso cambi tanto) se no al max dimmi che server hai se win o linuxCodice PHP:
<php
//setto i permessi in scrittura x la root
chmod($_SERVER['DOCUMENT_ROOT'], 0777);
//creo il file assegnando il percorso
$fh = fopen("../../file.txt", "w");
fwrite($fh, "a");
fclose($file);
if($fh==false)
die("impossibile creare il file");
?>
grazie per la risposta![]()
purtroppo non va...
![]()
è server windows...
Ok, allora se è win crea il file nella cartella public e trasferiscilo con uno script nella cartella voluta
hai provato almeno a cercare su google o su html.it "php ftp script" ???
@cablos
dunque ...
- usare un chmod per settare i permessi non serve in quanto se non li hai non li potrai cambiare ma se li hai ci puoi già scrivere
- usare il percorso "../../file.txt" è poco conveniente, hai la document root quindi $_SERVER['DOCUMENT_ROOT'] . '/file.txt'
- l'if con il controllo è meglio se lo sposti sotto l'fopen o nella stessa riga dell'fopen altrimenti riceverai altri warning dovuti alle funzioni fwrite e fclose, quindi ad esempio if (($fp = fopen($_SERVER['DOCUMENT_ROOT'] . '/file.txt', 'wb')) === false) { .......
detto tutto questo, una soluzione alternativa è quella proposta da FFMM, ovvero quella di usare le funzioni FTP per l'accesso ai file del sito con i permessi dell'utente che li ha uploadati ( www.php.net/ftp )
Questi problemi derivano dal fatto che mentre l'utente che crea i file è, ad esempio, quello che accede tramite php ... l'utente che accede ai file è quello del webserver (iis o apache)
In realtà, sia per iis che per apache ci sono le soluzioni perché iis supporta nativamente la creazione di un ambiente di esecuzione a cui associare i siti e all'ambiente di esecuzione si possono associare utente e gruppo di esecuzione mentre per apache ci sono varie soluzioni, alcune scadenti come suphp o l'uso di php come cgi e l'uso di suexec o soluzioni molto più efficenti come l'uso dell'mpm-itk
se nel pannello di controllo hai un file manager dovresti poter impostare i permessi altrimenti, dato che molti provider creano una cartella scrivile da php quando si lavora su windows, chiamata spesso public, invece di scrivere nella root del sito scrivi dentro public quindi modifichi l'fopen facendo
spero di essere stato d'aiutoCodice PHP:
if (($fp = fopen($_SERVER['DOCUMENT_ROOT'] . '/public/file.txt', 'wb')) === false)
{
die('Impossibile aprire/creare il file!');
}
fwrite($fp, "a");
fclose($fp);
![]()
VM su SSD da 5$! https://www.digitalocean.com/?refcode=f6925c7f0ddb
lol, sei stato d'aiuto pure a me, thx