problema con fopen

acweb-2004

Utente Attivo
7 Giu 2006
133
0
16
Monza
www.acweb-2004.it
Ho una cartella che contiene uno script PHP di installazione di una procedura. In questo script viene scritto un file PHP tramite questo codice:
$File = fopen("config.php","a");

$Text = "<?php\n";
$Text .= "\$UserName = \"$UserName\";\n"; // a.capra
$Text .= "\$Database = \"$Database\";\n";
$Text .= "\$Pass = \"$Pass\";\n";
$Text .= "\$Host = \"$Host\";\n\n";
$Text .= "\$Password = \"$Password\";\n\n";

$Text .= "?>";

$Write = fwrite($File, $Text);
fclose($File);
Fin quì tutto OK, riesco ad utilizzare questa file in altri scrip, etc.
Ora vorre poter cambiare dei parametri, ad esempio $Password.
1) problema: tramite un altro script non lo riesco ad aprire, il codice è:
$file = fopen("config.php","R+");
$record=fread($file,filesize("config.php"));
echo ($record);
ottengo come errore:
Warning: fopen(config.php) [function.fopen]: failed to open stream: No error in C:\www\newsletter_v2.1\admin\newsletter.php on line 2317
Potrebbero essere i permessi di accesso??? ma io non so come controllarli, il tutto si trova su un server apache locale, li devo verificare tramite win oppure apache e come???

2) problema, dopo aver risolto questo errore e letto il file come posso posizionarmi su $Passord e modificare il parametro???


grazie a chi vorrà prestare un po' del suo tempo per aiutarmi!!
augusto
 
Si ho provato, ma non succede nulla, l'ho messa prima della open, devo forse metterla dopo: prima della read???
L'istruzione che ho inserito prima della open è: chmod("config.php", 0777);
Mi sai dire come controllare i permessi di accesso su apache in locale???

Ho provato a pubblicare la pagina su un server apache in rete, ed ho settato a 777 i permessi di accesso della cartella e dello script, ma il risultato non cambia

ciao
augusto
 
Ultima modifica:
non so che dirti,
ho letto su phpnet che a volte il segno \n provoca problemi.
prova a toglierlo...

oppure potrebbe essere che devi scrivere 'r+' e non "R+" . Come saprai i server apache sono case-sensitive (cioè fanno differenza tra maiuscole e minuscole...

Per controllare i permessi esistono le funzioni booleane
is_writable ( string filename )
is_readable( string filename )
is_executable( string filename )
 
Hai ragione, il problema era dato dal tipo di operazione R+; con r+ funziona. Poichè non conosco php mi aiuto moltissimo con i siti che contengono dei manuali, in uno di essi avevo trovato una tabella con le operazioni possibili con l'istruzione di apertura, e li il carattere era maiuscolo!!! e poichè apache è case sensitive mi sono guardato dal modificarla!
grazie
augusto
 

Discussioni simili