Damp Skrevet 2. juni 2009 Del Skrevet 2. juni 2009 (endret) 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 Som dere kanskje skjønner så har jeg ingen erfaring med php whatsoever. Endret 2. juni 2009 av Farmatyr Lenke til kommentar
[kami] Skrevet 2. juni 2009 Del Skrevet 2. juni 2009 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
TeisL Skrevet 2. juni 2009 Del Skrevet 2. juni 2009 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
Damp Skrevet 2. juni 2009 Forfatter Del Skrevet 2. juni 2009 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
BlueEAGLE Skrevet 2. juni 2009 Del Skrevet 2. juni 2009 PHP kjører på tjenersiden. Det du vil ha er en dynamisk oppdatering på klientsiden. Ergo er ikke PHP rett verktøy for denne jobben. Lenke til kommentar
Intramin Skrevet 2. juni 2009 Del Skrevet 2. juni 2009 (endret) 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 2. juni 2009 av Intramin Lenke til kommentar
Jonas Skrevet 2. juni 2009 Del Skrevet 2. juni 2009 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 Skrevet 2. juni 2009 Del Skrevet 2. juni 2009 @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
Damp Skrevet 2. juni 2009 Forfatter Del Skrevet 2. juni 2009 (endret) 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 2. juni 2009 av Farmatyr Lenke til kommentar
Jonas Skrevet 2. juni 2009 Del Skrevet 2. juni 2009 Du la ikke merke til denne kodesnutten? Den gjør at den henter nyeste tall fra serveren hvert sekund: setTimeout("oppdater();", 1000); Nei, det gjør den ikke. Foreslår du tester koden din, jeg. Lenke til kommentar
Damp Skrevet 2. juni 2009 Forfatter Del Skrevet 2. juni 2009 (endret) 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 2. juni 2009 av Farmatyr Lenke til kommentar
Intramin Skrevet 2. juni 2009 Del Skrevet 2. juni 2009 Du la ikke merke til denne kodesnutten? Den gjør at den henter nyeste tall fra serveren hvert sekund: setTimeout("oppdater();", 1000); Nei, det gjør den ikke. Foreslår du tester koden din, jeg. Ojjj, så det nå ja... Da sier vi at koden min ikke fungerer. Lenke til kommentar
Damp Skrevet 2. juni 2009 Forfatter Del Skrevet 2. juni 2009 (endret) 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 2. juni 2009 av Farmatyr Lenke til kommentar
BlueEAGLE Skrevet 2. juni 2009 Del Skrevet 2. juni 2009 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
Damp Skrevet 2. juni 2009 Forfatter Del Skrevet 2. juni 2009 (endret) 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 2. juni 2009 av Farmatyr Lenke til kommentar
Damp Skrevet 2. juni 2009 Forfatter Del Skrevet 2. juni 2009 (endret) 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 2. juni 2009 av Farmatyr Lenke til kommentar
bonedawg Skrevet 3. juni 2009 Del Skrevet 3. juni 2009 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
Damp Skrevet 3. juni 2009 Forfatter Del Skrevet 3. juni 2009 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 Lenke til kommentar
Wackamole Skrevet 3. juni 2009 Del Skrevet 3. juni 2009 (endret) har du lastet ned jquery.js fila? EDIT: Hvis ikke, så ligger denne filen her: http://code.google.com/p/jqueryjs/download...mp;downloadBtn= Endret 3. juni 2009 av Famen Lenke til kommentar
Damp Skrevet 3. juni 2009 Forfatter Del Skrevet 3. juni 2009 (endret) har du lastet ned jquery.js fila? EDIT: Hvis ikke, så ligger denne filen her: http://code.google.com/p/jqueryjs/download...mp;downloadBtn= Ja den har jeg lastet inn. Da er det jeg som ikke riktig har forstått hvordan jeg setter opp scriptet? Noen som kanskje ser hva jeg har gjort feil? Endret 3. juni 2009 av Farmatyr Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå