/ Forside/ Teknologi / Udvikling / Andet udvikling / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Andet udvikling
#NavnPoint
BertelBra.. 1370
natmaden 870
srhansen 670
_michael_ 510
katekismus 500
MatrixRev.. 500
molokyle 462
refi 370
Teil 328
10  EXTERMINA.. 320
Hitcounter
Fra : gangster50
Vist : 491 gange
50 point
Dato : 03-10-03 21:52

er der nogen der har et script for en simpel hitcounter???

 
 
Kommentar
Fra : CLAN


Dato : 04-10-03 09:00

Uha' der er altså bare SÅ mange af dem "derude", den bedste får du selvfølgelig igennem din udbyder, men her er et enkelt eksempel på hvordan en counter "fabrikeres"
Citat
Før vi kan komme igang med selve counteren skal vi lige have styr på vores back-end, MySQL tabellen som skal håndtere registreringen af hits. Følgende gennemgang antager, at man på forhånd har styr på MySQL, hvis ikke kan man finde en mere uddybende forklaring på den nødvendige syntaks i denne artikel http://www.udvikleren.dk/show_article.php?id=54.

Strukturen: CREATE TABLE <tabel> (id INT NOT NULL AUTO_INCREMENT, hits INT DEFAULT '0', PRIMARY KEY(id))
Opdater hits: UPDATE <tabel> SET hits = hits+1 WHERE id = $id
Aflæs antallet af hits:SELECT hits FROM <tabel> WHERE id = $id
I resten af artiklen antages det, at man allerede har opdateret databasen og gemt antallet af hits i variablen $hits.


HIT COUNTER - TRIN 2 : Baggrunden

Hele ideen med at benytte GDLib er, at slippe for at bruge en masse tid på at klippe og klistre i Photoshop for derefter at samle stumperne i HTML. Ved at benytte GDLib kan vi nøjedes med en jpg-fil, som indeholder counterens grafiske udseende, resten klarer vi med GDLib.

Den billedefil som jeg anvender i dette eksempel kan hentes her http://www.irole.dk/udvikleren/counter/gfx/counter_bg.jpg (88x33 px)


HIT COUNTER - TRIN 3 : Indlæsning af JPEG-fil

Så kom vi endelig til den spændende del af artiklen, selve anvendelsen af GDLib. Det første vi skal gøre er, at oprette et billede fra en fil eller en url. Det gør vi således,//Indlæs en lokal JPEG-fil
$counter_img = imageCreateFromJPEG("counter_bg.jpg");
//Indlæs en JPEG-fil fra en url
$counter_img = imageCreateFromJPEG("http://www.irole.dk/udvikleren/counter/gfx/counter_bg.jpg");
Ulempen ved at indlæse JPEG-filen fra en url er, at webserveren skal downloade denne før vi kan komme videre og det tager tid.


HIT COUNTER - TRIN 4 : Teksten

Nu kan vi benytte GDLib til at skrive vores hits direkte på det billede vi lige hentet, men først bliver vi nødt til at forstå lidt om GDLib's håndtering af fonte og farver. I GDLib er en farve defineret ud fra dens index i billedets farveindex. Skal man anvende en farve skal man derfor enten lokalisere eller allokere farven i indexet.//Allokering af farven sort
$black = imageColorAllocate($counter_img,0,0,0); //(0,0,0) er RGB koden for sort
//Lokalisering af farven sort
$black = imageColorExact($counter_img,0,0,0); //Returnerer -1 hvis farven ikke er allokeret
GDLib har 5 indbyggede bitmap fonte, nummereret 1-5. Ønsker man at anvende andre bitmap fonte skal disse først indlæses. Man kan ligeledes også anvende TrueTypeFonte, men det vil ikke ikke komme ind på her. Vi vil til dette formål anvende font nr. 2.//Her vælges en indbygget font
$font = 2;
Når vi skal skrive i billedet skal vi angive koordinaterne for placeringen af teksten.//Koordinaterne for det øverste venstre hjørne
$dest_x = 10;
$dest_y = 20;
Så kommer vi til selve påførelsen af teksten//Påfør antallet af hits
imageString($counter_img, $font, $dest_x, $dest_y, "Hits: $hits", $black);
HIT COUNTER - TRIN 5 : Returnering af billedet

Nu da antallet af hits er tilføjet mangler vi bare at returnere billedet. Da vi er interesseret i at returnere et billede er det meget vigtigt, at vi sender det som en ren billede strøm. Du må altså under ingen omstændigheder integrere dette script i et større PHP-script eller HTML dokument, med tekstindhold. Det skal være et selvstændigt script.//Først sender vi en header så browseren ved at den får et billede
header("Content-Type: image/jpeg");
//Derefter får vi GDLib til at sende billedet
imageJPEG($counter_img);
HIT COUNTER - TRIN 6 : HTML syntaksen

Det eneste vi nu mangler er, at indsætte vores counter i et HTML dokument. Eftersom vores script (counter.php) returnerer en picture-stream kan vi bare behandle scriptet som ethvert andet billede.//Vis counteren med ID 1
<IMG src="counter.php?id=1" height="33" width="88">
Hvis du har aktiveret register_globals i PHP.ini kan du teste scriptet uden MySQL-delen ved, at benytte linket "counter.php?hits=3330".


fra http://www.udvikleren.dk/article.php?aid=111


Ellers prøv at lave en Google-søgning som denne
http://www.google.dk/search?q=Hit+counter+script&ie=UTF-8&oe=UTF-8&hl=da&btnG=Google-s%C3%B8gning&meta=cr%3DcountryDK

Søren


Kommentar
Fra : gangster50


Dato : 04-10-03 14:13

det skulle bare være en lille en der viste tal... og ikke et billede

Accepteret svar
Fra : natmaden

Modtaget 50 point
Dato : 05-10-03 01:31

Hej gangster50 , nå du har fået låget af kagedåsen
Dette dur kun hvis der er PHP til stæde. gem filen som eks: test.php
Kode
<?
// ------ funktioner til tæller start
function tæl_op_og_gem() {
$counterfile="antal.log";
if (!file_exists($counterfile))
{
$stack=1;
$file=fopen($counterfile,"w+");
fputs($file,$stack);
fclose($file);
} else {
$file=fopen($counterfile,"r");
$tot=fgets($file,20);
   $tot=$tot + 1;
fclose($file);
$file=fopen($counterfile,"w+");
$tot=fputs($file,$tot);
fclose($file);
}
}
// ------
function tæller_hent() {
$counterfile="antal.log";
if (!file_exists($counterfile))
{
// KUNNE IKKE FINDE TÆLLER-FIL
} else {
$file=fopen($counterfile,"r");
$tot= fgets($file,20);
fclose($file);
   return $tot;
}
}
// ------ funktioner til tæller slut
// -----------------------------------
// ------ tæller opdater start
if (!$kommando){
    tæl_op_og_gem();
    echo "Tæller er nu på : ", tæller_hent();
    exit;
    }
if ($komando="-") {
    tæl_op_og_gem();
    exit;
    }
if ($kommando="+"){
    echo "Tæller er nu på : ", tæller_hent();
    exit;
    }
// ------ tæller opdater slut
?>

Scriptet opretter selv en fil til opbevaring af antalet af besøg, dette er en textfil og hvis din tæller skal nulstilles kan du
rette i antal.log, eller slette den. du kan også sætte et startstal ind i antal.log, og så køre tælleren derfra.
Mvh. Natmaden

Kommentar
Fra : gangster50


Dato : 05-10-03 09:38

jeg har skrevet på siden.

Dette er en tæller, først, også kommer det her frem*

Warning: fopen(antal.log): failed to open stream: Permission denied in /var/www/hotels/1go/warezftp/html/test.php on line 18

Warning: fputs(): supplied argument is not a valid stream resource in /var/www/hotels/1go/warezftp/html/test.php on line 18

Warning: fclose(): supplied argument is not a valid stream resource in /var/www/hotels/1go/warezftp/html/test.php on line 19

Tæller er nu på : 500 <--- det er så det jeg har sat den til

Kommentar
Fra : natmaden


Dato : 05-10-03 09:45

prøv ved hjælp af ftp at sætte Permission til 777 på antal.log
så bør den køre

Kommentar
Fra : gangster50


Dato : 05-10-03 09:52

det har jeg gjort men der sker det samme

Kommentar
Fra : natmaden


Dato : 05-10-03 10:05

på hvilken adrasse har du den liggende
den virker hos mig http://net2620.dk/antal.php
Prøv at sætte denne kode ind i starten af test.php
Altså lige efter <? ,,,, det jo nok linie 2..
Kode
$HTTP_GET_VARS = $_GET;
$HTTP_POST_VARS = $_POST;
$HTTP_SERVER_VARS = $_SERVER;
extract($_GET);
extract($_POST);
extract($_SERVER);

ellers må jeg revidere koden lidt, men det er min sengetid nu,, vender tilbage i aften .
Natmaden

Kommentar
Fra : gangster50


Dato : 05-10-03 10:26

på warezftp.1go.dk/test.php

Kommentar
Fra : natmaden


Dato : 02-11-03 11:24

Hmm! Du burde vel have fundet et svar nu!

Kommentar
Fra : natmaden


Dato : 17-12-03 10:05

Du stiller et spørgsmål, men er ikke mere med,
Hvis du er ude og tisse, må det være en ordentlig tår.

Kommentar
Fra : dscoop80


Dato : 01-03-04 14:20

www.chart.dk

Mvh. Cooper

Kommentar
Fra : natmaden


Dato : 12-07-04 20:39

Det altid den der spørger, der ikke er der.

Sørgeligt.

Hvis at jeg havde et spørgsmål, ja så ville jeg da kikke om der var et svar.
ellers ville jeg da følge op på mit spørgsmål,
Personligt syntes jeg, at når man ikke gør det,
så er det som at pisse på folk, der prøver at hjælpe!

Kommentar
Fra : dscoop80


Dato : 12-07-04 22:23

-

Godkendelse af svar
Fra : gangster50


Dato : 29-08-04 17:37

Tak for svaret natmaden.
                        

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177577
Tips : 31968
Nyheder : 719565
Indlæg : 6409071
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste