Damp Skrevet 2. juni 2009 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
[kami] Skrevet 2. juni 2009 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...
TeisL Skrevet 2. juni 2009 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.
Damp Skrevet 2. juni 2009 Forfatter 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?
BlueEAGLE Skrevet 2. juni 2009 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.
Intramin Skrevet 2. juni 2009 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
Jonas Skrevet 2. juni 2009 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.
Intramin Skrevet 2. juni 2009 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);
Damp Skrevet 2. juni 2009 Forfatter 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
Jonas Skrevet 2. juni 2009 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.
Damp Skrevet 2. juni 2009 Forfatter 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
Intramin Skrevet 2. juni 2009 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.
Damp Skrevet 2. juni 2009 Forfatter 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
BlueEAGLE Skrevet 2. juni 2009 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.
Damp Skrevet 2. juni 2009 Forfatter 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
Damp Skrevet 2. juni 2009 Forfatter 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
bonedawg Skrevet 3. juni 2009 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 ?
Damp Skrevet 3. juni 2009 Forfatter 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
Wackamole Skrevet 3. juni 2009 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
Damp Skrevet 3. juni 2009 Forfatter 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
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å