varför, skrivs inget i logfilen

PHP

2 svar · 209 visningar · startad av perp

Medlem sedan apr. 200331 inlägg
Trådstart#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.

254 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)