8x bewertet

Klick-Counter ohne MySQL

von Kolibri  |  01.03.2008 um 14:30 h
Skriptverwendung
Typ: Skriptverwendung
Stufe:Einfach
Ich gehöre zu den glücklichen, die leider kein mySQL in Tabellen ausgeben können. Für alle Mitleidenden gibt′s hier ein Klickcounter.

Als erstes erstellst du die Seite funktionen.php3
Wichtig!:
Bei count.txt und count.php3 den kompletten Pfad angeben, also z.B. http://www.deineseite.de/ordner/count.txt



<?php


$dbfile 
"http://../count.txt";
$url2script "http://../count.php3"

function 
insertall() {
global 
$dbfile;
$datei fopen($dbfile"r");
$text "<table width=\"30%\"><tr>";
while(
$zeile fgetcsv($datei1000"|")):
$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($datei1000"|")):
$erg[$zeile[0]] = $zeile[2];
endwhile;
endif;
echo 
$erg[$id];
}

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


?>



count.txt ist einfach nur eine leere Seite mit CHMOD 666. count.php3 sieht wiefolgt aus:


<?php

$dbfile 
"count.txt"#Pfad zu count.txt
$adminpass "login"#Das Passwort zum Administrieren
$scripturl "$PHP_SELF"#Oder kompletten Pfad angeben


if($action=="admin"):
if(
$password != $adminpass && $password != ""):
die(
"Falsches Passwort");
endif;
if(
$just == "yes"):
setcookie("password"$password);
endif;
?>
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<title>Klick-Counter</title>
</head>
<body>
<center>
<?php
if($password == ""):
echo 
"<p><form action=\"$scripturl?action=admin\" method=\"POST\"\n>";
echo 
"Passwort:<input type=password name=password><br><input
type=submit name=submit value=LogIn><br><br>\n"
;
echo 
"<input type=hidden name=just value=yes>";
echo 
"Bitte das Passwort eingeben!</p></center></body></html>";
exit;
elseif(
$newid != ""):
$datei fopen($dbfile"a");
fputs($datei$newid "|" $newurl "|" $startcount "\n");
fclose($datei);
echo 
"<p>Eintrag erfolgreich<br><a
href=\"$scripturl?action=admin\">Zurück</a></p></center></body></html>"
;
exit;
elseif(
$editid != ""):
if(
$editurl != ""):
$datei fopen($dbfile"r");
while(
$zeile fgetcsv($datei1000"|")):
if(
$zeile[0] == "$editid"):
$erg[] = "$editid|$editurl|$editcount\n";
else:
$erg[] = "$zeile[0]|$zeile[1]|$zeile[2]\n";
endif;
endwhile;
fclose($datei);
$datei fopen($dbfile"w");
$count 0;
while(
$erg[$count] != ""):
fputs($datei$erg[$count]);
$count++;
endwhile;
fclose($datei);
echo 
"<p>Neue ID hinzugefügt.<br><a
href=$scripturl?action=admin>Zurück</a></p></center></body></html>"
;
exit;
else:
$datei fopen($dbfile"r");
while(
$erg=fgetcsv($datei1000"|")):
if(
$erg[0] == $editid):
echo 
"<p><form action=$scripturl?action=admin method=post>\n";
echo 
"ID: $erg[0]<input type=hidden name=editid
value=\"$editid\"><br>\n"
;
echo 
"URL: <input type=text name=editurl value=\"$erg[1]\"><br>\n";
echo 
"Anzahl: <input type=text name=editcount
value=\"$erg[2]\"><br>\n"
;
echo 
"<input type=submit name=submit
value=Ändern>\n</p></center></body></html>"
;
break;
else:
continue;
endif;
endwhile;
endif;
exit;
elseif(
$delid != ""):
$datei fopen($dbfile"r");
while(
$zeile fgetcsv($datei1000"|")):
if(
$zeile[0] == $delid):
continue;
else:
$erg[] = "$zeile[0]|$zeile[1]|$zeile[2]";
endif;
endwhile;
fclose($datei);
$datei fopen($dbfile"w");
$count 0;
while(
$erg[$count] != ""):
fputs($datei"$erg[$count]\n");
$count++;
endwhile;
fclose($datei);
echo 
"<p>Löschen erfolgreich<br><a
href=$scripturl?action=admin>Zurück</a>"
;
exit;
else:
$datei fopen($dbfile"r");
echo 
"<p><table border=1 width=90%>\n";
echo 
"<tr><td width=25%>ID</td><td width=50%>URL</td><td
width=8%>Anzahl Downloads</td><td width=*%>Aktionen</td></tr>\n"
;
while(
$erg fgetcsv($datei1000"|")):
echo 
"<td width=25%>$erg[0]</td><td width=50%>$erg[1]</td><td
width=8%>$erg[2]</td><td width=*><a
href=$scripturl?action=admin&editid=$erg[0]>Edit</a>|<a
href=$scripturl?action=admin&delid=$erg[0]>Delete</a></td></tr>\n"
;
endwhile;
echo 
"</table><form action=$scripturl?action=admin method=post>\n";
echo 
"ID:<input type=text name=newid><br>\n";
echo 
"URL:<input type=text name=newurl value=\"http://\"><br>\n";
echo 
"<input type=text name=startcount value=0><br>\n";
echo 
"<input type=submit name=submit value=Anlegen>\n";
echo 
"</center></body></html>";
exit;
endif;
endif;

$datei fopen($dbfile"r");
while(
$zeile fgetcsv($datei1000"|")):
if(
$zeile[0] == $id):
$togo $zeile[1];
$zahl $zeile[2];
$zahl++;
$foundid='1';
else:
$erg[] = "$zeile[0]|$zeile[1]|$zeile[2]\n";
endif;
endwhile;
fclose($datei);
if(!
$foundid) die( 'ID wurde nicht gefunden!');


$datei fopen($dbfile"w");
fputs($datei"$id|$togo|$zahl\n");
$count 0;
while(
$erg[$count] != ""):
fputs($datei$erg[$count]);
$count++;
endwhile;
fclose($datei);


if(
$type == "refresh"):
echo 
"<meta http-equiv=\"refresh\" content=\"0; URL=$togo\">";
exit;
endif;
header("Location: $togo");

?>



Das Passwort lautet im Moment login. Um Beiträge hinzuzufügen, nach dem Hochladen aller Dateien auf die count.php3-Seite gehen (http://www.deineseite.de/count.php3?action=admin) und dort einloggen. Anschließend unten die URL zur Seite und ID eingeben.
Damit das jetzt auch gezählt wird, muss der Link so geschrieben werden (# durch die ID ersetzen, ggf. kompletten Pfad eingeben):


<a href="count.php3?id=#">Link</a> 




Wenn du die Anzahl der Klicks auf deiner Seite einfügen möchtest, füge auf der betreffenden Seite folgendes ein (mit komplettem Pfad).


<?php include("funktionen.php3"); ?>



Dort, wo die Zahl erscheinen soll, muss der Code hin. Nicht vergessen, # durch die betreffende ID zu ersetzen!


<?php insertone("#"); ?>




Wichtig!:
Link zum Adminstrationsbereich:
http://www.???.de/count.php3?action=admin




34 Kommentare




Nekoji

Für ein Tutorial wird da aber arg wenig erklärt.
am 01.03.2008 um 15:57 Uhr


Pinoy

häää bei mir geht das nicht mit den count.php3 , also ich kann das nicht hochladen :S
am 02.03.2008 um 14:31 Uhr


Kolibri

Hast du es ohne das "3" am Ende versucht? Vielleicht geht es dann ja auch, ich hab es noch nicht ausprobiert.
am 02.03.2008 um 17:28 Uhr


Pinoy

hab versucht aber kommt nur ne lere seite :(
am 02.03.2008 um 18:56 Uhr


Sasuke

vll hast du vergessen das da zu machen:

count.txt

ich habs auch noch nicht selber versucht ^^
am 02.03.2008 um 20:20 Uhr


Xelios

Der Code ist aber stark veraltet duhu...
am 02.03.2008 um 20:36 Uhr


Pinoy

@sasuke : nein ich hab alles gemacht , auch diesen count.txt Smilie hmm
am 03.03.2008 um 07:22 Uhr


Murderprincess

Bei mir kommt leider eine parse error meldung Smilie
am 03.03.2008 um 14:14 Uhr


Pinoy

@Murderprincess
xD wenigstens kommt bei dir was *heulend rausrent*
am 03.03.2008 um 14:55 Uhr


ich kenn mich mit php zwar kaum aus.. aber fehlt bei der count.php3 nicht am ende noch
?>

^^'' ?
und der html-code wird auch nicht zu ende geführt..?!
am 03.03.2008 um 21:26 Uhr


ach mist.. ich bin blond.. das mitm html-code geht zurück x_x
am 03.03.2008 um 21:27 Uhr


Pinoy

oooh man das geht immer noch nicht Smilie Smilie *sich in der Ecke verkriecht*
am 04.03.2008 um 06:58 Uhr


Kolibri

Ich habe jetzt alles genauso eingefügt, wie ich es auch bei mir habe (abgesehen vom PW) - und da funktioniert es ja...
am 04.03.2008 um 15:30 Uhr


Kolibri

Ahso - habt ihr vielleicht den CHMOD vergessen? [666] Also auf die txt-Datei.
am 04.03.2008 um 15:33 Uhr


Murderprincess

jetzt sagt er mir

ID wurde nicht gefunden!


Smilie
am 04.03.2008 um 16:17 Uhr


Pinoy

ja bei mir zeig das dann auch an :Hier link

@KrulezZ: hast du das auch mit der 3 am ende gemacht ??

am 04.03.2008 um 16:55 Uhr


Kolibri

Ja, klaro. Ich hab auch keine ?> am Ende, das funzt so auch ganz gut. ;)
am 04.03.2008 um 17:13 Uhr


Pinoy

hää aber ich kann dann die datei nicht hochladen Smilie Smilie
am 04.03.2008 um 17:16 Uhr


Sadako

also bei mir kommmt auch immer
ID wurde nicht gefunden!
und einloggen oder so kann ich mich da garnicht Smilie
Hier *klick*
am 30.03.2008 um 13:54 Uhr


Das Script funktioniert nur wenn register_globals = on.
Bei den meisten Servern ist das aber fast immer off, sicherheitshalber ...
am 30.03.2008 um 18:38 Uhr


Kolibri

Okay, es tut mir Leid, ich hab den "Fehler" gefunden, ich habe vergessen, die Adresse zum Einloggen aufzuschreiben.
http://www.???.de/count.php3?action=admin
am 07.04.2008 um 11:44 Uhr


Soweit hat alles bei mir geklappt (denke ich zumindest ^^), aber die Anzahl der Klicks lässt sich nicht auf der Seite einfügen. Wo genau mache ich denn
<?php include("funktionen.php3"); ?> hin? Ich komme einfach nicht dahinter, was ich schon wieder falsch gemacht habe :P
am 15.04.2008 um 12:07 Uhr


Bei mir zeigt er die Klicks nicht an. Außerdem ist da irgendwoe ein fehler, aber irgendwie finde ich ihn nicht. Da steht immer:

/usr/export/www/vhosts/funnetwork/hosting/strawberryfreak/funktionen.php3 on line 22

Warning: fopen(http://strawberryfreak.funpic.de/count.txt) [function.fopen]: failed to open stream: no suitable wrapper could be found in /usr/export/www/vhosts/funnetwork/hosting/strawberryfreak/funktionen.php3 on line 22

Warning: fgetcsv() expects parameter 1 to be resource, boolean given in /usr/export/www/vhosts/funnetwork/hosting/strawberryfreak/funktionen.php3 on line 23
Smilie Ich bin verzweifelt ...
am 15.04.2008 um 12:34 Uhr


Nochmal kurz zu meinem Kommentar da oben Smilie
Also, ich füge diesen Code dorthin, wo die Klicks stehen sollen und ersetze # auch durch die ID

<?php insertone("#"); ?>


Aber was rauskommt, ist nur die fehlermeldung, die ich oben geschriebn habe ...
Wenn ich den code nicht einfüge, dann klappt alles Smilie
ich brauceh Hilfe (:
am 15.04.2008 um 16:54 Uhr


Nochmal kurz zu meinem Kommentar da oben Smilie
Also, ich füge diesen Code dorthin, wo die Klicks stehen sollen und ersetze # auch durch die ID

<?php insertone("#"); ?>


Aber was rauskommt, ist nur die fehlermeldung, die ich oben geschriebn habe ...
Wenn ich den code nicht einfüge, dann klappt alles Smilie
ich brauceh Hilfe (:
am 15.04.2008 um 17:02 Uhr


Kolibri

Wo du auf deiner Seite die funktionen.php3 hin includest, ist egal. Und wenn du jetzt die Klicks bei einem Download hinter dem Link zählen willst, müsste das so aussehen, wenn die ID=123 ist:
<a href="count.php3?id=123">Link</a>
<?php insertone("123"); ?>
am 23.04.2008 um 15:38 Uhr


Kittey

Ich würde mal sagen das der code total unabgeschlossen ist weil bei mir sieht das so aus Oo hier klicken
am 23.09.2008 um 13:44 Uhr


Kittey

mom jez sieht so aus xD hier klicken
am 23.09.2008 um 13:52 Uhr


bei mir geht alles,
ausser das auf der Eintragen-Seite obendran
Warning: Cannot modify header information - headers already sent by (output started at /srv/www/web428/html/count.php3:2) in /srv/www/web428/html/count.php3 on line 14

steht und wenn ich was eintrage, zeigt es mir wieder die Login-Seite an ..
am 04.11.2008 um 21:08 Uhr


tema

ich finds toll Smilie bei mir klappt auch alles
aber ich wollte mal fragen ob man das so machen kann das da ein bild ist und dann dadrunter der counter d.h wie z.b bei The-peril bei den Affilates
am 18.02.2009 um 19:13 Uhr


Kolibri

Ja, klar! Wenn du es so wie bei Peril haben willst, musst du bloß eine Tabelle erstellen und pro Zelle halt das Bild einfügen, dann ein Zeilenumbruch und dort dann den entsprechenden Code für den Counter

<?php insertone("#"); ?>


(siehe oben) benutzen.
am 25.02.2009 um 18:24 Uhr


Fr34k

Bei mir klappt alles wunderbar Smilie
am 16.03.2009 um 14:37 Uhr


hm.
a) kann ich keine .php3 dateien öffnen, egal welchen browser ich benutze,

b) selbst wenn ich die dateien nur als .php uploade, kommt "id nicht gefunden!"

bin bei pytal... vll mögen die mich einfach nicht o.o
am 04.04.2009 um 13:21 Uhr


Miss_Jennii

Bei mir kommt ständig bei dem /count.php3?action=admin die fehlermeldung "id wurde nicht gefunden!" .. ich hab alles so, wie′s hier steht. Chmod usw auch ˆˆ aber es geht einfach nicht o.o
am 26.08.2010 um 19:29 Uhr