Eigenen Counterservice

Hi,
Heute programmieren wir einen eigenen Counterservice, wie hier auf webstylez.net.
Die Datenbank:
CREATE TABLE counter (
id bigint(20) NOT NULL auto_increment,
mail longtext,
name longtext,
homepage longtext,
iplog longtext,
count bigint(20),
cid bigint(20),
PRIMARY KEY (id)
);
OK, jetzt kommen wir zur Aufklärung:

-id wird automatisch vergeben
-iplog ist die IP des letzten Aufrufers
-count ist der Counterstand
-cid ist die Zufallszahl, mit der man den Counter aufruft

Der Rest sollte klar sein...
2. Registrieren

Jetzt kommt unsere 1. PHP-Datei...


<?php
include ('config.php');
$linkhandle = mysql_connect($server, $user, $pw);
mysql_select_db($db, $linkhandle);

srand((double)microtime()*1000000);
$cid = rand(199,24548974);

$query = "INSERT INTO counter (name,mail,count,homepage, cid) VALUES ('$name','$mail','1','$homepage', '$cid')";
mysql_query($query);

echo "Ihre Kundennummer ist '$cid' . Ihren Counter können sie unter <a href="http://www.huhu.de/service/counter.php?cid='$cid'" target="_blank">www.huhu.de/service/counter.php?cid=</a>$cid abfragen."

?>


<form action="<?=$PHP_SELF?>" method=POST>
<input type=text name="name" value="Name">
<input type=text name="mail" value="eMail">
<input type=text name="homepage" value="Homepage">
<input type=submit value="Anmelden">
</form>


Speichert diesen Code als: reg.php


srand((double)microtime()*1000000);
$cid = rand(199,24548974);
Erzeugt die Zufallszahl...

$query = "INSERT INTO counter (name,mail,count,homepage, cid) VALUES ('$name','$mail','1','$homepage', '$cid')";
mysql_query($query);
Schreibt Daten in die Tabelle der Datenbank

3. config.php


<?
$server="localhost";
$user="xxx";
$pw="xxx";
$db = "xxx";
?>

<?
include ('config.php');
$linkhandle = mysql_connect($server, $user, $pw);
mysql_select_db($db, $linkhandle);

$query = "SELECT * FROM counter WHERE cid = ".$cid;
$res = mysql_query($query);
$res_arr = mysql_fetch_array($res);

$ips = explode(";", $res_arr[iplog]);

$a = count($ips);
while($a >= 0){
if($_SERVER['REMOTE_ADDR'] == $ips[$a]) $check_var = true;
$a--;
}

if(!$check_var){

$ips[0] = '';
$iplog = "$REMOTE_ADDR";
$query = "UPDATE counter SET count = count+1, iplog = '$iplog' WHERE arrn = '$arrn'";
mysql_query($query);

}

echo "$res_arr[count]<br>Ein Service von:<br>Dieser HP";

?>


Speichert diese Datei als: counter.php,aber wenn ihr eine grafische schöne Ausgabe haben wollte nehmt den Code:


<?
include ('config.php');
$linkhandle = mysql_connect($server, $user, $pw);
mysql_select_db($db, $linkhandle);

$query = "SELECT * FROM counter WHERE cid = ".$cid;
$res = mysql_query($query);
$res_arr = mysql_fetch_array($res);

$ips = explode(";", $res_arr[iplog]);

$a = count($ips);
while($a >= 0){
if($_SERVER['REMOTE_ADDR'] == $ips[$a]) $check_var = true;
$a--;
}

if(!$check_var){

$ips[0] = '';
$iplog = "$REMOTE_ADDR";
$query = "UPDATE counter SET count = count+1, iplog = '$iplog' WHERE arrn = '$arrn'";
mysql_query($query);

}


$nullstr = str_repeat("0", 8 - strlen($res_arr[count]));
$ausgabe = $nullstr.$res_arr[count];

include("image.php");

?>

Erklärung:



$nullstr = str_repeat("0", 8 - strlen($res_arr[count]));
$ausgabe = $nullstr.$res_arr[count];

macht nichts anderes als den Counter 8-Stellig zu machen, und die freien Stellen mit 0 zu füllen

Dazu müsst ihr dann aber diese Grafiken laden images.zip.

Und braucht noch die Datei image.php:
<?php
header ("Content-type: image/jpeg");
$im = @imagecreatefromjpeg("image.jpg")
or die ("Cannot Initialize new GD image stream");
// $background_color = imagecolorallocate ($im, 255, 255, 255);
$text_color = imagecolorallocate ($im, 233, 14, 91);
$text_color2 = imagecolorallocate ($im, 16, 24, 96);
imagestring ($im, 6, 15, 5, $ausgabe, $text_color);
imagejpeg ($im);
?>
Nun braucht ihr nur noch ein Bild,dass ihr image.jpg nennt:
Hier das Bild
Ihr könnt in dieses Bild auch noch ein Copyright reinmachen ;)!
Flo
Quelle siehe Kommentare

Kommentare

Sunigatsu
Sunigatsu am Sonntag, 23. November 2003 um 17:47

Das Bild sieht man nicht

Flo
Flo am Sonntag, 23. November 2003 um 17:56

okay Fehler behoben

Flo
Flo am Sonntag, 23. November 2003 um 17:56

okay Fehler behoben

Tha Bob
Tha Bob am Sonntag, 23. November 2003 um 18:18

Ist das Tut net geklaut ?
<br>lyrics2003.de/tut1

Morpheus
Morpheus am Sonntag, 23. November 2003 um 18:33

Jo das Tutorial kommt mir auch bekannt vor ( Link von Tha Bob )

Flo
Flo am Sonntag, 23. November 2003 um 18:58

nein,ich hab das System nur mal gesehn :-),aber ist doch cool,aber wenn du guckst sind auch unterschiede im Tut-Script. Außerdem haben es jetzt auch die,die es nicht kannten,aber ich kannte den Link wirklich nicht

Tha Bob
Tha Bob am Sonntag, 23. November 2003 um 19:49

Das kann nur geklaut sein allein wegen dieser ZEile:
<br>$cid = rand(199,24548974);
<br>die ist genau identisch

Tha Bob
Tha Bob am Sonntag, 23. November 2003 um 19:49

UNd das Image ist auch das gleich ;)

Flo
Flo am Sonntag, 23. November 2003 um 19:55

naja gut,aber ich hab sooo wenig Webpoints gekriegt,da hat das kopieren mühe gemacht. Und ich kenne diese Seite wirklich nicht. Nun haben auch die das Tut, die die Site nicht kannten

Flo
Flo am Sonntag, 23. November 2003 um 19:57

dann lasst es löschen, ich will mich nicht zum Verbrecher machen ;)

Tha Bob
Tha Bob am Dienstag, 25. November 2003 um 16:00

nö das bleibt ;D
<br>editiere es dann eben und gib dann halt den Link an von wem du es hast ;))

PhiGi
PhiGi am Samstag, 29. November 2003 um 22:24

Parse error: parse error, unexpected T_STRING, expecting ´,´ or ´;´ in /home/www/htdocs/skate-for-fun.de/MFv3/Counterservice/reg.php on line 13
<br>
<br>
<br>
<br>Warum ????

PhiGi
PhiGi am Montag, 1. Dezember 2003 um 16:12

Problehm gelöst ! Hab mir nun selber einen gecodet ... besser und mit internen Bereich ;) wer intresse an dem ding hat solls hier rein schreiben dann mach ich es hier al tutorial !

Sunigatsu
Sunigatsu am Dienstag, 9. Dezember 2003 um 16:24

Das Bidl sieht man immernoch nicht!

Fireborn
Fireborn am Freitag, 9. Januar 2004 um 14:05

jo schreibs hier rein ;)

Chapter
Chapter am Sonntag, 21. März 2004 um 19:36

Das Teil funktioniert nicht. Ich kann zwar einen Counter erstellen aber es wird kein Counter angezeigt wenn ich auf den Link mit der CID klicke. woran liegt das??

cce
cce am Donnerstag, 30. September 2004 um 00:54

Hallo,
<br>
<br>gibt es derzeit eine möglichkeit das so viel angepreise counter system mit internen bereich zu bekommen??
<br>

cry
cry am Mittwoch, 12. Oktober 2005 um 14:53

@phigi ..

ich bin interessiert!