Avatar billede 4u2x Nybegynder
21. december 2001 - 22:39 Der er 16 kommentarer og
1 løsning

Cookie counter skrevet i PHP

Er der en, som vil være så sød, at lave en cookie counter til mig?

Personen får 30 point for at lave counteren.
Avatar billede 4u2x Nybegynder
21. december 2001 - 22:40 #1
Her er noget af den:

<?
$fil = fopen(\"counter.txt\", \"r\");
$antal = fgets($fil, 1096);//læser de første 1096 byte fra filen
fclose($fil);
echo $antal++;
$fil = fopen(\"counter.txt\", \"w\");
fwrite($fil, $antal);
fclose($fil);
?>
Avatar billede 4u2x Nybegynder
21. december 2001 - 22:53 #2
er der ikke en der har 2 minutter til at lave de for mig?
Avatar billede skolestofdk Nybegynder
21. december 2001 - 22:55 #3
Hvad mener du med cookie counter.?
Avatar billede 4u2x Nybegynder
21. december 2001 - 22:56 #4
en som tæller 1 besøg pr ip
Avatar billede skolestofdk Nybegynder
21. december 2001 - 23:04 #5
Et skud i tågen:  echo \"Du har stemt:\"; fjerner du bare, jeg har sat det, så du lettere kan se om den virker, lige i starten: cookien sletter sig selv efter 24 timer.

<?
if(!$counter) {
setcookie(\"counter\",\"count\",TIME()+86400);)

$fil = fopen(\"counter.txt\", \"r\");
$antal = fgets($fil, 1096);//læser de første 1096 byte fra filen
fclose($fil);
echo $antal++;
$fil = fopen(\"counter.txt\", \"w\");
fwrite($fil, $antal);
fclose($fil);
} elseif($counter) {
echo \"Du har stemt\";
}
?>
Avatar billede skolestofdk Nybegynder
21. december 2001 - 23:06 #6
ups:

<?
if(!$counter) {
setcookie(\"counter\",\"count\",TIME()+86400);

$fil = fopen(\"counter.txt\", \"r\");
$antal = fgets($fil, 1096);//læser de første 1096 byte fra filen
fclose($fil);
echo $antal++;
$fil = fopen(\"counter.txt\", \"w\");
fwrite($fil, $antal);
fclose($fil);
} elseif($counter) {
echo \"Du har stemt\";
}
?>
Avatar billede 4u2x Nybegynder
21. december 2001 - 23:10 #7
der kommer fejlen

Warning: Cannot add header information - headers already sent by (output started at /www/docs/users/testeren/community/include/top3.php:4) in /www/docs/users/testeren/community/menu.php on line 74

som er linjen:

setcookie(\"counter\",\"count\",TIME()+86400);
Avatar billede skolestofdk Nybegynder
21. december 2001 - 23:13 #8
Det er fordi, du avikler noget kode, før cookien bliver sat.!

Prøv at sætte, koden øverst i dit script..
Avatar billede 4u2x Nybegynder
21. december 2001 - 23:14 #9
men hvad hvis jeg vil have vist tallene fra tælleren nederst på den side?
Avatar billede 4u2x Nybegynder
21. december 2001 - 23:24 #10
det virker ikke, lige meget hvor jeg sætter den\"!!!
Avatar billede novellenet.dk Nybegynder
22. december 2001 - 00:38 #11
Indsæt de magiske php-funktioner således:

<?
// Dette skal være allerførst i HELE scriptet, i HELE filen.
ob_start(); // Starter en output-buffer.

... // Placer resten i den rækkefølge du måtte ønske.

// Dette skal være allersidst i HELE scriptet, i HELE filen.
ob_end_flush();
?>

Sådan, nu har du aldrig mere problemer med at sætte headers midt i et script, hvor der er output i forvejen...

ob_start() sørger for at intet bliver outputtet før ob_end_flush() kaldes...
Derefter bliver alt tilrettelagt og outputtet i den rigtige rækkefølge...
Så kan du smide din cookie-counter ind hvor som helst...

Mvh. Madsen
Avatar billede skolestofdk Nybegynder
22. december 2001 - 11:49 #12
Denne skulle virke, efter hensigten:

Denne kode, sætter du øverst, på din side:
<?
if(!$co) {
setcookie(\"co\",\"count\",TIME()+86400);

$fil = fopen(\"counter.txt\", \"r\");
$antal = fgets($fil, 1096);//læser de første 1096 byte fra filen
fclose($fil);
$antal++;
$fil = fopen(\"counter.txt\", \"w\");
fwrite($fil, $antal);
fclose($fil);
}
?>



Denne kode, sætter du der hvor du vil have resultatet til at stå:
<?
$fil = fopen(\"counter.txt\", \"r\");
$antal = fgets($fil, 1096);//læser de første 1096 byte fra filen
fclose($fil);
echo \"Du har idag haft: $antal\";
?>
Avatar billede 4u2x Nybegynder
22. december 2001 - 11:59 #13
Jeg har prøvet det som novellenet.dk sagde, og indsatte også derefter dit (skolestofdk), men der kommer stadig en fejlmeddelelse i linjen:

setcookie(\"co\",\"count\",TIME()+86400);
Avatar billede skolestofdk Nybegynder
22. december 2001 - 12:57 #14
Hvad er fejlmeddelelsen..?

Hvis du sætter denne: ØVERST på din side, skulle der meget gerne ikke komme nogen fejmedelelse:
<?
if(!$co) {
setcookie(\"co\",\"count\",TIME()+86400);

$fil = fopen(\"counter.txt\", \"r\");
$antal = fgets($fil, 1096);//læser de første 1096 byte fra filen
fclose($fil);
$antal++;
$fil = fopen(\"counter.txt\", \"w\");
fwrite($fil, $antal);
fclose($fil);
}
?>

Og denne i bunden af siden, eller hvor du nu vil have resulatet til at stå:
<?
$fil = fopen(\"counter.txt\", \"r\");
$antal = fgets($fil, 1096);//læser de første 1096 byte fra filen
fclose($fil);
echo \"Du har idag haft: $antal\";
?>


Kommed med en URL, til den side hvor du ligger det på:
Avatar billede novellenet.dk Nybegynder
22. december 2001 - 14:39 #15
Mht. den fejlmeddelelse du viste os her på foraet, så skulle tricket med output-bufferen virke...
MEN DEN SKAL VÆRE DET FØRSTE I SCRIPTET OVERHOVEDET....
Der må IKKE være includes eller requires før...

Ellers må du jo sende os fejlmeddelelsen...
Avatar billede 4u2x Nybegynder
23. december 2001 - 18:23 #16
Jeg har fået tælleren til at tælle via mysql, men den viser ikke nogen tal (besøgstal)...

Her er koden:

$coo = $HTTP_COOKIE_VARS[\"4u2x\"];

if($coo != \"4u2x\") {
setcookie(\"4u2x\", time()+86400);
mysql_connect(\"$dbhost\", \"$dbuser\", \"$dbpass\");
mysql_select_db(\"$database\");
$data = mysql_query(\"select hits from taeller\") or die (\"fejl\");
$row = mysql_fetch_array($data);
$hits = $row[hits] + 1;
mysql_query(\"update taeller set hits = $hits\") or die (\"fejl\");}
elseif($coo = \"4u2x\") {
mysql_connect(\"$dbhost\", \"$dbuser\", \"$dbpass\");
mysql_select_db(\"$database\");
$query = mysql_query(\"SELECT * FROM taeller\") or die (mysql_error());
while($row = mysql_fetch_array($query)) {
$hits = $row[\"hits\"];
echo \"Besøg $hits\";}}
?>
Avatar billede 4u2x Nybegynder
26. december 2001 - 21:32 #17
jeg har droppet min counter,så jeg lukket spørgsmålet
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