CyberDemon Geschrieben 19. Februar 2003 Teilen Geschrieben 19. Februar 2003 Hi. Womit kann ich einen Counter selbst programmieren ? PHP, Perl ,oder was anderes? Es gibt zwar massenweise Freeware, aber da ich FI / AE werde, möchte ich mir selber einen basteln. Weiß nur noch nicht in welcher Sprache und wie ich dabei vorgehen soll. Was muß ich denn abfragen, um den Counter zu inkrementieren? Er soll allerdings nicht mitzählen, wenn man auf "Aktualisieren" klickt. Thanx 2 all ! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
-roTekuGeL- Geschrieben 19. Februar 2003 Teilen Geschrieben 19. Februar 2003 öhm ich hab sowas bei Frontpage 6 gesehn mit Default - Bildern und sowas habs aber nie versucht ansonsten kannst du ja mal bei SelfHTML vorbeischaun Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Druid Geschrieben 19. Februar 2003 Teilen Geschrieben 19. Februar 2003 Ja das ganze lässt sich mit PHP bewerkstelligen.. Anbei ein kleines Beispiel eines Counters mit Hilfe einer Textdatei und PHP.. Viel Spaß beim Basteln <?php // Variablen Konfiguration // ==================================== =1; // Default Counter Stand 62.158.244.83=getenv("REMOTE_ADDR"); // Aktuelle IP Adresse von Besucher ="counter.txt"; // Speicherort = 5; // Anzahl der Counter Stellen = FALSE; // Reload ein (TRUE) oder aus (FALSE); = "fehler.png"; // Fehler Grafik Datei ?> Hier sind ein paar Variablen die am Anfang des Scriptes gesetzt werden, diese Variablen werden benötigt damit das Script einwandfrei läuft und das Tutorial einigermassen verstanden werden kann ;-). <?php // Fehler Funktion // ==================================== function error_image() { global ; = GetImageSize(); = ImageCreateFromPNG(); = ImageCreate(, ); ImageCopy(,, 0, 0, 0, 0, , ); imagedestroy(); Header("Content-type: image/png"); ImagePNG(); //error image wird ausgegeben imagedestroy(); exit; } ?> diese Fehler Funktion wird aufgerufen falls ein Fehler in dem Script auftritt. Es wird einfach nur eine Datei geöffnet und ausgegeben werden, diese Datei kann eine beliebige Grösse haben, muss aber im PNG Format vorliegen. Als erstes muss entschieden werden wo der aktuelle Counter Stand gespeichert werden soll, zum Anfang nehmen wir hier einfach eine Textdatei (auch wenn schon manche die Stirn runzeln ;-). <?php // Falls Counterdatei nicht existiert // dann anlegen // ==================================== if (!file_exists()) { if (=fopen(,"w")) { fputs(,":62.158.244.83"); fclose(); } else { error_image(); } ?> Dieser Code-Ausschnitt prüft ob die Counter Datei bereits angelegt ist, oder eine neue Datei angelegt werden muss. Wird die Datei neu angelegt, schreibt der php Code direkt die neue Werte in diese Datei, $count ist der Counterstand, also beim erstmaligen Aufruf 1; $ip ist die IP des Besuchers. <?php } else { // Counter lesen // ==================================== if (list() = file()) { list(,)=split(":",); if (62.158.244.83 != OR == FALSE) { ++ ; // Counter aktualisieren // ===================== if (=fopen(,"w")) { fputs(,":62.158.244.83"); fclose(); } else { error_image(); } } } else { error_image(); } } ?> Sollte die Datei bereits vorhanden sein, werden die alten Daten ausgelesen. Wenn die IP neu ist, oder die Reloadsperre aus ist, werden die neuen Daten direkt in die Datei geschrieben. Wichtig ist das der Doppelpunkt zwischen diesen beiden Daten ist, damit der Counter beim nächsten Aufruf auch die Daten wieder einlesen kann. <?php // Counterstand mit nullen auffuellen // ==================================== = str_pad(, , "0", STR_PAD_LEFT); ?> Falls die Anzahl der Stellen des Counters größer ist, als die Stellenanzahl des aktuellen Wertes, muss die Wert am Anfang mit Nullen aufgefüllt werden. Z.b. käme dann ein Counterstand mit 0004 raus. Leider ist diese sehr nützliche Funktion nur unter PHP4 verfügbar. <?php // Groesse einer Counter Grafik laden // ==================================== = GetImageSize("0.png"); ?> Damit dieser Counter auch wirklich dynamisch ist, wird von einem image die Höhe und Breite ermittelt. Da ja alle Counter Grafiken die gleiche Höhe und Breite haben, gilt diese Größe für alle Grafiken. <?php // Counter Zielbild erstellen // ==================================== = ImageCreate((*), ); ?> Nun wird das Zielbild mit der ImageCreate Funktion benutzt. Dieses Bild gilt als Grundlage für den Counter, auf diese momentan noch leere Bild werden nachher die Counter Grafiken kopiert. <?php // Einzelne Counter Zahlen erstellen // ==================================== for(0=0;0<;0++) { = ImageCreateFromPNG(".png"); ImageCopy(, //Ziel-Bild , //Quell-Bild (*0), //Ziel-Bild x koordinate 0, //Ziel-Bild y koordinate 0, //Quell-Bild x koordinate 0, //Quell-Bild y koordinate , //Quell-Bild x (w) breite ); //Quell-Bild y (h) hoehe imagedestroy(); } ?> Der Kern dieses Scriptes ist der obere PHP-Code. Hier wird in einer FOR Schleife alle Counter Grafiken mit der Funktion ImageCopy auf das leere Bild kopiert. Die Positionen werden dynamisch in jedem Schleifendruchlauf berechnet, so das die Grafiken nebeneinander erscheinen. Die Funktion ImageCreateFromPNG öffnet eine Counter Grafik und liest das Bild aus dieser Datei, am Ende der Schleife wird das Quellbild wieder zerstört weil es nicht mehr gebraucht wird. <?php // Counter ausgeben // ==================================== Header("Content-type: image/png"); ImagePNG(); //counter png wird ausgegeben imagedestroy(); ?> MFG Druid :cool: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
sYnTaxx Geschrieben 19. Februar 2003 Teilen Geschrieben 19. Februar 2003 also ich würde es auch mit PHP bewerkstelligen aber mein Vorschreiber hat das ganze ziemlich "ausführlich/kompliziert" gemacht... Erstelle einfach Sessions und setze dann eine variable auf "Ja!" Checke nun immer bei Aufruf ob die Variable auf Ja gesetzt ist wenn ja dann mache garnix und gebe einfach deine andere Variable aus und wenn nicht auf Ja gesetzt dann addiere 1 und gib aus.... :bimei Ich hoffe du verstehst wenigstens den Ansatz was ich meine :marine Aber als AE bestimmt Wenn nicht dann sags dann schreib ich mal schnell en Beispiel... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Druid Geschrieben 19. Februar 2003 Teilen Geschrieben 19. Februar 2003 *dooh* So ein Mist.. So wärs ja auch gegange.. Halte dich lieber an das was kByte sagt.. Seine Methodik ist ein bisschen einfacher als meine Nichts für Ungut... MFG Druid :cool: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
sYnTaxx Geschrieben 19. Februar 2003 Teilen Geschrieben 19. Februar 2003 Originally posted by Druid *dooh* So ein Mist.. So wärs ja auch gegange.. Halte dich lieber an das was kByte sagt.. Seine Methodik ist ein bisschen einfacher als meine Nichts für Ungut... MFG Druid :cool: hehe ich wollte es auch zuerst so machen wie du das gemacht hast aber hab dann voll probs bekommen von wegen bestimmte Zeit die IP wieder rausnehmen usw. aber hehe wenn dus so hinbekommen hast ist doch gut zeugt von Programmierkenntniss hier mal wie ich das gelöst habe: also erstmal am anfang des codes: <?php session_start(); ?> [/PHP] und dann das an die stelle wo dus einfügen willst: [PHP] <?php // Copyright 2003 by Dominic Arzt - kbyte if ($activ == "true" ) { $datei = fopen("besucher.txt","r+"); $besucher = fgets($datei, 100); echo "Besucher: "; echo $besucher ."<br>"; fclose($datei); } else { $activ = "true"; $datei = fopen("besucher.txt","r+"); $besucher = fgets($datei, 10); $besucher++; rewind($datei); fwrite($datei, $besucher); echo "Besucher: "; echo $besucher ."<br>"; session_register(activ); fclose($datei); } ?> Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Ranger81 Geschrieben 19. Februar 2003 Teilen Geschrieben 19. Februar 2003 <? $zugriff = "zugriffe.txt"; $besuche = @file($zugriff); $aktuelle_besucher = $besuche[0]; $ipdatei = "ips.txt"; $lastbesuch = @file($ipdatei); $ipindatei = $lastbesuch[0]; If ($ipindatei != $REMOTE_ADDR) { ++$aktuelle_besucher; $dh2 = fopen($ipdatei,"w"); @fwrite($dh2, $ip); fclose($dh2); } $dh = fopen($zugriff,"w"); @fwrite($dh,$aktuelle_besucher); fclose($dh); $aktuelle_besucher = str_replace('0','<img src="0.gif">',$aktuelle_besucher); $aktuelle_besucher = str_replace('1','<img src="1.gif">',$aktuelle_besucher); $aktuelle_besucher = str_replace('2','<img src="2.gif">',$aktuelle_besucher); $aktuelle_besucher = str_replace('3','<img src="3.gif">',$aktuelle_besucher); $aktuelle_besucher = str_replace('4','<img src="4.gif">',$aktuelle_besucher); $aktuelle_besucher = str_replace('5','<img src="5.gif">',$aktuelle_besucher); $aktuelle_besucher = str_replace('6','<img src="6.gif">',$aktuelle_besucher); $aktuelle_besucher = str_replace('7','<img src="7.gif">',$aktuelle_besucher); $aktuelle_besucher = str_replace('8','<img src="8.gif">',$aktuelle_besucher); $aktuelle_besucher = str_replace('9','<img src="9.gif">',$aktuelle_besucher); echo $aktuelle_besucher; ?>[/PHP] Ein Counter mit Bilder, wenns keine bilder sein sollen, lass dies eltzen paar img-zeilen weg. Quelle: www.clanscripte.net Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
CyberDemon Geschrieben 19. Februar 2003 Autor Teilen Geschrieben 19. Februar 2003 Wow! Vielen Dank! :uli :uli :uli Werde mich am Wochenende mal drangeben. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MsB Geschrieben 19. Februar 2003 Teilen Geschrieben 19. Februar 2003 Originally posted by |ReDBullet| öhm ich hab sowas bei Frontpage 6 gesehn mit Default - Bildern und sowas habs aber nie versucht ansonsten kannst du ja mal bei SelfHTML vorbeischaun sorry, aber was hat die selfhtml mit php oder sonstigen scripts zu tun? wenn dus nicht weisst lass es einfach. so long, MsB ps: wenn du die stelle in selfhtml findest lass ich mich gern eines besseren belehren. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
oneside Geschrieben 20. Februar 2003 Teilen Geschrieben 20. Februar 2003 selfphp MFG - Oneside - Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.