Newsgroup: it.comp.www.php
Titolo: su scrittura file .txt

Salve,
sono assolutamente alle prime armi con PHP, quindi non mi massacrate...
:-)
la mia č una domanda immagino banale, ma non essendo sufficientemente
pratico (ho letto appena appena una ventina di pagine sul PHP...), non so
come muovermi.
Dunque: vorrei scrivere in un file di testo che risiede sul server
l'indirizzo IP, il tipo di browser, l'ora e la data in cui l'utente č
entrato nella pagina. Facendo qualche ricerca, ho trovato che per stabilire
l'indirizzo IP č possibile utilizzare questa istruzione condizionale:
<?php
if(getenv("HTTP_X_FORWARDED_FOR")){ 
                $ip=getenv("HTTP_X_FORWARDED_FOR"); 
        } 
        else{ 
                $ip=getenv("REMOTE_ADDR"); 
        } 
?>
Ho ritenuto di poter aggiungere (ma non so se č corretto) questo script a quello precedente:
$nomefile = "riepilogo.txt";
$oggi = (date("l dS of F Y ( h:i:s A )", time()));
$fp = fopen($nomefile, "a+");
$contenuto = $oggi+\n+$ip+\n;
fwrite($fp, $contenuto);
fclose($fp);
Lo script (cioč, lo script che risult dall'unione dei due script precedenti) si trova in una cella di tabella HTML ed č delimitato da <?php  e   ?>.
Ho modificato i permessi di scrittura del file e ho avuto accesso alla pagina rinominata con estensione .php: 
il risultato potrebbe essere qualcosa che ha a che vedere con l'IP, cioč un numero di tre cifre, ma nient'altro.
Potreste dirmi quali sono i miei errori principali?
Molte grazie,
Mauro "Newbie"

 $contenuto = $oggi+\n+$ip+\n;
$contenuto = $oggi."\n".$ip."\n";
Il concatenatore č il punto . non il +.
Ciao.
-- 
Federico R.

 wrote in message
1w8p5hpjyj6fi$.jwnvmxxq48q9.dlg@40tude.net...


 per il resto ritieni che il metodo adottato sia corretto?
Per quanto riguarda il recupero dell'ip quelle poche volte che mi č
servito ho usato:
$ip = getenv ("REMOTE_ADDR");
Non so dirti nulla riguardo HTTP_X_FORWARDED_FOR.
Relativamente all'accesso al file per sicurezza aggiungerei qualche
controllo:
$nomefile = 'riepilogo.txt';
$oggi = date("l dS of F Y ( h:i:s A )");
$contenuto = $oggi."\n".$ip."\n";
$fp = fopen($nomefile, 'a+');
if ($fp) {
	flock($fp, 2); # Lo blocco
	fwrite($fp, $contenuto);
	flock($fp, 3); # Lo sblocco
	fclose($fp);
} else { 
 
	echo 'Non riesco ad accedere al file';
}
Spero possa esserti utile e di non aver fatto errori.
L'approccio mi sembra corretto. L'unica cosa č che se lo script ha
l'unico scopo di memorizzare l'ip e la data del visitatore non č
necessario metterlo in una cella di una tabella. Puoi benissimo metterlo
prima del codice html o ancora meglio usare un include e mettere il
codice in un'altra pagina. Per esempio:
<? include 'memorizza_ip.php'; ?>
<html>
<head>
<body>
...
E nel file memorizza_ip metti il codice di cui sopra. Ogni volta che
richiami quella pagina memorizzi l'ip. Naturalmente IMHO e soprattutto
non so se c'č dell'altro, quindi ciň che ho scritto potrebbe a priori
non essere fattibile.
Ciao.
-- 
Federico R.

 non so se c'è dell'altro, quindi ciò che ho scritto potrebbe a priori


Ciao,
ha funzionato senza l'include e con la correzione riguardante la
concatenazione.
L'include non va, sto cercando di capire il perché, comunque già questo è un
risultato utile.
Ancora grazie,
Mauro nb

 risultato utile.
La pagina in cui è presente l'include deve avere estensione .php,
altrimenti il server non interpreta il codice. Assicurati inoltre che il
percorso del file sia corretto.
Se il problema persiste posta il codice e l'eventuale errore segnalato.
Ciao.
-- 
Federico R.