PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : counter von anderem server


koerschgen2001
03.09.2004, 22:28:55
wie funktioniert eigentlich das prinzip von den kostenlosen countern im netz. wo man per <img> einen verweis auf den server vom anbieter im quelltext plaziert und man dann da nen counter hat.
da hat man ja kein php im quelltext und trotzdem zählt der.

wie machen die das?

würd sowas gerne auch machen. das ich nem freund dann auf die weise auch nen counter zur verfügung stelle.

yozek
04.09.2004, 13:18:26
Hossa,

also ich habe mir gerade einen Counter von Counter-Kostenlos.de angeschaut.

Die einzubindender Tag sieht so aus

<img src="http://www.counter-kostenlos.net/counter.php?id=29573">


Meine Vermutung sieht so aus:

counter.php wird beim Laden der Seite aufgerufen. Es wird in der Datei überprüft, ob die IP, die gerade den Aufruf tätigt, schon vor einer bestimmten Zeitspanne auch schon aufgerufen hat.

Ist dies nicht der Fall, so wird der interene Counter (wahrsch. über MySQL) für die ID erhöht.

Ist ein Aufruf schon von der IP innerhalb der Sperre getätigt worden, so wird keine Addition stattfinden.

ISt diese Prüfung getan, so wird aus der Datenbank ausgelesen, welcher Wert in der DB steht. Diese Zahl wird dann mit mithilfe der gesendeten Headern als GIF dargestellt (GDLIB) oder nur zusammenführen von den Zahlen, wobei Zahl 1 1.gif, Zahl 2 2.gif ist und fertig

Eigentlich eine Sache von weniger als 5 Minuten Programmierung

Bei Fragen kannst mich ja gerne anschreiben

yozek
05.09.2004, 02:35:13
erklär das mal näher.ein beispiel oder so. hab nicht wirklich ahnung davon. ich weiss zwar das man im header inforationen senden kann, aber nicht wie.

mfg koerschgen2001


Zuerst einmal die einfachere Variante. Du baust mithilfe von zahlenbildern die zahl nach, die in der DB gespeichert ist.

bsp;
Zahl 1024

Du zerlegst die Zahl in seine Bestandteile mit bsp. folgendem Script und lädst eine IMG Datei direkt:


$zahl = 1024;

for($i=0;$i<strlen($zahl);$i++):
$wert = substr($zahl, $i, 1) ;
print('<img src="' . $wert . '.gif">');
endfor;


so wird zwar nich im header die datei ausgegeben, aber ein funktionierende Zahlenreihe ;)

Und nun die geschichte mit header *fg*



<?php
Header("Content-Type: image/png");
# Hier wird der Header gesendet, der später die Bilder "rendert" ausser png kann auch jpeg dastehen

##################################################
$width = 100; // Später die Breite des Rechtecks
$height = 50; // Später die Höhe des Rechtecks
$img = ImageCreate($width, $height); # Hier wird das Bild einer Variable zu gewiesen
##################################################


##################################################
$black = ImageColorAllocate($img, 0, 0, 0); # Hier wird der Variable $black die Farbe schwarz zugewiesen
$white = ImageColorAllocate($img, 255, 255, 255); # Hier wird der Variable $white die Farbe weiß zugewiesen
# Die drei nullen bestehen aus den RGB-Parametern. 255, 0, 0 wäre z.B. rot. ($img muss am Anfang stehen)
##################################################


##################################################
ImageFill($img, 0, 0, $black); # Hier wird mit ImageFill() das Bild gefüllt an den Koordinaten 0 und 0 mit der Variable $black, also Schwarz
ImageString($img, 2, 26, 20, "1024", $white);
# Die 2 steht für die GD-Lib interne Schriftart (es gibt insgesamt 5, also probierts aus).
# Die 26 steht für die Position von Links, also 26px von Links entfernt.
# Die 20 steht für die Postion von Oben, also 20px von oben entfernt.
# Der Text, ist der, der später im Bild erscheinen soll.
# $white steht für die Farbe die der Text haben soll.
###################################################

ImagePNG($img); # Hier wird das Bild PNG zugewiesen
ImageDestroy($img) # Hier wird der Speicherplatz für andere Sachen geereinigt
?>



HTH

koerschgen2001
05.09.2004, 19:08:51
wenn ich versuche die seite aufzurufen erscheint folgendes:

<br />
<b>Fatal error</b>: Call to undefined function: ImageCreate() in <b>c:foxservwwwtest.php</b> on line <b>8</b><br />

hab auch schon die funktion klein geschrieben, ist das selbe.

Ich hab PHP Version 4.2.1

Was ist los?

chris17
05.09.2004, 19:28:43
Hi,

ruf' mal folgendes Skript auf, ...

<?php
phpinfo();
?>

... und suche in etwa nach diesen Informationen, ...

gd
GD Support enabled
GD Version bundled (2.0.23 compatible)
FreeType Support enabled
FreeType Linkage with freetype
GIF Read Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled

..., wenn Du "GD Support enabled" nicht findest, kannst Du Dir eine entsprechende PHP-Version besorgen, oder Du nimmst die Variante, die yozek schon angedeutet hat:

geschrieben von yozek
St diese Prüfung getan, so wird aus der Datenbank ausgelesen, welcher Wert in der DB steht. Diese Zahl wird dann mit mithilfe der gesendeten Headern als GIF dargestellt (GDLIB) oder nur zusammenführen von den Zahlen, wobei Zahl 1 1.gif, Zahl 2 2.gif ist und fertig

Gruuuuß

koerschgen2001
05.09.2004, 22:34:39
oder nur zusammenführen von den Zahlen, wobei Zahl 1 1.gif, Zahl 2 2.gif ist und fertig

Das klappt bei mir irgendwie nicht.
Ich hab ein Counterscript, dass den Zahlenstand aus einzelen gifs(0.gif,1.gif, 2.gif....) zusammensetzt. Das funzt.
Ich hab jetzt in eine html datei fogendes eingebunden:

<img src="counter.php"> (counter.php ist im selben verzeichnis, alles in localhost)
Nur der zeigt nur das Zeichen für ein nichtanzeigbares bild(blatt mit dem roten kreuz) an. Nicht den counter.

Was mache ich bloß falsch?

yozek
06.09.2004, 10:32:58
WEnn du Counter.php aufrufst, funktioniert es?

Funktioniert es nur in Verbindung mit der Einbindung ins HTML nicht?

Du gibst Counter.php NICHT in einem IMG TAG aus...

koerschgen2001
06.09.2004, 17:27:58
ja counter.php funzt. mein counterscript funktioniert. nur das einbinden in eine andere html datei klappt nicht. auch wenn ich die gifs ausem script nehme und nur die zahlen(text) ausgeben lasse, zeigt der mir in der datei wo das eingebunden ist auch nichts an.

Was heißt Du gibst Counter.php NICHT in einem IMG TAG aus...
So ist das script in die html datei eingebunden
<img src="counter.php">

Was ist falsch was muss ich ändern?

xabbuh
06.09.2004, 19:49:45
Wenn du den Counterstand in der counter.php mit <img src="zahl1.gif"> etc. erzeugst, musst du ihn in der Hauptseite mit

<?php
include("counter.php");
?>

einbinden.

Wenn du den Counter über <img src="counter.php"> einbinden willst, darfst du das Bild des Zählers in der counter.php nur als header an den Browser schicken.