Christian_ Skrevet 10. oktober 2004 Del Skrevet 10. oktober 2004 har laget en teller på en side for svømmegruppa..... den funker flott men, den øker hver gang man trykker på en link i menyen.... hvordan kan jeg ungå dette? LINK Lenke til kommentar
???????? Skrevet 10. oktober 2004 Del Skrevet 10. oktober 2004 Det finnes mange måter å løse dette på. Dersom du ikke kan mye programmering så er det enkleste å gå til www.hotscripts.com å laste ned en teller. Der kan du få avanserte tellere med grafer ol. Ellers må du skrive noe som hindrer den fra å oppdateres. Opprett f.eks. en session som heter $_SESSION['registrert'], og sett denne til true så fort brukeren er telt. Dersom denne variabelen er like true så skal tellerene ikke oppdateres. Lenke til kommentar
phanti Skrevet 10. oktober 2004 Del Skrevet 10. oktober 2004 En annen kjapp mulighet er å sette en cookie. Hver nettleser blir da telt kun 1 gang, (hvis du ikke har kort expire tid, som gjør cookien ugyldig). Metoden fra ???????? er jo ganske grei, og ikke vanskelig å implementere heller. Lenke til kommentar
Christian_ Skrevet 10. oktober 2004 Forfatter Del Skrevet 10. oktober 2004 ok da veger jeg å bruke metoden som ???????? sa. mine koder lyder slik: counter.php <?php $viewss = file("counterlog.txt"); $views = $viewss[0]; $views++; $fp = fopen("counterlog.txt", "w"); fwrite($fp, $views); fclose($fp); print $views; ?> og en counterlog.txt som inneholder tallene og chmodda til 777. jeg skriver: <?php include ("counter.php"); ?> der jeg skal ha telleren.... hva må jeg forandre på......? Lenke til kommentar
???????? Skrevet 10. oktober 2004 Del Skrevet 10. oktober 2004 Dette er noe vi er litt i mot på PHP delen av forumet, å slavekode for andre. Grunnen til dette er at det ofte er en del ting en må ta hensyn til. Pass på at <?php include ("counter.php"); ?> kommer før all output (før alle html koder). <?php session_start(); $viewss = file("counterlog.txt"); if(!isset($_SESSION['teller'])){ $fp = fopen("counterlog.txt", "w"); $write = fwrite($fp, $viewss[0]++); fclose($fp); if($write){ $_SESSION['teller'] = true; } } ?> Bruk da: <?= $views[0] ?> for å vise antall besøkende. Merk: koden er skrevet direkte her og er ikke testet. Din kode er heller ikke forbedret. Lenke til kommentar
Lemkin Skrevet 10. oktober 2004 Del Skrevet 10. oktober 2004 hvorfor ikke bare skrive til .txt fila om $_GET['side'] ikke er satt? myye lettere Lenke til kommentar
???????? Skrevet 10. oktober 2004 Del Skrevet 10. oktober 2004 hvorfor ikke bare skrive til .txt fila om $_GET['side'] ikke er satt? myye lettere Hva mener du? Lenke til kommentar
Christian_ Skrevet 10. oktober 2004 Forfatter Del Skrevet 10. oktober 2004 Dette er noe vi er litt i mot på PHP delen av forumet, å slavekode for andre. Grunnen til dette er at det ofte er en del ting en må ta hensyn til. vil ikke si at du trenkte å skrive en ny kode til meg...... så du kunne bare sagt hva jeg skulle ha forandret..... mente ikke det spørsmålet slik men alikevel.... koden din fungerte på akuratt samme måte som den gamle.... hva er galt? Lenke til kommentar
???????? Skrevet 11. oktober 2004 Del Skrevet 11. oktober 2004 (endret) Prøv denne: <?php session_start(); $views = file("counterlog.txt"); $views = $views[0]; if(!isset($_SESSION['teller'])){ $views++; $fp = fopen("counterlog.txt", "w"); $write = fwrite($fp, $views); fclose($fp); if($write){ $_SESSION['teller'] = true; } } ?> <?= $views ?> Endret 11. oktober 2004 av ???????? Lenke til kommentar
Christian_ Skrevet 11. oktober 2004 Forfatter Del Skrevet 11. oktober 2004 Prøv denne: <?php session_start(); $views = file("counterlog.txt"); $views = $views[0]; if(!isset($_SESSION['teller'])){ $views++; $fp = fopen("counterlog.txt", "w"); $write = fwrite($fp, $views); fclose($fp); if($write){ $_SESSION['teller'] = true; } } ?> <?= $views ?> skal jeg lime inn <?= $views ?> der jeg vil at telleren skal være?? og skrive: ?php session_start(); $views = file("counterlog.txt"); $views = $views[0]; if(!isset($_SESSION['teller'])){ $views++; $fp = fopen("counterlog.txt", "w"); $write = fwrite($fp, $views); fclose($fp); if($write){ $_SESSION['teller'] = true; } } ?> i counter.php ? er ingen php guru, men forbedrer meg sakte men sikkert Lenke til kommentar
Lemkin Skrevet 11. oktober 2004 Del Skrevet 11. oktober 2004 (endret) Jeg ser (eller så) at han har et includescript som bruker $side/$_GET['side']. Om jeg leste rett så mente du at du ikke vil legge til i telleren for hver gang noen reloader siden din sant? Prøv noe sånn: if (!isset($_GET['side'])) { // her legger du inn det som skrive til fila. } Dette kan du legge i toppen av fila Edit: så jeg hadde skrevet gjestebok Endret 11. oktober 2004 av smoothie Lenke til kommentar
Christian_ Skrevet 11. oktober 2004 Forfatter Del Skrevet 11. oktober 2004 det er nakk om en teller her...... den øker med en hver gang jeg trykker på en link... se link øvert.... finner ikke ut hva jeg kan gjøre med det... Lenke til kommentar
Lemkin Skrevet 11. oktober 2004 Del Skrevet 11. oktober 2004 jo, men når du trykker på en link, så blir $_GET['side'] satt, ergo telleren vil ikke bli oppdatert Lenke til kommentar
Christian_ Skrevet 11. oktober 2004 Forfatter Del Skrevet 11. oktober 2004 fiksa det... laget bare en liten <iframe> enkel løsning men Lenke til kommentar
???????? Skrevet 11. oktober 2004 Del Skrevet 11. oktober 2004 jo, men når du trykker på en link, så blir $_GET['side'] satt, ergo telleren vil ikke bli oppdatert Skjønner fortsatt ikke hva du mener, på den måten vil ikke brukere bli telt dersom de kommer direkte inn på en under side hvor GET er satt. I tillegg så vil de fotsatt telles to ganger om de trykker oppdater på hovedsiden. Forklar gjerne hva du mener? Lenke til kommentar
Christian_ Skrevet 11. oktober 2004 Forfatter Del Skrevet 11. oktober 2004 kan noen fortelle meg hvorfor det står: Notice: Undefined index: side in /mnt/home3/c/ch/chs89/public_html/test2/index.php on line 15 på toppen av siden når jeg går inn?gjorde jo ikke det i går..... har ikke forandret på noe utenom telleren.... LINK Lenke til kommentar
???????? Skrevet 11. oktober 2004 Del Skrevet 11. oktober 2004 få se scriptet ditt. Lenke til kommentar
Christian_ Skrevet 11. oktober 2004 Forfatter Del Skrevet 11. oktober 2004 hehe..... følte meg litt ute igjen scriptet? kodene til index.php??? er her: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <link href="style.css" type="text/css" rel="stylesheet"> </head> <body> <div align="center"> <table width="800" cellspacing="1" cellpadding="0"> <tr> <td height="100" colspan="3"><? include("header.php"); ?></td> </tr> <tr> <td width="184" valign="top"><? include("meny.php"); ?></td> <td width="427" valign="top" valign="right" style="border-left-width:1px; border-left-style:dashed; border-left-color:#000000; border-right-width:1px; border-right-style:dashed; border-right-color:#000000; border-bottom-width:1px; border-bottom-style:dashed; border-bottom-color:#000000;"><?php $side = $_GET['side']; if (!empty($side)) { include "$side.php"; } else { include "hoved.php"; } ?></td> <td width="184" valign="top"><? include("menyleft.php"); ?></td> </tr> <tr> <td colspan="3"><? include("footer.php"); ?></td> </tr> </table> </div> </body> </html> var det riktig? håper det Lenke til kommentar
Christian_ Skrevet 13. oktober 2004 Forfatter Del Skrevet 13. oktober 2004 aaaaaarg! fikk et annet problem! i explorer så teller telleren en gang når man trykker på en link, selv om den er i iframes... det skjer ikke i opera.... men de fleste som lester siden bruker nok explorer siden de ikke kan noe om data og explorer er med xp... hva må jeg gjore da? for at telleren bare skal telle en gang per besøker... Lenke til kommentar
Christian_ Skrevet 14. oktober 2004 Forfatter Del Skrevet 14. oktober 2004 (endret) ingen som vet hva jeg må gjøre?? og hvorfor skjer det bare i explorer? EDIT: går det f.eks ann å få telleren til bare å telle på en spesiell addresse? Endret 14. oktober 2004 av chs89 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å