login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Cookie

Offline Frederic - 20/03/2005 18:47 (laatste wijziging 20/03/2005 18:56)
Avatar van FredericPHP ver gevorderde Ik probeer nu met cookies te werken, voor mijn forum. Hier wil ik controleren indien er nieuwe reacties zijn, dan wordt het anders weergegeven, maar ik de topics komen steeds in het vet!
  1. <?php
  2. $reacties_sql = mysql_query("SELECT * FROM forum_reactie WHERE topicid='".$topicid."'");
  3. $reacties = mysql_num_rows($reacties_sql);
  4. if(isset($_COOKIE['FadeToLifeTopic$topicid']))
  5. {
  6. $cookie_var = $_COOKIE['FadeToLifeTopic$topicid'];
  7. }
  8. elseif($cookie_var == $reacties)
  9. {
  10. echo $reacties;
  11. }
  12. else
  13. {
  14. setcookie("FadeToLifeTopic".$topicid, $reacties, time()+3600);
  15. echo "<b>".$reacties."</b>";
  16. }
  17. ?>

(het geheel zit in een while lus)

11 antwoorden

Gesponsorde links
Offline Arnout - 20/03/2005 18:49
Avatar van Arnout HTML beginner volgens mij ben je een '}' vergeten voor de elseif....
Offline Frederic - 20/03/2005 18:52 (laatste wijziging 20/03/2005 22:16)
Avatar van Frederic PHP ver gevorderde Jah juist!
Maar nu blijven de reacties altijd in het vet staan bij mij is niet de bedoeling
EDIT: ondertussen nog eens getest, na het zetten van een nieuwe reactie blijft de opmaak hetzelfde.. wat klopt hier niet aan?
Offline Wijnand - 21/03/2005 09:33
Avatar van Wijnand Moderator 1. if(isset($_COOKIE['FadeToLifeTopic$topicid'])) moet dan zijn
if(isset($_COOKIE['FadeToLifeTopic'.$topicid]))

2. elseif($cookie_var == $reacties). het kan aan mij liggen maar volgens mij heeft die $cookie_var geen waarde omdat hij bij de if wordt aangemaakt. Dus als die if niet wordt uitgevoerd dan wordt hij aangeroepen maar heeft de $cookie_var geen waarde.

3. bij die elseif vind ik het ook raar dat je het id (wat er in zou moeten staan of niet?) vergelijkt met het aantal reacties. Of lees ik dit fout?

Volgens mij klopt er gewoon niet veel van. Misschien heb je wat meer code voor mij 
Offline Frederic - 21/03/2005 17:00 (laatste wijziging 21/03/2005 17:02)
Avatar van Frederic PHP ver gevorderde Rewritten, en voorzien van comments 
Maar het werkt nog steeds niet
  1. <?php
  2. $reacties_sql = mysql_query("SELECT * FROM forum_reactie WHERE topicid='".$topicid."'"); //Aantal reacties ophalen
  3. $reacties = mysql_num_rows($reacties_sql); //Reacties in getal gieten
  4. if(isset($_COOKIE['FadeToLifeTopic'.$topicid])) //Kijken of er cookie is, zo ja, verder controleren, nee => cookie aanmaken
  5. {
  6. if($_COOKIE['FadeToLifeTopic$topicid'] != $reacties) //Als de waarde van de cookie met dit topicnummer niet gelijk is aan het huidige aantal reacties, dan is er iets nieuws gepost, dus in het vet
  7. {
  8. echo "<b>".$reacties."</b>";
  9. }
  10. else //Cookie bestaat en de waardes zijn nog hetzelfde, dus niets nieuws gepost, dus in het normaal
  11. {
  12. echo reacties;
  13. }
  14. }
  15. else //Er is geen cookie
  16. {
  17. setcookie("FadeToLifeTopic".$topicid, $reacties, time()+3600); //Cookie aamaken à la FadeToLifeTopic12 met 7 (zijn het aantal reacties)
  18. echo "<b>".$reacties."</b>"; //Reacties echo'en in het vet (wil zeggen dat er iets nieuws is, want er was geen cookie)
  19. }
  20. ?>
Offline prorsoft - 21/03/2005 17:02 (laatste wijziging 21/03/2005 17:04)
Avatar van prorsoft PHP gevorderde ik denk dat je beter kan:
  1. <?php
  2. $reacties_sql = mysql_query("SELECT * FROM forum_reactie WHERE topicid='".$topicid."'"); //Aantal reacties ophalen
  3. $reacties = mysql_num_rows($reacties_sql); //Reacties in getal gieten
  4. if(isset($_COOKIE['FadeToLifeTopic'.$topicid])&&!empty($_COOKIE['FadeToLifeTopic'.$topicid])) //Kijken of er cookie is, zo ja, verder controleren, nee => cookie aanmaken
  5. {
  6. if($_COOKIE['FadeToLifeTopic$topicid']; != $reacties) //Als de waarde van de cookie met dit topicnummer niet gelijk is aan het huidige aantal reacties, dan is er iets nieuws gepost, dus in het vet
  7. {
  8. echo "<b>".$reacties."</b>";
  9. }
  10. else //Cookie bestaat en de waardes zijn nog hetzelfde, dus niets nieuws gepost, dus in het normaal
  11. {
  12. echo reacties;
  13. }
  14. }
  15. else //Er is geen cookie
  16. {
  17. setcookie("FadeToLifeTopic".$topicid, $reacties, time()+3600); //Cookie aamaken à la FadeToLifeTopic12 met 7 (zijn het aantal reacties)
  18. echo "<b>".$reacties."</b>"; //Reacties echo'en in het vet (wil zeggen dat er iets nieuws is, want er was geen cookie)
  19. }
  20. ?>

EDIT: dat $reacties, wat komt daarin, een array, een string of een integer???
Offline Frederic - 21/03/2005 17:06 (laatste wijziging 21/03/2005 17:07)
Avatar van Frederic PHP ver gevorderde een getal, en het veld, zoals bvb 7 (gewoon het aantal reacties geteld voor 1 bepaald topic)... zal direct eens testen, alsvast merci!
Ik heb nu dit, maar de topics blijven de hele tijd in het vet staan!
  1. <?php
  2. $reacties_sql = mysql_query("SELECT * FROM forum_reactie WHERE topicid='".$topicid."'"); //Aantal reacties ophalen
  3. $reacties = mysql_num_rows($reacties_sql); //Reacties in getal gieten
  4. if(isset($_COOKIE['FadeToLifeTopic'.$topicid])&&!empty($_COOKIE['FadeToLifeTopic'.$topicid])) //Kijken of er cookie is, zo ja, verder controleren, nee => cookie aanmaken
  5. {
  6. if($_COOKIE['FadeToLifeTopic$topicid'] != $reacties) //Als de waarde van de cookie met dit topicnummer niet gelijk is aan het huidige aantal reacties, dan is er iets nieuws gepost, dus in het vet
  7. {
  8. echo "<b>".$reacties."</b>";
  9. setcookie("FadeToLifeTopic".$topicid, $reacties, time()+3600); //Cookie aamaken à la FadeToLifeTopic12 met 7 (zijn het aantal reacties)
  10. }
  11. else //Cookie bestaat en de waardes zijn nog hetzelfde, dus niets nieuws gepost, dus in het normaal
  12. {
  13. echo reacties;
  14. }
  15. }
  16. else //Er is geen cookie
  17. {
  18. setcookie("FadeToLifeTopic".$topicid, $reacties, time()+3600); //Cookie aamaken à la FadeToLifeTopic12 met 7 (zijn het aantal reacties)
  19. echo "<b>".$reacties."</b>"; //Reacties echo'en in het vet (wil zeggen dat er iets nieuws is, want er was geen cookie)
  20. }
  21. ?>
Offline b4nkr0bz0r - 21/03/2005 17:13
Avatar van b4nkr0bz0r PHP gevorderde weet niet hoe je aan $reacties komt maar die worden wel in <b>-tags geëchoed
Offline prorsoft - 21/03/2005 17:15 (laatste wijziging 21/03/2005 17:25)
Avatar van prorsoft PHP gevorderde Ik denk al dat ik weet wat het is
probeer dit
  1. <?php
  2. $reacties_sql = mysql_query("SELECT * FROM forum_reactie WHERE topicid='".$topicid."'"); //Aantal reacties ophalen
  3. $reacties = mysql_num_rows($reacties_sql); //Reacties in getal gieten
  4. if(isset($_COOKIE['FadeToLifeTopic'.$topicid])&&!empty($_COOKIE['FadeToLifeTopic'.$topicid])) //Kijken of er cookie is, zo ja, verder controleren, nee => cookie aanmaken
  5. {
  6. if(settype($_COOKIE['FadeToLifeTopic'.$topicid], "string") != settype($reacties, "string")) //Als de waarde van de cookie met dit topicnummer niet gelijk is aan het huidige aantal reacties, dan is er iets nieuws gepost, dus in het vet
  7. {
  8. echo "<b>".$reacties."</b>";
  9. setcookie("FadeToLifeTopic".$topicid, $reacties, time()+3600); //Cookie aamaken à la FadeToLifeTopic12 met 7 (zijn het aantal reacties)
  10. }
  11. else //Cookie bestaat en de waardes zijn nog hetzelfde, dus niets nieuws gepost, dus in het normaal
  12. {
  13. echo $reacties;
  14. }
  15. }
  16. else //Er is geen cookie
  17. {
  18. setcookie("FadeToLifeTopic".$topicid, $reacties, time()+3600); //Cookie aamaken à la FadeToLifeTopic12 met 7 (zijn het aantal reacties)
  19. echo "<b>".$reacties."</b>"; //Reacties echo'en in het vet (wil zeggen dat er iets nieuws is, want er was geen cookie)
  20. }
  21. ?>

EDIT: nog een foutje gevonden, ff bijgewerkt.

EDIT2: Yaah, riekele heeft gelijk, dat heb ik ook ff verbeterd.
Offline riekele - 21/03/2005 17:24 (laatste wijziging 21/03/2005 17:24)
Avatar van riekele PHP beginner
  1. <?php
  2. else //Cookie bestaat en de waardes zijn nog hetzelfde, dus niets nieuws gepost, dus in het normaal
  3. {
  4. echo reacties;
  5. }?>

moet daar geen $ voor reacties?
Offline Frederic - 21/03/2005 17:34 (laatste wijziging 21/03/2005 17:39)
Avatar van Frederic PHP ver gevorderde jaja, was al ff verbeterd nu ff de andere versie testen!

OK, als er nu geen cookie is (heb ze gewist), dan worden de topics in het vet gezet, en als ik dan op F5 duw komen ze terug normaal (=GOED!)
Als ik nu de pagina laadt, de topics komen in het normaal, en dan wordt er iets nieuws gepost (
  1. echo "<b>".$reacties."</b>";
  2. setcookie("FadeToLifeTopic".$topicid, $reacties, time()+3600); //Cookie aamaken à la FadeToLifeTopic12 met 7 (zijn het aantal reacties)
wordt dan normaal uitgevoerd) komen ze gewoon in het normaal... En dus niet in het vet zoals het zou moeten zijn!
Offline Frederic - 03/04/2005 16:40
Avatar van Frederic PHP ver gevorderde Nu heb ik volgend ding gemaakt:
  1. <?php
  2. if(isset($_COOKIE['navigatie']) && ($_COOKIE['navigatie']) == "verbergen")
  3. {
  4. echo "het staat uit";
  5. }
  6. else
  7. {
  8. echo "het staat aan";
  9. }
  10. ?>

Maar wat ik ook doe (cookies wissen,...) het komt altijd te staan "het staat uit"
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.457s