Avatar billede onkelmor Nybegynder
29. september 2004 - 19:44 Der er 5 kommentarer og
1 løsning

Atter et counter spørgsmål?

Jeg vil gerne have min tæller til at lade vær med at lægge en til når man opdaterer siden.
Jeg har søgt på eksperten, og fandt noget med cookies, men ved ikke helt hvordan de bruges. Jeg har sat min counter ind i en else  sætning.

<?
// Counter
if($gyldig){
    //Gør intet
} else {
$fil = fopen("taeller.txt", "r");
$antal = fgets($fil, 1096);
fclose($fil);
$antal++;
echo "Du er nummer ".$antal." her på siden.";
$fil = fopen("taeller.txt", "w");
fwrite($fil, $antal);
fclose($fil);
setcookie("gyldig",500);
}
?>

Ved som sagt ikke præcist hvad der skal stå i setcookie(????)
Avatar billede acid-head Nybegynder
29. september 2004 - 19:46 #1
Du kan gøre således:

<?
// Counter
if($_COOKIE["gyldig"] == "false"){
    //Gør intet
}
else
{
  $fil = fopen("taeller.txt", "r");
  $antal = fgets($fil, 1096);
  fclose($fil);
  $antal++;
  echo "Du er nummer ".$antal." her på siden.";
  $fil = fopen("taeller.txt", "w");
  fwrite($fil, $antal);
  fclose($fil);
  setcookie("gyldig","false",time()+3600);
}
?>
Avatar billede acid-head Nybegynder
29. september 2004 - 19:47 #2
Den sætter en cookie som hedder "gyldig", der indeholder en værdi "false" og udløber efter en time.. (De 3600 sekunder)
Avatar billede acid-head Nybegynder
29. september 2004 - 20:18 #3
<?
if(!isset($_COOKIE["gyldig"]))
{
  setcookie("gyldig","false",time()+3600);
  $fil = fopen("taeller.txt", "r");
  $antal = fgets($fil, 1096);
  fclose($fil);
  $antal++;
  echo "Du er nummer ".$antal." her på siden.";
  $fil = fopen("taeller.txt", "w");
  fwrite($fil, $antal);
  fclose($fil);
}
?>

Dette er vist lidt bedre ;)
setcookie skal før du outputter noget.
Avatar billede onkelmor Nybegynder
29. september 2004 - 22:20 #4
Jeg får denne fejl når det er uploadet:
Warning: Cannot modify header information - headers already sent by (output started at /usr/home/web/web9076/prog/film/index.php:12) in /usr/home/web/web9076/prog/film/index.php on line 33

Har du en email så jeg kan sende indholdet af hele siden til dig?
Avatar billede acid-head Nybegynder
30. september 2004 - 00:45 #5
Du kan placere, den del af scriptet som tjekker og sætter cookien øverst i dit dokument. setcookie skal nemlig være før noget output.

Så kan du bare senere hive besøgstallet ud, og vise det..?
Avatar billede coderdk Praktikant
30. september 2004 - 19:25 #6
Hvis du vil have at den skal tælle op hver gang du reloader siden, skal du ikke bruge noget med cookies...

Med denne mister du ikke data hvis der f.eks. kommer to samtidige brugere:

$antal = @file_get_contents( "taeller.txt" );
$antal++;
echo "Du er nummer $antal her på siden.";
$fil = fopen("taeller.txt", "w");
if ( flock( $fil, LOCK_EX ) )
{
  fwrite( $fil, $antal );
  flock( $fil, LOCK_UN );
}
fclose( $fil );

Altså, filen skal låses når der skrives :)
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