Newsgroup: it.comp.www.php
Titolo: fwrite?

Ciao a tutti,
ho uno script che terra terra fa una cosa del genere:
1) Creo un file "pag.jsp";
2) Genero il codice di "pag.jsp" in una stringa;
3) Salvo la stringa nel file;
4) Redirigo il browser a quel file;
5) Cancello il file.
In php la cosa è più o meno:
1) $handle = fopen("pag.jsp",'w');
2) $code = "bla bla bla";
3) fwrite($handle, $code);
4) header("Location: pag.jsp");
5) unlink("pag.jsp").
Il problema è che la prima volta che richiamo la pagina php tutto
funge. Le volte successive dice di non trovare la pagina "pag.jsp"
secondo me perchè non la crea più.. ma perchè? qual'è il problema?

 5) unlink("pag.jsp").
Ciao,
 ___ 
/_|_\  Umberto Salsi
\/_\/  
www.icosaedro.it

 ha
detto:

Il problema è nella logica dello script, perchè nonostante tu metta
unlink dopo l'header di redirezione, in realtà il file viene
cancellato prima della redirezione e quindi il browser non troverà mai
la pagina, neanche la prima volta. Sicuro che funzioni la prima volta?
Comunque, proprio per evitare errori logici come questo, è
consigliabile terminare lo script con exit() dopo un header location.
Francesco Mazzi
Webmaster di AltroPC.it - 
http://www.altropc.it
 
Dev.Staff di E-Xoopport - 
http://dev.e-xoopport.it

provato non va...

 ..exit() dopo un header location.
e vabbè poi non fa più niente.. quindi non c'è modo di fare una cosa
del genere?

del genere?
Non capisco a cosa possa servirti una cosa del genere, forse c'č un
modo migliore per implementare questa cosa. Se comunque devi
utilizzare una soluzione di questo genere, potresti aprire la pagina
jsp in una nuova finestra del browser, ricaricare la pagina originaria
e cancellare la pagina appena creata. Perň se qualcuno chiude il
browser prima del ricaricamento la pagina non viene cancellata. Non so
se sono stato chiaro.


> Non capisco a cosa possa servirti una cosa del genere
praticamente devo restringere l'accesso a determinati utenti alla
pagina jsp. Vorrei sfruttare direttamente apache con htaccess ecc però
ho tomcat per cui le pagine jsp vengono processate da quest'ultimo e
non da apache per cui la cosa non funge. Ora non voglio creare un login
via web per cui ho pensato di creare la pagina jsp al volo da php che
invece viene processato da apache. Infine non voglio complicarmi la
vita con i realm e filtri vari di tomcat perchè saranno al massimo due
pagine da proteggere. Punto.

praticamente devo restringere l'accesso a determinati utenti alla

Ho capito. Però non riesco a capire come fai a limitare l'accesso
senza una procedura di autenticazione degli utenti.
Ad ogni modo prova la soluzione che ti ho indicato prima.


> Però non riesco a capire come fai a limitare l'accesso
senza una procedura di autenticazione degli utenti
come no? forse mi sono spiegato male.. se voglio limitare l'accesso ad
una pagina htm vado nell'httpd.conf creo una direttiva Directory con
tutte le sue cose belle e il file htpasswd conterrà i vari utenti.
Qualcosa di strano?
riguardo la soluzione precedente non ci ho capito un'acca ;-) e
comunque vorrei evitare di aprire un'altra pagina.

comunque vorrei evitare di aprire un'altra pagina.
 Se vuoi te la rispiego.


 cancellare la pagina appena creata
3) cioè la pagina jsp.. ma allora è la stessa cosa che avevo fatto io
solo che anzichè un'istruzione header ce ne sono due
Mah non credo che erano queste le tue intenzioni.. rispiegamelo thanks

quello che ho capito è:

ok te lo rispiego con una piccola variante, vediamo se è chiaro anche
a me :-)
lo script php genera la pagina jsp, poi manda in output codice html
con un javascript che mi apre una nuova finestra con l'indirizzo della
pagina appena creata, e poi mette un javascript che reindirizza
istantaneamente la pagina con lo script ad un altro script che si
occupa di cancellare la pagina appena creata e reindirizzare con
header location da qualche parte. Non sono sicuro però che
reindirizzando istantaneamente il browser faccia in tempo a caricare
la pagina jsp prima che venga cancellata, penso di sì ma bisognerebbe
fare delle prove, al limite ci metti qualche secondo di attesa. In
questo modo la pagina jsp sarebbe creata e cancellata quasi
istantaneamente ma l'utente farebbe comunque in tempo a vederla.
Ti ho fatto questa variante di reindirizzare ad un altro script per
farti capire, naturalmente è possibile gestire tutto con un unico
script.
Fai delle prove, non sono sicuro che funzioni, tieni anche conto che
non è il massimo della sicurezza, se uno disabilita il javascript la
pagina non viene più cancellata e rimane lì.
p.s. sei un fan dei Dream Theater?


 p.s. sei un fan dei Dream Theater? 
a catena!!

a catena!!
Grande! :-)
