Modificare script contor accesari

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
Valentin89
Mesaje: 4

Modificare script contor accesari

Salut as dori sa modific acest script astfel incat in loc sa-mi afiseze vizualizarile sa afiseze doar adresa URL de la site, si de ficare data de cate ori sa accesat sa-l scrie.

Cod: Selectaţi tot

<?php
$filename = "hits.txt";
$count= file($filename);
$count[0]++;
$file = fopen ($filename, "w") or die ("Cannot find $filename");
fputs($file, "$count[0]");
fclose($file);
echo $count[0];
?>

MarPlo Mesaje: 4343
Salut
Cu $_SERVER['REQUEST_URI'] poti prelua adresa curenta a paginii accesate (fara nume domeniu) si o aplici in acel script. Dar trebuie refacut complet daca vrei sa inregistrezi si numarul de accesari la fiecare adresa.
- Poate iti e de folos raspunsul de la: Cerere script salvare adresa pagina accesate in fisier text.

Valentin89 Mesaje: 4
Am ajuns la scriptul asta, am postat si pe forumul php..ai vazut in marea parte ce problema am intampinat am incercat si cu PHP_EOL insa sunt praf, nu stiu nici unde sa-l trec. Scriptul meu isi face treaba exact cum trebuie insa scrie peste si nu insereaza o alta linie..e o tampenie..

Cod: Selectaţi tot

<?php 
if(isset($_SERVER['HTTP_REFERER'])) {
    $ref = $_SERVER['HTTP_REFERER'];
} else {
	$ref = "Accesare directa";
}
$ip = $_SERVER['SERVER_ADDR'];
$filename = "vizite.txt"; 
$count= file($filename); 
$count[0]++; 
$data = 'A venit o vizita din partea : '.$ref.'.  ,Cu IPul : '.$ip.'';
$file = fopen ($filename, "w") or die ("Cannot find $filename"); 
fwrite($file,$data);
fclose($file); 
echo $count[0]; 
?>

MarPlo Mesaje: 4343
Faptul ca scrie peste, sau ca rescrie ce e deja salvat, nu are legatura cu PHP_EOL sau caractere de rand nou "\n". Problema e ca fisierul text e deschis in modul "w" la fopen(), ceea ce face ca la aplicarea fwrite() sa stearga continutul existet si apoi adauga cel nou.
Mai simplu, cu mai putine linii de cod, ar fi cu file_put_contents().
- Vezi cum iti merge acest cod si te poti juca cu el sa-l modifici:

Cod: Selectaţi tot

$ref = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] :'Accesare directa';
$ip = $_SERVER['SERVER_ADDR'];
$file = 'vizite.txt';
$data = PHP_EOL .'A venit o vizita din partea : '.$ref.'.  Cu IPul : '.$ip;
if(file_put_contents($file, $data, FILE_APPEND | LOCK_EX)) echo $data;
else echo 'Unable to save data in:'. $file;

andras Mesaje: 430
Daca totusi vrei sa adauge ceva la sfirsitul fisierului il deschizi pentru scriere cu:

Cod: Selectaţi tot

$file = fopen($filename, "a"); 
iar pentru citire-scriere:

Cod: Selectaţi tot

$file = fopen($filename, "a+"); 

Subiecte similare