Avatar billede blackscorpion Nybegynder
22. april 2003 - 13:08 Der er 7 kommentarer og
1 løsning

Manglende Counter. ;)

Hey Ekspert brugere.

Jeg står og skal bruge en hurtig counter, nogle der er friske?

Jeg koder selv php, men er ikke vant til at arbejde med at åbne filer osv.

Jeg vil give 100 til den der er frisk. ;)

Den skal bare tælle folk, ved hjælp af en fil. ;)

- TheSpeaker.
Avatar billede tblaster Nybegynder
22. april 2003 - 13:21 #1
The following counts the unique visitor vith help of the ip:

Step 1: This is one of the most important steps. You must rename your webpage from webpage.html to webpage.php, where webpage is the name of your webpage. (If the webpage you're working on is your AU homepage, you may want to consider redirecting webpage.html to webpage.php.)
 
Step 2: Create two files (with the number zero stored in each) in your public_html directory named ip_data.txt and count_data.txt. After you create these two files, be sure to change the permissions on both by entering the command chmod 666 count_data.txt and then chmod 666 ip_data.txt while in a mallard telnet session. (Click on the links if you have questions on how to telnet to mallard or on how to change permissions on a file.)
 
Step 3: In your webpage where you want the counter to appear, insert the following:


  <?php    require '/export/vol2/httpd/htdocs/its/oit/as/client/helpdesk/contents/php/count_tokens.php';    ?>


The code for the count_tokens.php is as follows:

_____________________________________________

<center><H2>
<?php
// get ip address
        if (getenv(HTTP_X_FORWARDED_FOR)){
                $theip=getenv(HTTP_X_FORWARDED_FOR);
        }
        else {
                $theip=getenv(REMOTE_ADDR);
        }
        $ip1 = (int) strtok($theip, ".");
        $ip2 = (int) strtok(".");
        $ip3 = (int) strtok(".");
        $ip4 = (int) strtok(".");
// search ip_data.txt for the ip address.
// if it is there, don't increment counter.
// if it isn't there, add it to the database and increment counter.
        $dphile = "ip_data.txt";
        if(file_exists($dphile)) {
                $inp = fopen($dphile, "r");
// search ip_database for their ip.
                $true=1;
                while(($true != 0) & (!feof($inp))){
                        $address = fgets($inp, 16);
                        $ad1 = (int) strtok($address, ".");
                        $ad2 = (int) strtok(".");
                        $ad3 = (int) strtok(".");
                        $ad4 = (int) strtok(".");
// compare ip to ad.
                        if ($ad1 != $ip1){
                if (feof($inp)) {
                        $true = 0;
                    break;
                        }
                                continue;
                        }     
                elseif ($ad2 != $ip2){
                    continue;   
                            }     
                    elseif ($ad3 != $ip3){
                                                continue;
                                        }     
                        elseif ($ad4 !== $ip4){
                                                        continue;
                                                }
                            else {
                                break;
                            }
                }
// if they're same, don't update counter.
                if ($true == 1){
                        $dfile = "count_data.txt";
                        if(file_exists($dfile)) {
                                $inf  = fopen($dfile, "r");
                                $count = fread($inf, 10);
                                $count = (int)$count;
                                fclose($inf);
                                echo "Welcome back!<br>  You are unique visitor number ";
?><font color=green>
<?php
                                echo "$count" . "</font> to this page.";
?></font>
<?php
                        }
                        else {  echo "File, $dfile, not found!";
                        }
                }
// if they're diff, update counter
                else {
// add $ip to ip_data.txt.
                        $outp = fopen($dphile, "a");
                        fputs($outp, $theip);
                        fputs($outp, "\n");
                        fclose($outp);
// increment counter.
                        $dfile = "count_data.txt";
                        if(file_exists($dfile)) {
                                $inf = fopen($dfile, "r");
                                $count = fread($inf, 10);
                                $count = (int)$count;
                                $count++;
                                fclose($inf);
                                $outf = fopen($dfile, "w");
                                fputs($outf, $count);
                                fclose($outf);
                        }
                        else {  echo "File, $dfile, not found!";
                        }
?>
                        Hello.  You've never been to this page from your current IP address.<br>  You are the <font color=green>
<?php
                        echo $count; 
                        $rem = $count % 10; 
                        if (($rem >= 1) && ($rem <= 3)) {
                                if(($count >= 11) && ($count <= 13)) {
                                        echo "th ";
                                }
                                else {
                                        switch ($rem) {
                                                case (1):  { echo "st ";  break;}
                                                case (2):  { echo "nd ";  break;}
                                            case (3):  { echo "rd ";  break;}
                                                default :  { break; }
                                        }
                                }
                        }
                        else { echo "th ";
                        }
?>
</font>
<?php
            echo "unique visitor to this page. <br>";
                }
        }
        else {
                echo "File, $dphile, doesn't exist!";
        }
?>
</center></b></h2></em><br>
</H2></center>

_____________________________________________
Avatar billede blackscorpion Nybegynder
22. april 2003 - 19:11 #2
den counter er WAY for stor.
Avatar billede schaefner Juniormester
22. april 2003 - 19:25 #3
<?php
$fil = "counter.txt";
$open = fopen($fil,"r");
$counter = fread($open,filesize($fil));
fclose($open);
$counter++;
echo "$counter";
$write = fopen($fil,"w");
fwrite($write, $counter);
fclose($write);
?>
Avatar billede blackscorpion Nybegynder
22. april 2003 - 19:33 #4
kigger lige på det i morgen er nødt til at smutte.
Avatar billede tblaster Nybegynder
22. april 2003 - 19:36 #5
Den eneste kode du skal have på din side er da:

<?php    require '/export/vol2/httpd/htdocs/its/oit/as/client/helpdesk/contents/php/count_tokens.php';    ?>


Alt det andet er da bare en ekstra fil du skal have på webhotellet!
Avatar billede blackscorpion Nybegynder
24. april 2003 - 17:40 #6
tblaster -> det jeg søger, er bare et lille script til at åbne en fil og så opdatere et tal i denne osv.

jeg er bare ikke selv vant til at arbejde med filer, da jeg oftes bruger mysql, men min ven, som hoster sin side på friserverplads, har opdaget af de har rimelig mange problemer med mysql, så derfor ville jeg så lave det med en fil i stedet.

;)
Avatar billede blackscorpion Nybegynder
24. april 2003 - 17:45 #7
schaefner -> hvis jeg nu vil hive nummeret ud af filen, er det så bare:

<?
$fil = "counter.txt";
$open = fopen($fil,"r");
$counter = fread($open,filesize($fil));
fclose($open);

echo $counter;
?>

???????
Avatar billede schaefner Juniormester
25. april 2003 - 00:21 #8
ja, eller bare:
<?
include("counter.txt");
?>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester