Counter mit IP-Sperre

  • Counter mit IP-Sperre

    Hier mal was aus Google, sehr gut. Nutze ich selber :)


    PHP-Quellcode

    1. <?
    2. // 0=keine Reloadsperre, 1=Reloadsperre
    3. $aktiv = 1;
    4. // Zeit der Reloadsperre in Minuten
    5. $zeit = 1;
    6. // IP-Datei
    7. $ipdatei = "ips.txt";
    8. // Counterdatei
    9. $datei = "counter.txt";
    10. // Anzahl der führenden Nullen
    11. $stellen = 5;
    12. // Festlegen der Bild-Dimensionen
    13. $breite="15";
    14. $hoehe="19";
    15. /////////////////////////////////////////
    16. // IP-Reloadsperre
    17. /////////////////////////////////////////
    18. function pruf_IP($rem_addr) {
    19. global $ipdatei,$zeit;
    20. @$ip_array = file($ipdatei);
    21. $reload_dat = fopen($ipdatei,"w");
    22. $this_time = time();
    23. for ($i=0; $i<count($ip_array); $i++) {
    24. list($ip_addr,$time_stamp) = explode("|",$ip_array[$i]);
    25. if ($this_time < ($time_stamp+60*$zeit)) {
    26. if ($ip_addr == $rem_addr) {
    27. $gefunden=1;
    28. }
    29. else {
    30. fwrite($reload_dat,"$ip_addr|$time_stamp");
    31. }
    32. }
    33. }
    34. fwrite($reload_dat,"$rem_addr|$this_time\n");
    35. fclose($reload_dat);
    36. return ($gefunden==1) ? 1 : 0;
    37. }
    38. /////////////////////////////////////////
    39. // Counter-Abfrage
    40. /////////////////////////////////////////
    41. if (file_exists($datei) && ($aktiv==0 || ($aktiv==1 && pruf_IP($_SERVER['REMOTE_ADDR'])==0))) {
    42. // Falls die Datei existiert, wird sie ausgelesen und
    43. // der dort enthaltene Wert um Eins erhöht.
    44. $fp=fopen($datei,"r+");
    45. $zahl=fgets($fp,$stellen);
    46. $zahl++;
    47. rewind($fp);
    48. flock($fp,2);
    49. fputs($fp,$zahl,$stellen);
    50. flock($fp,3);
    51. fclose($fp);
    52. }else if (!file_exists($datei) && ($aktiv==0 || ($aktiv==1 && pruf_IP($_SERVER['REMOTE_ADDR'])==0))) {
    53. // Die Datei counter.txt existiert nicht, sie wird
    54. // neu angelegt und mit dem Wert 1 gefüllt.
    55. $fp=fopen($datei,"w");
    56. $zahl="1";
    57. fputs($fp,$zahl,$stellen);
    58. fclose($fp);
    59. } else {
    60. // Die Datei existiert zwar, jedoch handelt
    61. // es sich wahrscheinlich um den gleichen Besucher
    62. $fp=fopen($datei,"r");
    63. $zahl=fgets($fp,$stellen);
    64. fclose($fp);
    65. }
    66. $zahl=sprintf("%0".$stellen."d",$zahl);
    67. ?>
    Alles anzeigen



    Hier mal eine Beispielt als Text

    PHP-Quellcode

    1. <?php
    2. include("counter.php");
    3. echo "<font face=Arial color=blue size=5>$zahl</font>";
    4. ?>


    Bei mir hab ich es so gemacht

    PHP-Quellcode

    1. <footer>
    2. <p>Copyright &copy; 2012 &nbsp;&mdash;&nbsp; Counter: <?=$zahl?></p>
    3. </footer>



    Und hier mal was als Bild :)

    PHP-Quellcode

    1. <?php
    2. include("counter.php");
    3. // Hier wird dann der Zähler aus Bildern zusammengesetzt
    4. for($i=0;$i<$stellen;$i++){
    5. $bild_counter=$bild_counter . "<img src=bilder/" . substr($zahl,$i,1)
    6. . ".gif align=absmiddle width=$breite height=$hoehe>";
    7. }
    8. echo $bild_counter;
    9. ?>
    Alles anzeigen



    Hier noch ein Bild wenn es dann fertig ist:
    [Blockierte Grafik: http://b.itslike.me/4f3ceed1ddde3/bild.PNG]


    .::Edit by NurPech: Quelle eingefügt::.
    http://www.selfphp.de/praxisbuch/praxisbuchseite.php?site=229&group=39
    MFG, RevLinux (Follow me on Twitter)
    [About Me: itslike.me ] | [Forum: www.CustomDroid.de]

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von RevLinux ()