Zum Inhalt springen

Counter selbst programmieren


Empfohlene Beiträge

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 ! :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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:

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 :P

Wenn nicht dann sags dann schreib ich mal schnell en Beispiel...

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 ;):P

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);
}
?>

Link zu diesem Kommentar
Auf anderen Seiten teilen


<?
$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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...