Newsgroup: it.comp.www.php
Titolo: Gestione file in php - domanda da super-newbie

Sto "studiando" da poco php. Ora sto "affrontando" la gestione dei file in 
php.
Ho provato a scrivere un semplicissimo script ma mi restituisce un errore 
quando lo vado ad eseguire sul server.
Lo script è questo:
<?php
$fp = fopen('prova.txt', 'w+');
fwrite($fp, prova di scrittura su file txt da php);
fclose($fp);
?>
L'errore restituito è:
Parse error: syntax error, unexpected T_STRING in 
C:\Inetpub\vhosts\
xxxxxxxxx.it
\httpdocs\gestionefile.php on line 3
Può essere perchè la directory corrente non ha i permessi corretti? (l'ho 
letto nella guida che sto leggendo 'sta cosa dei permessi ma non ho bene 
idea di come funzionino nè di come si cambino...)
Grazie.
-- 
Massy 

 ?>
cosi a occhio prova a sostituire questa
fwrite($fp, prova di scrittura su file txt da php);
con questa
fwrite($fp, 'prova di scrittura su file txt da php');
ciao :)

 Può essere perchè la directory corrente non ha i permessi corretti? 
E' che le stringhe e' bene delimitarle con ' oppure con " se non vuoi far
arrabbiare il parser sintatico :)
Inoltre se vuoi scrivere un file di dimensioni ragionevoli senza troppe
elaborazioni intermedie fai prima ad usare
http://it.php.net/manual/en/function.file-put-contents.php
Ciao,
luigi
-- 
/
+--[Luigi Rosa]--
\
Biggest Black Hole ever Found in Nearby Galaxy.
EVERYBODY PAN..I....................C
    --
fark.com

 
http://it.php.net/manual/en/function.file-put-contents.php
Grazie.

 C:\Inetpub\vhosts\
xxxxxxxxxxx.it
\httpdocs\gestionefile.php on line 4
e' inutile continuare a fare operazioni file se il file non e' stato aperto
correttamente
Usando fopen() sarebbe meglio fare qualcosa del tipo
<?php
if( $fp = fopen('prova.txt', 'w+') ) {
	fwrite($fp, "prova di scrittura su file txt da php");
	fclose($fp);
} else {
	// comportamento del programma in caso di errore dell'apertura del file
}
?>
Ciao,
luigi
-- 
/
+--[Luigi Rosa]--
\
Do you know the one... "All I ask is a tall ship... and a star to
steer her by..." You could feel the wind at your back, about you...
the sounds of the sea beneath you. And even if you take away the
wind and the water, it's still the same. The ship is yours...
you can feel her... and the stars are still there.
    --James Kirk, "The Ultimate Computer"

 eseguito IIS (IUSR_....)
Mi spiegheresti meglio per favore?!
Io ho caricato il file php sullo spazio web dove ho il mio sito. Ho un 
contratto di hosting windows (con hostingperte). Come faccio a "dare alla 
directory dove voglio scrivere i permessi dell'utente con cui viene eseguito 
IIS (IUSR_....)"?! Cosa intendi per utente con cui viene eseguito IIS 
(IUSR_....)?! E cos'è IIS (IUSR_....)?!
Scusa per la niubbiagine! :-(
Grazie. 

 Io ho caricato il file php sullo spazio web dove ho il mio sito.
Se non sei tu l'amministratore della macchina (come spero che tu NON sia, vista
la domanda), devi chiedere all'amministratore di abilitarti i privilegi di
scrittura sulla tua directory da parte di PHP.
Se gli chiedi questo e gli alleghi gli errori della fopen() che hai pubblicato
qui, il sysadmin capira'.
Per spiegare il concetto, ogni programma (inclusi il web server e l'interprete
PHP) in un sistema operativo come Windows viene eseguito con la sicurezza di un
certo utente. L'utente con cui viene eseguito l'interprete PHP (che e' DIVERSO
dall'utente che tu utilizzi per aggiornare i tuoi file!) non ha il permesso di
scrivere nella directory che hai indicato.
Ciao,
luigi
-- 
/
+--[Luigi Rosa]--
\
Un memorandum viene scritto non per informare chi lo legge,
ma per proteggere chi lo scrive.

 E cos'è IIS (IUSR_....)?
È il server http di Microsoft, in maniera del tutto analoga a come 
Apache HTTP Server è il server web di Apache Software Foundation.

 directory che hai indicato.
Sì questo concetto mi è abbastanza chiaro. L'unica cosa che non capisco è 
perchè di default (da quanto ho capito solo sui server windows) l'utente 
"interprete php" :-) non ha i premessi di scrittura sulle directory. 

 directory.
non è l'utente "interprete php" ma l'utente "web server", ed è il 
requisito minimo (ma minimo minimo eh!) di sicurezza,  che tale utente 
non abbia permessi in scrittura nella doc root, se non in determinate 
directory.
Detto questo, come mai la scelta masochistica windows+iis+php ?
windows + iis lasciali alla roba in .NET e ASP 
(e windows lascialo a chi deve usare per forza iis :) ) 

 (e windows lascialo a chi deve usare per forza iis :) )
1) ho fatto una cazzata a scegliere un hosting windows anzichč linux
2) non sono un esperto del web sto ancora muovendo i primi passi (come 
avrete ben capito :-P). Ad es. ho dovuto leggere su wikipedia cosa fosse iis 
:-P.
3) php l'ho appena cominciato a studiare perchč volevo interagire un minimo 
coi db e mi č php mi č parsa una delle soluzioni (per ora sto sudiando le 
basi basi del linguaggio) e comunque mi č sempre piaciuto imparare nuovi 
linguaggi (negli anni della giovinezza :-) con la programmazione lato 
client: java, c, c++, visual basic, ecc. ecc.)
4) sinceramente ad asp avevo provato a dargli un occhio ma non mi ha 
attratto piů di tanto...
5) pensavo di approfondire la mia conoscenza di "programmmazione web" 
approfondendo html e imparando php e javasript principalmente, ma il 
percorso č ancora MOLTO lungo e faticoso... :-) 

 1) ho fatto una cazzata a scegliere un hosting windows anzichè linux 
sei sempre in tempo acambiare, la spesa è abbastanza ridicola

 sei sempre in tempo acambiare, la spesa è abbastanza ridicola
Sì, infatti, al temrine dell'annualità dell'abbonamento del contratto di 
hosting pensavo di passare a linux. 

 hosting pensavo di passare a linux. 
Chiedi se lo puoi cambiare ora oppure apriti un sito con altervista.
Ad ogni modo che vantaggio hai a cambiare? Dal tuo punto di vista non mi 
sembra cambi molto.

 warning.
La riga con l'fopen è sempre quella dello script postato nel  primo post:
$fp = fopen('prova.txt', 'w+');
Oggi mi ha risposto di nuovo l'assistenza dell'hosting (avevo segnalato che 
ricevevo sempre lo stesso errore) scrivendo:
"Gentile cliente,
in su hosting windows, per fornire i permessi richiesti ? necessario dare i 
permessi di scrittura all'utente IIS (web server), risulta che tale permesso 
sia stato fornito ricorsivamente su tutta la cartella httpdocs, pertanto 
anche su tutte le sottocartelle e files, non esiti ad aggiornare il ticket 
per ulteriori controlli."

 ad aggiornare il ticket per ulteriori controlli."
Nessuno si sa spiegare il motivo dell'errore che mi restituisce?!