Gå til innhold

Live oppdaterende hit counter (hjelp!)


Anbefalte innlegg

Her er da scriptet for å vise tallene i div taggen

<?php echo GetHits(); ?>

 

Her er funksjonen

<?php

 

function RecordHit()

{

$filename = "./data.txt"; //the file to store data to

$CurrentHits = file_get_contents($filename); //open the file, and get the number

$NewHits = file_put_contents($filename, $CurrentHits + 1); //store the new hit value to the file

}

 

function GetHits()

{

$filename = "./data.txt"; //the file to open

return file_get_contents($filename); //return whatever amaount of hits we have

}

 

?>

 

Hvordan kunne jeg gjort det slik at tallene oppdateres automatisk på en enkel måte uten å måtte trykke refresh hver gang?

 

Jeg prøvde meg frem og testet

<?php

 

while(true)

{

sleep(1);

echo GetHits();

}

 

?>

men det fungerte åpenbart ikke, endte bare opp med en lang linje med tall som fortsatte å vokse :p Som dere kanskje skjønner så har jeg ingen erfaring med php whatsoever.

Endret av Farmatyr
Lenke til kommentar
Videoannonse
Annonse

et hit er jo en sidevisning.. så skjønner ikke helt hvorfor du vil ha det uten å trykke f5? og hva gjør det vanskelig å bruke den koden du allerde har? jeg synes den ser ganske kompakt of lett ut...

 

Det du evt kan gjøre er å legge til en auto refresh meta tag som kjører hvert x sec?

<meta http-equiv="refresh" content="600">

 

med den i toppen av html sida så vil jo siden refreshes hvert 10 minutt.. Ikke sikker på om det var dette du spurte om men...

Lenke til kommentar

Er ikke sikker om jeg svarer på riktig nå, men etter å ha utviklet litt asp.net, så er det noe som heter updatepanel som er en ajax kontroll.

 

Vil tro at det skal være mulig å bruke ajax for å lage noe som oppdaterer den hitsen uten at du trenger å refreshe siden. Litt usikker, for har ikke brukt det i php.

Lenke til kommentar

et hit er jo en sidevisning.. så skjønner ikke helt hvorfor du vil ha det uten å trykke f5? og hva gjør det vanskelig å bruke den koden du allerde har? jeg synes den ser ganske kompakt of lett ut...

 

Det du evt kan gjøre er å legge til en auto refresh meta tag som kjører hvert x sec?

<meta http-equiv="refresh" content="600">

 

med den i toppen av html sida så vil jo siden refreshes hvert 10 minutt.. Ikke sikker på om det var dette du spurte om men...

Greia er at hit counteren er en viktig del av siden, og jeg ønsker at man skal kunne se den oppdateres sekundet en annen person kommer inn på siden.

 

Er ikke sikker om jeg svarer på riktig nå, men etter å ha utviklet litt asp.net, så er det noe som heter updatepanel som er en ajax kontroll.

 

Vil tro at det skal være mulig å bruke ajax for å lage noe som oppdaterer den hitsen uten at du trenger å refreshe siden. Litt usikker, for har ikke brukt det i php.

 

Hostmonster.com har ikke støtte for asp/ajax etc. siden de kjører linux servere. Er det noe annet alternativ?

Lenke til kommentar

Du trenger et JavaScript som skriver innholdet av fila til siden hvert sekund. Her er et kjapt et:

Siden:

<script type="text/javascript" src="counter.php"></script>
<?php RecordHit(); ?>
Antall folk: <div id="folk">Laster...</div>

 

Counter.php:

function oppdater(){
<?php
$filename = "./data.txt"; //the file to open
echo "document.getElementById('folk').innerHTML = '". file_get_contents($filename)."';";
?>
setTimeout("oppdater();", 1000);

}
oppdater();

 

Absolutt ikke testet, så det kan hende at det ikke funker.

Endret av Intramin
Lenke til kommentar

Ajax er en kombinasjon av klient- og server-scripting, så dersom serveren støtter PHP, noe jeg antar den gjør siden du poster her, så "støtter" den ajax. Ajax med jQuery eller andre bibliotek er for øvrig utrolig enkelt.

 

$(function(){
setInterval(function(){
	$.get('http//..', {}, function(response){
		$('#hitcount').html(response);
	});
}, 1000);
});

(Fullstendig utestet)

 

@Intramin: Hihi, PHP vil skrive ut antallet når siden lastes. Du vil ikke få effekten trådstarter ønsker, med live og dynamisk oppdatering.

Lenke til kommentar
@Intramin: Hihi, PHP vil skrive ut antallet når siden lastes. Du vil ikke få effekten trådstarter ønsker, med live og dynamisk oppdatering.

 

Du la ikke merke til denne kodesnutten? Den gjør at den henter nyeste tall fra serveren hvert sekund:

setTimeout("oppdater();", 1000);

Lenke til kommentar
Ajax er en kombinasjon av klient- og server-scripting, så dersom serveren støtter PHP, noe jeg antar den gjør siden du poster her, så "støtter" den ajax. Ajax med jQuery eller andre bibliotek er for øvrig utrolig enkelt.

 

$(function(){
setInterval(function(){
	$.get('http//..', {}, function(response){
		$('#hitcount').html(response);
	});
}, 1000);
});

(Fullstendig utestet)

 

@Intramin: Hihi, PHP vil skrive ut antallet når siden lastes. Du vil ikke få effekten trådstarter ønsker, med live og dynamisk oppdatering.

Kan du forklare hvordan dette scriptet fungerer og hvor jeg plasserer det? Det hadde vært supert

 

Er meget takknemlig for all hjelp jeg kan få!

Endret av Farmatyr
Lenke til kommentar

Jeg får opp " Parse error: syntax error, unexpected '(', expecting T_VARIABLE or '$' in /home5/sharing2/public_html/justfuckingbingit/index.php on line 121 ", altså første linje i scriptet.

Endret av Farmatyr
Lenke til kommentar

Hmm, jeg finner enda ikke ut hva som er galt. Jonas eller andre med erfaring, kunne dere sett på hva som kan være feilen? Som sagt så har jeg ingen erfaring med .asp/AJAX/php whatsoever.

Endret av Farmatyr
Lenke til kommentar

Off-topic

 

 

Det er min personlige mening at hvis du har tenkt å scripte noe som helst så bør du iallfall forstå de grunnleggende konseptene.

 

Jeg anbefaler at du begynner med noe enkelt og jobber deg opp en forståelse av hvordan programmering virker, både med PHP og med Ajax før du gjør forsøk på å forene de to.

 

 

Lenke til kommentar
Off-topic

 

 

Det er min personlige mening at hvis du har tenkt å scripte noe som helst så bør du iallfall forstå de grunnleggende konseptene.

 

Jeg anbefaler at du begynner med noe enkelt og jobber deg opp en forståelse av hvordan programmering virker, både med PHP og med Ajax før du gjør forsøk på å forene de to.

 

Jeg driver en del med C++, forstår grunnleggende programmering. Jeg ber bare om en enkel tjeneste. Det jeg gjør nå er å begynne med noe enkelt, jeg har allerede fått til en enkel hit counter på siden min, men ønsker å bygge videre på denne ved hjelp fra andre hvor jeg kan da bygge på mine ferdigheter innenfor PHP. Dette er vel også en av grunnene til at dette forumet eksisterer i det hele tatt?

Endret av Farmatyr
Lenke til kommentar

Kunne jeg fått en liten pointer på hva jeg gjør feil her?

 

<script type="text/javascript" src="jquery.js">
<!--
$(function(){
setInterval(function(){
	$.get('./data.txt', {}, function(response){
		$('#apDiv3').html(response);
	});
}, 1000);
});
//-->
</script>

Har ingen errors lenger, nå har jeg kun problemer med å få det til å vises i Div taggen.

Endret av Farmatyr
Lenke til kommentar
Kunne jeg fått en liten pointer på hva jeg gjør feil her?

 

<script type="text/javascript" src="jquery.js">
<!--
$(function(){
setInterval(function(){
	$.get('./data.txt', {}, function(response){
		$('#apDiv3').html(response);
	});
}, 1000);
});
//-->
</script>

Har ingen errors lenger, nå har jeg kun problemer med å få det til å vises i Div taggen.

 

har du en div som heter 'apDiv3' da ?

Lenke til kommentar
Kunne jeg fått en liten pointer på hva jeg gjør feil her?

 

<script type="text/javascript" src="jquery.js">
<!--
$(function(){
setInterval(function(){
	$.get('./data.txt', {}, function(response){
		$('#apDiv3').html(response);
	});
}, 1000);
});
//-->
</script>

Har ingen errors lenger, nå har jeg kun problemer med å få det til å vises i Div taggen.

 

har du en div som heter 'apDiv3' da ?

Ja :hmm:

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...