Zit hier nu al twee dagen naar te kijken maar ik kom er echt niet achter:
Ik heb een function gemaakt die het aantal views update van een bericht.
Simpeler zou niet kunnen zou je denken, maar het lijkt wel of deze functie meerdere malen wordt aangeroepen bij het openen van de pagina.
Nu heb ik mijn volledige source al doorzocht op het gebruik van deze functie, maar hij wordt echt alleen maar in de index.php gebruikt.
Hier wordt het id van het bericht samen met het huidige aantal views uit de database de functie ingeschopt.
Nu is het zo dat ik de query die wordt uitgevoerd bij het lezen van een bericht heb gecheckt, maar die is goed. Hierin staat netjes het gewenste aantal views en de query geeft ook geen fout. Zelfs alle queries laten echo'en, maar ook daar staat de update maar 1 keer tussen.
Nu verdenk ik mijn .htaccess van het veroorzaken van dit probleem:
Deze leest de URLs zoals http://URL/news/8/Bericht-2.html en pakt hieruit de 8 welke het ID van het nieuwsbericht is.
In de index wordt het bericht opgepakt zoals hieronder (nogmaals) te zien is.
De reden dat ik de .htaccess verdenk is het feit dat als ik een bericht bekijk er netjes 1 view wordt bijgezet, maar zodra ik de pagina herlaad is dat nummer opeens met nog 2 views geupdate.
Ik heb een function gemaakt die het aantal views update van een bericht.
PHP:
1
2
3
4
5
6
7
| function AddHit($id, $views) { $idnews = intval($id); $newViews = intval($views) + 1; # Updating the views $this->pDatabase->run_query( "UPDATE news SET views = $newViews WHERE idnews = $idnews" ); } |
Simpeler zou niet kunnen zou je denken, maar het lijkt wel of deze functie meerdere malen wordt aangeroepen bij het openen van de pagina.
Nu heb ik mijn volledige source al doorzocht op het gebruik van deze functie, maar hij wordt echt alleen maar in de index.php gebruikt.
PHP:
1
| $pNews->AddHit($idnews, $NewsMessage[0][views]); |
Hier wordt het id van het bericht samen met het huidige aantal views uit de database de functie ingeschopt.
Nu is het zo dat ik de query die wordt uitgevoerd bij het lezen van een bericht heb gecheckt, maar die is goed. Hierin staat netjes het gewenste aantal views en de query geeft ook geen fout. Zelfs alle queries laten echo'en, maar ook daar staat de update maar 1 keer tussen.
Nu verdenk ik mijn .htaccess van het veroorzaken van dit probleem:
code:
1
| RewriteRule ^(news)/([1-9]+)/([a-z1-9-]+) index.php?news=$1&idnews=$2&title=$3 [nc] |
Deze leest de URLs zoals http://URL/news/8/Bericht-2.html en pakt hieruit de 8 welke het ID van het nieuwsbericht is.
In de index wordt het bericht opgepakt zoals hieronder (nogmaals) te zien is.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
| if( isset($_REQUEST['idnews']) ) { # Getting the id of the news requested. $idnews = intval($_REQUEST['idnews']); $NewsMessage = $pNews->GetNews($idnews); $pNews->AddHit($idnews, $NewsMessage[0][views]); ?> <h3><?php echo($NewsMessage[0][title]);?></h3> <p><?php echo($NewsMessage[0][message]);?></p> <?php } ?> |
De reden dat ik de .htaccess verdenk is het feit dat als ik een bericht bekijk er netjes 1 view wordt bijgezet, maar zodra ik de pagina herlaad is dat nummer opeens met nog 2 views geupdate.
[ Voor 0% gewijzigd door MuddyMagical op 19-01-2012 22:03 . Reden: Rare uitleg gewijzigd. ]