login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Lay-outs en cookies

Offline Voldemort - 10/07/2005 11:49
Avatar van VoldemortPHP ver gevorderde Ik heb 4 verschillende lay-outs. Deze worden gekozen door een cookie. Als men nog geen cookie heeft wordt er een aangemaakt, die van de standaard. Alleen als men op de site komt, dan moet normaal de cookie aangemaakt worden, dat gebeurt ook. Maar de cookie werkt nog niet, pas als ik vernieuwt heb lukt alles.

Hoe kan ik zorgen dat ik niet moet vernieuwen als er nog geen lay-out is gekozen en de cookie dus net aangemaakt is?

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <title>Harry Potter - Dreuzels: Voor elke tovenaar, heks, dreuzel en andere wezen... Enjoy it...</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  6. <?php
  7. $cookie = $_COOKIE['layer'];
  8.  
  9. if(!isset($cookie))
  10. {
  11. setcookie('layer', 'griffoendor');
  12. }
  13.  
  14. if($cookie == "huffelpuf")
  15. {
  16. echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"http://www.harrypotter-dreuzels.com/versie22/includes/huffelpuf.css\" />";
  17. }
  18. elseif($cookie == "ravenklauw")
  19. {
  20. echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"http://www.harrypotter-dreuzels.com/versie22/includes/ravenklauw.css\" />";
  21. }
  22. elseif($cookie == "zwadderich")
  23. {
  24. echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"http://www.harrypotter-dreuzels.com/versie22/includes/zwadderich.css\" />";
  25. }
  26. else
  27. {
  28. echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"http://www.harrypotter-dreuzels.com/versie22/includes/griffoendor.css\" />";
  29. }
  30. ?>
  31. </head>


En daaronder de rest van m'n code.

6 antwoorden

Gesponsorde links
Offline rutgerp - 10/07/2005 11:53 (laatste wijziging 10/07/2005 11:53)
Avatar van rutgerp HTML interesse Zo misschien?
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <title>Harry Potter - Dreuzels: Voor elke tovenaar, heks, dreuzel en andere wezen... Enjoy it...</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  6. <?php
  7.  
  8.  
  9. if(!isset($_COOKIE['layer'];))
  10. {
  11. setcookie('layer', 'griffoendor');
  12. }
  13. $cookie = $_COOKIE['layer'];
  14. if($cookie == "huffelpuf")
  15. {
  16. echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"http://www.harrypotter-dreuzels.com/versie22/includes/huffelpuf.css\" />";
  17. }
  18. elseif($cookie == "ravenklauw")
  19. {
  20. echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"http://www.harrypotter-dreuzels.com/versie22/includes/ravenklauw.css\" />";
  21. }
  22. elseif($cookie == "zwadderich")
  23. {
  24. echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"http://www.harrypotter-dreuzels.com/versie22/includes/zwadderich.css\" />";
  25. }
  26. else
  27. {
  28. echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"http://www.harrypotter-dreuzels.com/versie22/includes/griffoendor.css\" />";
  29. }
  30. ?>
  31. </head>
Offline Voldemort - 10/07/2005 12:01 (laatste wijziging 10/07/2005 12:02)
Avatar van Voldemort PHP ver gevorderde Helpt niet, ik kreeg zelfs een parse error omdat jij een ; had getypt, die heb ik er ff uitgehaald en het werkt nog steeds nuet:

  1. if(!isset($_COOKIE['layer'];))

==>
  1. if(!isset($_COOKIE['layer']))


Maarja, nu doet dat systeem het nog niet. Hoe zit het wel?
Offline Rens - 10/07/2005 12:03 (laatste wijziging 10/07/2005 12:04)
Avatar van Rens Gouden medaille

Crew algemeen
Komt omdat je een cookie set, en deze meteen wilt gebruiken.
Dat gaat niet...
Je moet eerst nog een keer refreshen.

Je zou het op 3 manieren kunnen doen.
met header() en met een html code:

  1. header("Location: jepagina.php");

Maar dan moet je nog ob_start(); neerzetten voor je doctype.

Of je gebruikt de html code:
  1. <meta http-equiv="refresh" content="0;url=jepagina.php">


Je zou ook nog gewoon de var $cookie opnieuw kunnen setten, met de juiste waarde.
Offline Voldemort - 10/07/2005 12:17
Avatar van Voldemort PHP ver gevorderde Met de eerst herlaad mijn pagina de hele tijd, zonder dat je het merkt. Met de tweede hetzelfde, alleen merk je het wel.

En de derde snap ik niet echt. Kan die eens ff uitleggen?
Offline BonMarche - 10/07/2005 12:19 (laatste wijziging 10/07/2005 12:21)
Avatar van BonMarche PHP beginner Waarom maak je $cookie aan?? geen onnodige (kopin van) variabelen maken.

je hoeft niet per se te refreshen, je zou ook gewoon een waarde moeten kunnen toewijzen aan $_COOKIE['layer']. bij elke volgende pagina komt daar automatisch de goede waarde in, maar nu moet je hem ff handmatig doen.

edit:
Citaat:
Met de eerst herlaad mijn pagina de hele tijd,
je moet die header() natuurlijk wel binnen die if zetten, dus alleen uitvoeren nadat je het cookie hebt geset. Als het cookie al geset is hoef je niet te refreshen. erg voor de hand liggend toch?
Offline Voldemort - 10/07/2005 12:21 (laatste wijziging 10/07/2005 12:25)
Avatar van Voldemort PHP ver gevorderde Dat is voor later in het document gemakkelijker te werken.

Maar ik wil niet dat men bij de volgende pagina pas een goed resultaat krijgt, maar meteen.

Edit: Ik heb header(); binnen de if(!isset($_COOKIE['layer'])) gezet en nu werkt ie.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.367s