problema con modifica/creazione file

ciao,

ho un unico file con all'interno un editor per la creazione di un file di testo.

passo la variabile creata con l'editor a un file di controllo e creo il file. no problem

anche per caricare un file già creato all'interno dell'editor per la modifica, non ci sono problemi.

il problema avviene nel file di controllo. dato che ho un unico file per la creazione e modifica non riesco a gestirlo.

$testo = $_POST["text"]; // la variabile che arriva dall'editor e che contiene il testo

if (!isset($_POST["var"])) { // la variabile che contiene il nome del file già creato e passato via $_POST in un campo hidden

$filename = "../public/".$_POST['lang']."/".$_POST['lang']."_".time().".txt"; //creazione file

 if (!file_exists($filename)) {
   $fh = fopen($filename, 'w');
    fwrite($fh, stripslashes($testo));
      fclose($fh);
}

}else {

$filename = "../public/".$_POST['lang']."/".$_POST["var"]; //modifica file


   $fh = fopen($filename, 'w');
    fwrite($fh, stripslashes($testo));
      fclose($fh);


}

in pratica atraverso un campo hidden passo il nome del file .se devo modificarlo la variabile $_POST["var"] è settata.

in caso contrario mi crea il file.

questo script così com'è mi modifica corretamente il file, ma non me lo crea.

mi da errori di:

fopen(../public/it/): failed to open stream: Permission denied

fwrite(): supplied argument is not a valid stream resource in

all'interno dell' else

spero di essere stato chiaro

grazie!

inviato 10 anni fa
iTek
iTek
1
X 0 X

L'errore "failed to open stream: Permission denied" fa pensare piuttosto ad un problema di permessi di scrittura nella cartella. Prova a settarne i permessi a 777

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

ma sono in windows e in locale....

risposto 10 anni fa
iTek
iTek
1
X 0 X

Devi comunque cambiare i permessi alla cartella ../public/it/ per permettere la scrittura all'utente (apache/IIS).

risposto 10 anni fa
LonelyWolf
X 0 X

Apache o IIS?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

allora,   

ho apache, ho provato a cambiare i permessi alla cartella ma non lo accetta ( win xp).

il problema succede quando devo creare il file, mentre quando lo modifico funziona ( la modifica è pur sempre una scrittura ). non capisco cosa devo fare... :(

risposto 10 anni fa
iTek
iTek
1
X 0 X

Giusto per essere sicuri che il nome del file sia valido, dopo la riga:

$filename = "../public/".$_POST['lang']."/".$_POST['lang']."_".time().".txt"; //creazione file

metti un bel:

echo $filename;

e verifica che il nome del file sia valido.

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

non mi stampa nulla....

ma sai la cosa strana?

che i warning si riferiscono alla parte dello scipt per la modifica del file non la creazione:

}else {

$filename = "../public/".$_POST['lang']."/".$_POST["var"];


   $fh = fopen($filename, 'w');
    fwrite($fh, stripslashes($testo));
      fclose($fh);


}
}

cioè, se io modifico il file ok, quella parte di script funziona.

ma se io cerco di creare il file mi da i warning riferendosi alla parte dello script per la modifica anzichè riferirsi alla parte per la creazione del file cioè:

$filename = "../public/".$_POST['lang']."/".time().".txt";


 if (!file_exists($filename)) {
   $fh = fopen($filename, 'w');
    fwrite($fh, stripslashes($testo));
      fclose($fh);
}

 :o

boh....

risposto 10 anni fa
iTek
iTek
1
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda