Avatar billede rekun Nybegynder
14. december 2008 - 17:10 Der er 10 kommentarer og
1 løsning

hjælp til besøgstæller

Hej eksperter, jeg er rimelig ny i PHP, og har længe haft min hjemmeside liggende på en WAMP server så jeg selv kunne se den. Men nu har jeg købt et webhotel hos one.com og nu virker min gamle kode ikke helt efter hensigten mere, hvad er der galt?
<?php
session_start();
?>
masse html kode her
<?php;
if ($_SESSION['counter'] == '') {
$counter = file_get_contents("counter.txt");
$counter = $counter +1;
$fil = fopen("counter.txt", "w+");
fwrite($fil, $counter);
fclose($fil);
$_SESSION['counter'] = $counter;
}
echo  "Du er besøgende nummer " . $_SESSION['counter']; //Skriv antallat af hits ud på skærmen
?>

Det skulle i mit hoved få den til at tælle en gang, selvom de opdaterer siden 1000 gange, men det gør det ikke. tallet blir større for hvergang de opdatere, og hvis jeg echo'er sessions variablen counter er den bare tom, somom den ik blir gemt
Avatar billede showsource Seniormester
14. december 2008 - 17:31 #1
De bruger sikekrt register_globals On i php opsætning.

Og så får du problemer når du bruger "samme" navn til forskellige ting.
Prøv med:

<?php;
session_start();

if (!isset($_SESSION['hits'])) {
$counter = file_get_contents("counter.txt");
$new_count = $counter+1;
$fil = fopen("counter.txt", "w+");
fwrite($fil, $new_count);
fclose($fil);
$_SESSION['hits'] = $new_count;
}
echo  "Du er besøgende nummer " . $_SESSION['hits']; //Skriv antallat af hits ud på skærmen
?>
Avatar billede rekun Nybegynder
14. december 2008 - 17:40 #2
desværre det virker ikke :( men hvis jeg lader brugeren logge ind, holder tælleren op med at tælle hele tiden, også selvom de logger ud igen, så det er ik der fejlen ligger
Avatar billede showsource Seniormester
14. december 2008 - 17:49 #3
så er det vel noget andet i din kode som får det til at fejle
Avatar billede showsource Seniormester
14. december 2008 - 18:06 #4
hov,
<?php
og IKKE
<?php;
Avatar billede rekun Nybegynder
14. december 2008 - 18:13 #5
det er ik det desværre.
i kan lige få hele koden her:
<html>
<head>
<title>titel </title>
<link rel="stylesheet" type="text/css" href="style/style.css">

</head>

<body>
<div class="banner"></div>
<?php
session_start();
?>


<div class="menu">
<h4>
<center><b><big><big><FONT COLOR="#cc0000">Menu</FONT></big></big></b></center>
<a href="frontpage.php"><li>Forside</li>
<a href="nyheder.php"><li>Nyheder</li>
<a href="omklubrally.php"><li>Om klubrally</li>
<a href="loeb.php"><li>Løb</li>
<a href="galleri1.php"><li>Galleri</li>
<a href="links.php"><li>Links</li>
<a href="Gaestebog.php"><li>Gæstebog</li>
</h4></a></div><div class="tekst">
<br>
<center><b><big><big><FONT COLOR="#cc0000">Galleri - Side 1</FONT></big></big></b></center>
<br>
<P ALIGN="right"><a href="galleri1.php" class="red">Side 1</a> <a href="galleri2.php" class="red">Side 2</a> <a href="galleri3.php" class="red">Side 3</a> <a href="galleri4.php" class="red">Side 4 </a> </P>
<center>

<a href="billeder/DM_5_Odense_08.jpg"><img src="billeder/smaa/side1/DM_5_Odense_08.jpg" /></a><br><br>
<a href="billeder/DM_6_slagelse.jpg"><img src="billeder/smaa/side1/DM_6_slagelse_08.jpg" /></a>
<a href="billeder/Hammelev_08.jpg"><img src="billeder/smaa/side1/Hammelev_08.jpg" /></a>

</center>
</div>


<?php
if ($_SESSION['brugernavn'] == '') {
include("login.php");
}
else
{
include("login-true.php");
}
?>


<div class="bund">
<?php
if (!isset($_SESSION['hits'])) {
$counter = file_get_contents("counter.txt");
$new_count = $counter+1;
$fil = fopen("counter.txt", "w+");
fwrite($fil, $new_count);
fclose($fil);
$_SESSION['hits'] = $new_count;
}
echo  "Du er besøgende nummer " . $_SESSION['hits']; //Skriv antallat af hits ud på skærmen
?>
</div>


</body>
</html>
Avatar billede showsource Seniormester
14. december 2008 - 18:16 #6
Put din session_start() i toppen af doc, INDEN output til browser.


<?php
session_start();
?><html>
<head>
<title>titel </title>
<link rel="stylesheet" type="text/css" href="style/style.css">

</head>

<body>
<div class="banner"></div>
Avatar billede rekun Nybegynder
14. december 2008 - 19:03 #7
sådan :D kom med et svar, og evt en forklaring hvis du har sådan en :P
Avatar billede dkfire Nybegynder
14. december 2008 - 23:05 #8
Du bør slå fejlbeskeder til i mens du udvilker på siden. One.com har pr default slået fejlbeskeder fra, derfor ser du ikke dine fejl.
Du kan slå fejlbeskeder til i dit kontrolpanel.
Avatar billede showsource Seniormester
15. december 2008 - 16:18 #9
session_start() sætter en header, og der må ikke være noget output til browser før en header sættes.
F.eks.

<html>
<?php
setcookie("noget", "juhu", 0, "/");
?>

Et linieskift eller mellemrum før <?php er også output til browser.
Avatar billede showsource Seniormester
15. december 2008 - 16:18 #10
Avatar billede rekun Nybegynder
16. december 2008 - 12:13 #11
super tak :D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester