webForumDet fria alternativet

varför, skrivs inget i logfilen

PHP

2 svar · 199 visningar · startad av perp

Medlem sedan apr. 200331 inlägg
Frågan#1

Får inte detta "script" för att kolla hur många som klickar på länkar att fungera.

Jo det fungerar som redirekt, och det öppnar textfilen som skall logga, men det skivs inget (eventuell gammal text tas bort) i filen.


$COUNT_FILE = "c:\\Inetpub\\home\\xxx.xx\\click_count\\clicks_counter_data.txt";
	// En: Absolute path and name to count data file.
	// Fr: Chemin absolu (complet) et Nom du fichier compteur.

// End  Necessary Variables section
/******************************************************************************/

function error ($error_message) {
	echo $error_message."<BR>";
	exit;
}

$url = urldecode($QUERY_STRING);

if (! file_exists($COUNT_FILE))
	error("Can't find file, check '\$COUNT_FILE' var...");

if ((! $url) || (! preg_match("/http:/", $url))) error ("Invalid url, you chould add url ex: <A HREF=\"http://$SERVER_NAME$PHP_SELF?[url]http://www.ftls.org/\[/url]">[url]http://[/url]$SERVER_NAME$PHP_SELF?[url]http://www.ftls.org/[/url]</A>");

$file_arry = file($COUNT_FILE); //or error("Can not open \$COUNT_FILE");
        
while (list($key, $val) = each($file_arry)) {
	if ($val != "") {
		list($file_url, $nb) = preg_split("/\t|\n/", $val);
		if ($file_url == $url) { 
			$nb++; $file_arry[$key] = "$file_url\t$nb\n"; $find = 1;
		}
	}
}

$file = join ("", $file_arry);
if (! $find) $file .= "$url\t1\n";

$fp = fopen("$COUNT_FILE", "w"); //or error("Can not open \$COUNT_FILE");
flock($fp, 1);
fputs($fp, $file);                                                     
flock($fp, 3);
fclose($fp);
header("Location: $url");

?>
Medlem sedan juni 20008 205 inlägg
#2

Det är det andra argumentet det är fel på ("w"). RTFM: http://se.php.net/fopen

Medlem sedan apr. 200331 inlägg
#3

Nja, det är väl något mer som är galet, använder jag ("a") så funkar skrivning till filen men då blir ju det gamla kvar och så skrivs både det gamla och nya en gång till.

Om jag då tömmer filen så den före är "tom" skrivs inget till filen !? Den förblir "zero"

Meningen är väl att läsa filen lägga den i en array och sedan skriva resultatet till filen.

252 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)