Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Counter selbst programmieren

Empfohlene Antworten

Veröffentlicht

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

ö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 ;)

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:

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...

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

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


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

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.

selfphp

MFG

- Oneside -

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.