Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Kleines Problem [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Kleines Problem


 
der olli
08-03-2004, 11:14 
 
Hallo,

habe ein Script, welches die Klicks auf Links zählt. Habe dafür auch verschiedene Funktionen wie z.B. die Top 10 Hits anzeigen oder halt hinter dem Link die Klicks anzeigen. In der Datei, wo die ganzen Funktionen deklariert sind, hab ich jedoch ein kleines Problem. Hier mal der Quelltext:

<?php

$dbfile = "data.txt";
$url2script = "counter/count.php3";

function insertall() {
global $dbfile;
$datei = fopen($dbfile, "r");
$text = "<table width=\"30%\"><tr>";
while($zeile = fgetcsv($datei, 1000, "|")):
$text = $text . "<tr><td>$zeile[0]</td><td>$zeile[2]</td></tr>";
endwhile;
$text = $text . "</table>";
echo $text;
}

function insertone($id) {
global $dbfile;
global $erg;
if($erg[$id] == ""):
$datei = fopen($dbfile, "r");
while($zeile = fgetcsv($datei, 1000, "|")):
$erg[$zeile[0]] = $zeile[2];
endwhile;
endif;
echo $erg[$id];
}

function insertlast() {
global $dbfile;
$datei = fopen($dbfile, "r");
$erg = fgetcsv($datei, 1000, "|");
echo $erg[0];
}


function top10() {
global $dbfile, $url2script;
$datei = fopen($dbfile, "r");
$text = "";
while($zeile = fgetcsv($datei, 1000, "|")):
$zahl[$zeile[0]] = $zeile[2];
$url[$zeile[0]] = $zeile[1];
endwhile;
arsort($zahl);
$i='0';
foreach($zahl as $var)
{
if($i=='10') break;
echo "<tr>
<td onMouseOver=\"this.style.backgroundColor='#20242E';\"
onMouseOut=\"this.style.backgroundColor='#282C36';\" bgcolor=\"#282C36\" width=\"100%\">
<font color=\"#FF6600\">_</font>
<a href=\"$url2script?id=" . key($zahl) . "\">" . key($zahl) . "</a> - <? insertone('" . key($zahl) . "') ?></td>
</tr>";
next($zahl);
$i++;
}
}

?>

Es geht mir aber eigentlich nur um den Teil hier:

echo "<tr>
<td onMouseOver=\"this.style.backgroundColor='#20242E';\"
onMouseOut=\"this.style.backgroundColor='#282C36';\"
bgcolor=\"#282C36\" width=\"100%\">
<font color=\"#FF6600\">_</font>
<a href=\"$url2script?id=" . key($zahl) . "\">" . key($zahl) . "</a> - <? insertone('" . key($zahl) . "') ?></td>
</tr>";

Ich will, das hinter dem Link immer noch die Anzahl der Hits steht, aber wenn ich es so wie oben schreibe (<? insertone('" . key($zahl) . "') ?>), erkennt er das PHP nicht? Wie muss ich das umändern? Hoffe mir kann einer helfen! Danke schonmal im Voraus.

 
mrhappiness
08-03-2004, 11:16 
 
warum baust du insertone nicht so auf wie key und rufst das auch genauso auf?

 
wahsaga
08-03-2004, 11:20 
 
wenn du echo verwendest, ist doch wohl anzunehmen, dass du dich bereits in einem <?php ...?>-bereich befindest.

warum dann an der stelle (<? insertone('" . key($zahl) . "') ?>) noch einen neuen eröffnen, das ist doch unfug.

 
der olli
08-03-2004, 11:20 
 
Das hab ich mittlerweile auch begriffen @ Wahsaga :) Wie müsste das denn dann aussehen, habe leider keine Ahnung @ mrhappiness?

 
mrhappiness
08-03-2004, 11:30 
 
du hast doch ne funktion key, die du aufrufst

änder insertone so ab, dass sie vom aufbau her dem von key gleicht

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 23:09 Uhr.