[PHP] teller telt door als met pagina doorgelinkt

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Neptunus
  • Registratie: Januari 2001
  • Laatst online: 23-06 16:04
Ik heb een pagina gemaakt voor een carnavals vereniging. Ik heb de pagina doorgelinkt via een .tk domein. Het vervelende is nu dat de teller op de pagina doortelt, dit gebeurt niet als ik de pagina verschillende keren laad zonder de doorlink. Ik heb op de verschillende pagina rond gekeken, maar ben geen relevante tegen gekomen. Ik ben niet echt thuis in PHP en weet dna ook neit goed waar ik het probleempje moet zoeken.

(links heb ik weggehaalt, de Moderator vond het niet zo leuk)

Nu is mijn vraag, hoe kan ik voorkomen dat de teller niet doortelt (ik heb niet de beschikking over een MySQL database)?

Mijn php script is als volgt
PHP:
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php
if (!$altijddorst_visited) {
setcookie("altijddorst_visited","true",time()+86400);
$fd = fopen ("count.txt", "r");
$text = fread ($fd, filesize ("count.txt"));
fclose ($fd);

$fd = fopen ("count.txt", "w");
$text=$text+1;
fwrite($fd, $text);
fclose ($fd);
}
else
{
$fd = fopen ("count.txt", "r");
$text = fread ($fd, filesize ("count.txt"));
fclose ($fd);
}
echo "<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />
<meta http-equiv=\"Content-Style-Type\" content=\"text/css\" />
<meta http-equiv=\"refresh\" content=\"10;url=http://www.hengelo.nl\">
<title>HOV ALTIJDDORST</title>
</head>
<body style=\"margin: 0 0 0 0px;\" bgcolor=\"#CCCCCC\">
<table width=\"100%\" height=\"100%\">
<tr>
<td style=\"text-align: center; vertical-align: center;\">
[img]\"img.jpg\">
<br>
<b>U[/img]
</td>
</tr>
</table>
</body>
</html>";
?>

[ Voor 42% gewijzigd door Neptunus op 06-11-2003 13:42 . Reden: Moderator ]


Acties:
  • 0 Henk 'm!

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

• Topic prefixed met [php]
• Irri uitroepteken verwijderd uit topic (in je post staan er ook nog een stapel :/ )
• Niets toevoegende links verwijderd
• Wat heb je al zoal geprobeerd, wat denk je dat het probleem is e.d., en wat bedoel je in godesnaam met dat je 'al op de verschillende pagina hebt rondgekeken' :?

Professionele website nodig?


Acties:
  • 0 Henk 'm!

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 04-09 08:16

OkkE

CSS influencer :+

Hmm... heeft misschien iets te maken met globals?
Dat "$altijddorst_visited" daarom nooit een waarde heeft .. :?

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


Acties:
  • 0 Henk 'm!

Verwijderd

Waarom doe je dit met een cooky en niet met een sessie variabele?

Acties:
  • 0 Henk 'm!

  • Xboty
  • Registratie: September 2003
  • Laatst online: 04-09 13:18
waar haal je $altijddorst_visited dan vandaan?

Acties:
  • 0 Henk 'm!

  • Neptunus
  • Registratie: Januari 2001
  • Laatst online: 23-06 16:04
Die gebruik ik om te kijken of de cookie bestaat.

Zou je kunnen uitleggen hoe je je dat voorstelt een sessie variabele?

[ Voor 43% gewijzigd door Neptunus op 06-11-2003 16:01 ]


Acties:
  • 0 Henk 'm!

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 23-08 22:47

dArtagnan

Een voor allen, allen voor een

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
session_start();

if (isset($_SESSION['test']))
{
  echo 'er is een sessie actief';
}
else
{
  echo 'er is (nog) geen sessie actief';
  $SESSION['test'] = 'blaat';
  echo 'nu wel!';
}


Je moet cookies nu ook controleren met $_COOKIE['altijddorst_visited']
Zie voor meer info over sessies ook: http://www.php.net/session

[ Voor 13% gewijzigd door dArtagnan op 06-11-2003 16:19 ]


Acties:
  • 0 Henk 'm!

  • Neptunus
  • Registratie: Januari 2001
  • Laatst online: 23-06 16:04
Koraalduivel schreef op 06 november 2003 @ 16:07:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
session_start();

if (isset($_SESSION['test']))
{
  echo 'er is een sessie actief';
}
else
{
  echo 'er is (nog) geen sessie actief';
  $SESSION['test'] = 'blaat';
  echo 'nu wel!';
}


Je moet cookies nu ook controleren met $_COOKIE['altijddorst_visited']
Zie voor meer info over sessies ook: http://www.php.net/session
Om eerlijk te zeggen begrijp ik niet goed hoe ik deze code nu moet invoegen in mijn scriptje.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 09:15

Janoz

Moderator Devschuur®

!litemod

Probleem waarom het via hettk domein niet werkt en via direct adres intikken wel is omdat je cookie niet wordt geaccepteerd. Bij je tk domein wordt de site waarschijnlijk in een frame geladen en deze mogen volgens de nieuwe security instellingen geen cookie meer zetten als ze van een ander domein komen.

Is trouwens simpel achter te komen waneer je de statusbalk in IE aanzet. Dan zal naast dat wereldbolletje een icoontje comen te staan dat aangeeft dat cookies niet zijn geaccepteerd.

Owh, en sessies hiervoor gebruiken lijkt mij een beetje overkill.

[ Voor 7% gewijzigd door Janoz op 06-11-2003 19:29 ]

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Neptunus
  • Registratie: Januari 2001
  • Laatst online: 23-06 16:04
Janoz schreef op 06 november 2003 @ 19:27:
Probleem waarom het via hettk domein niet werkt en via direct adres intikken wel is omdat je cookie niet wordt geaccepteerd. Bij je tk domein wordt de site waarschijnlijk in een frame geladen en deze mogen volgens de nieuwe security instellingen geen cookie meer zetten als ze van een ander domein komen.

Is trouwens simpel achter te komen waneer je de statusbalk in IE aanzet. Dan zal naast dat wereldbolletje een icoontje comen te staan dat aangeeft dat cookies niet zijn geaccepteerd.

Owh, en sessies hiervoor gebruiken lijkt mij een beetje overkill.
je hebt inderdaad gelijkt, hij geeft heel mooi aan dat het geblockt wordt! Maar de vraag blijft, wat is nu een goede oplossing om dit te voorkomen?

Acties:
  • 0 Henk 'm!

  • Neptunus
  • Registratie: Januari 2001
  • Laatst online: 23-06 16:04
Met wat hulp heb ik dit er uit gekregen. De teller werkt nu prima, alleen krijg je nu in de adres balk van je internet programma wel het adres van de domein te zien en niet die van .tk. Het zal wel niet anders kunnen denk ik. Maar wie weet, kom maar met ideeen zou ik zeggen.

index.php3
code:
1
2
3
4
5
6
7
8
9
10
11
12
<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />
<meta http-equiv=\"Content-Style-Type\" content=\"text/css\" />
<script type="text/javascript">
setTimeout("top.location.href='indext.php3'", 0)
</script>
<title>HOV ALTIJDDORST</title>
</head>
<body>
</body>
</html>

indext.php3
PHP:
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
if (!$altijddorst_visited) {
setcookie("altijddorst_visited","true",time()+86400);
$fd = fopen ("count.txt", "r");
$text = fread ($fd, filesize ("count.txt"));
fclose ($fd);
$fd = fopen ("count.txt", "w");
$text=$text+1;
fwrite($fd, $text);
fclose ($fd);
}
else
{
$fd = fopen ("count.txt", "r");
$text = fread ($fd, filesize ("count.txt"));
fclose ($fd);
}
echo "<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />
<meta http-equiv=\"Content-Style-Type\" content=\"text/css\" />
<meta http-equiv=\"refresh\" content=\"20;url=http://www.hengelo.nl\">
<title>HOV ALTIJDDORST</title>
</head>
<body style=\"margin: 0 0 0 0px;\" bgcolor=\"#CCCCCC\">
<table width=\"100%\" height=\"100%\">
<tr>
<td style=\"text-align: center; vertical-align: center;\">
[img]\"img.jpg\">
<br>
<b><i>U[/img]</b>
</td>
</tr>
</table>
</body>
</html>";
?>

[ Voor 22% gewijzigd door Neptunus op 07-11-2003 13:15 ]


Acties:
  • 0 Henk 'm!

  • chuxiej
  • Registratie: Februari 2001
  • Laatst online: 13-07-2020
Probeer eens iets duidenlijker te scripten.
En gebruik $_COOKIE ;)

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php 
if (!isset($_COOKIE['altijddorst_visited'])) 
{ 
    setcookie("altijddorst_visited", "true", time() + 86400); 
    
    $fd     = fopen ("count.txt", "r"); 
    $text   = fread ($fd, filesize ("count.txt")); 
    fclose ($fd); 

    $fd     = fopen ("count.txt", "w"); 
    $text   = $text+1; 
    fwrite($fd, $text); 
    fclose ($fd); 
} else 
{ 
    $fd     = fopen ("count.txt", "r"); 
    $text   = fread ($fd, filesize ("count.txt")); 
    fclose ($fd); 
} 
echo "<html> 
<head> 
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" /> 
<meta http-equiv=\"Content-Style-Type\" content=\"text/css\" /> 
<meta http-equiv=\"refresh\" content=\"20;url=http://www.hengelo.nl\"> 
<title>HOV ALTIJDDORST</title> 
</head> 
<body style=\"margin: 0 0 0 0px;\" bgcolor=\"#CCCCCC\"> 
<table width=\"100%\" height=\"100%\"> 
<tr> 
<td style=\"text-align: center; vertical-align: center;\"> 
[img]\"img.jpg\"[/img] 
<br> 
<b><i>U bent bezoeker nummer $text</i></b> 
</td> 
</tr> 
</table> 
</body> 
</html>"; 
?> 

www.dannyhiemstra.nl

Pagina: 1