Premessa sono alle prime esperienze con PHP.
Con molta fatica ho realizzato uno script per scrivere su un file.txt attraverso un form, salvando un determinato numero di messaggi inviati.
Quando eseguo lo script con apache funziona tutto, al contrario, quando viene pubblicato ed eseguito in rete non funziona.
Non capisco perchè?
Segue listato:
<html>
<head>
<title>salvo dati su txt</title>
</head>
<body bgcolor="#ffff99" text="#000000">
<form action="ghost.php" name="form">
Se proprio non sai cosa fare scrivi il tuo nome:
<input type="text" name="nome"> <input type="submit" value="invia">
</form>
<?php
$n = 4; // numero di visite da mantenere
$f = @fopen("ghost.txt", "r");
if($f){
echo "
Dopo aver inviato il primo nome, ricarica la pagina e invia un altro nome, ho impostato la variabile fino a 4 visite.
";
$i=0;
while( !feof($f) && $i<$n-1 ){ // finchè fine del file o il $i< $n-1
$righe[$i] = @fgets($f,4096); // file piccolo! utilizzo array scambio
$i++;
}
@fclose($f); // è importante chiudere il file
$f = @fopen("ghost.txt", "w"); // adesso lo riempio con i nuovi dati.
if($f){
echo "
Bene, questo è il collegamento al merdoso txt: <a href=\"ghost.txt\">ghost.txt</a> Aperto
correttamente. Sto salvando i tuoi dati. ";
$nome=$_GET['nome'];
$ora = $nome."il tuo IP:".$REMOTE_ADDR." alle ore: ".date("d-m-Y G:i:s")." \n";
@fputs($f,$ora); // scrive la frase nel file tramite $f
for ($i=0; $i<count($righe); $i++)
@fputs($f,$righe[$i]);
@fclose($f); // è importante chiudere il file
echo ".......Fatto!";
}
}else{
echo "
Il file ghost.txt non esiste. Lo creo.";
$f = @fopen("ghost.txt", "w");
if($f){
echo "
file <a href=\"ghost.txt\">ghost.txt</a> Aperto
correttamente. Sto salvando i tuoi dati";
$ora = $nome."il tuo IP:".$REMOTE_ADDR." alle ore: ".date("d-m-Y G:i:s")." \n";
$nome=$_GET['nome'];
@fputs($f,$ora); // scrive la frase nel file tramite $f
@fclose($f); // è importante chiudere il file
echo ".......Fatto!";
}else{
echo "
Non posso creare il ghost.txt";
}
}
?>
</body>
</html>