login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Cookies en GET probleem (Opgelost)

Offline DarkImpact - 11/03/2008 11:37
Avatar van DarkImpactNieuw lid Ik heb op mijn site een script gemaakt voor verschillende styles alleen als je bijvoorbeeld bij mij invult: site.nl/index.php?style=wtf
krijg je de rode, een beetje raar maarja:

HTML:
  1. <div id="style">
  2. <ul>
  3. <li id="style1" onclick="window.location='index.php?style=red'">
  4. <li id="style2" onclick="window.location='index.php?style=blue'">
  5. <li id="style3" onclick="window.location='index.php?style=green'">
  6. <li id="style4" onclick="window.location='index.php?style=orange'">
  7. </ul>
  8. </div>


PHP:
  1. <?
  2. include('includes/db_connect.php');
  3. // Start styler CONFIG
  4. if ($_GET['style'] == "") {
  5. $style = "@import url(/styles/default.css);";
  6. }
  7. elseif ($_GET['style'] == "red" or $_COOKIE['style'] == "red") {
  8. setcookie("style", "", time()-3600, "/");
  9. $style = "@import url(/styles/red.css);";
  10. $color = $_GET['style'];
  11. setcookie("style", $color, time()+3600, "/");
  12. }
  13. elseif ($_GET['style'] == "green" or $_COOKIE['style'] == "green") {
  14. setcookie("style", "", time()-3600, "/");
  15. $style = "@import url(/styles/default.css);";
  16. $color = $_GET['style'];
  17. setcookie("style", $color, time()+3600, "/");
  18. }
  19. elseif ($_GET['style'] == "orange" or $_COOKIE['style'] == "orange") {
  20. setcookie("style", "", time()-3600, "/");
  21. $style = "@import url(/styles/orange.css);";
  22. $color = $_GET['style'];
  23. setcookie("style", $color, time()+3600, "/");
  24. }
  25. elseif ($_GET['style'] == "blue" or $_COOKIE['style'] == "blue") {
  26. setcookie("style", "", time()-3600, "/");
  27. $style = "@import url(/styles/blue.css);";
  28. $color = $_GET['style'];
  29. setcookie("style", $color, time()+3600, "/");
  30. }
  31. else {
  32. die ('This style is not defined.');
  33. }
  34. ?>

8 antwoorden

Gesponsorde links
Offline Arnout - 11/03/2008 14:07
Avatar van Arnout HTML beginner oké... En nu?
Offline DarkImpact - 11/03/2008 19:26 (laatste wijziging 11/03/2008 20:49)
Avatar van DarkImpact Nieuw lid de cookies worden niet doorgegeven en soms als je bij index.php?style=iets intikt krijg je de rode ik snap niet waarom kan iemand mij daarmee helpen?
errors zijn:

Notice: Undefined index: style in /home/dsgnnl1/public_html/index.php on line 39

Notice: Undefined index: style in /home/dsgnnl1/public_html/index.php on line 45

Notice: Undefined index: style in /home/dsgnnl1/public_html/index.php on line 51

Notice: Undefined index: style in /home/dsgnnl1/public_html/index.php on line 57
Offline nielsvdwal - 11/03/2008 21:08
Avatar van nielsvdwal PHP gevorderde hij herkent je GET['style'] of COOKIE['style'] niet .. even nagaan of ze wel bestaan..
Offline DarkImpact - 11/03/2008 21:14
Avatar van DarkImpact Nieuw lid ja niet dus hoe kan ik ze wel laten bestaan 
Offline nielsvdwal - 11/03/2008 23:00
Avatar van nielsvdwal PHP gevorderde eerst controleren of ze bestaan en dan pas kijken wat erin staat?.. dus gewoon isset()
Offline DarkImpact - 12/03/2008 09:10
Avatar van DarkImpact Nieuw lid ja ze bestaan niet op een of andere manier maar ik geef ze goed door hoe kan ik ze laten bestaan?
Offline Grayen - 12/03/2008 09:12
Avatar van Grayen PHP ver gevorderde
  1. // Is $_GET['style'] niet opgegeven in de URL, maar bestaat de cookie wel?
  2. // geef $_GET['style'] dan de waarde van de cookie.
  3. if (!isset($_GET['style']) && isset($_COOKIE['style']))
  4. {
  5. $_GET['style'] = $_COOKIE['style'];
  6. }
  7.  
  8. // Bestaat $_GET['style'] nog steeds niet of hij bevat een
  9. // niet ondersteunde waarde, geef hem dan de standaard waarde.
  10. if (!isset($_GET['style']) || !in_array($_GET['style'], array('red', 'green', 'orange', 'blue')))
  11. {
  12. $_GET['style'] = 'default';
  13. }
  14.  
  15. // We weten nu zeker dat $_GET['style'] een waarde heeft.
  16. $style = '@import url(/styles/'.$_GET['style'].'.css);'
  17. $color = $_GET['style'];
  18.  
  19. // Als de cookie een nieuwe waarde geven,
  20. // hoeven we hem niet eerst te verwijderen.
  21. setcookie('style', $color, time() + 3600, '/');
Offline Rik - 12/03/2008 09:27
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Ik zie één foutje, als $_GET['style'] green is dan moet default.css en niet green.css worden geladen.  
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.198s