login  Naam:   Wachtwoord: 
Registreer je!
 Forum

talenscript (Opgelost)

Offline raintjah - 14/09/2007 22:41
Avatar van raintjahNieuw lid Hoi,

het volgende talenscript is hier ergens te vinden op de site:

  1. <?PHP
  2. // De gebruiker heeft zijn voorkeur veranderd door een taal te kiezen uit
  3. // het menu, en op de knop te drukken
  4. if (isset ($_POST['kiezen']))
  5. {
  6. # Cookie met de gekozen taal met de duur van 1 jaar aanmaken
  7. setcookie ("taal", $_POST['taalkeuze'], time()+60*60*24*7*52);
  8. # De pagina moet gerefreshed worden voordat de cookie goed werkt bij een $_POST
  9. header ("Location: index.php");
  10. }
  11.  
  12. // Heeft de gebruiker nog geen voorkeur-cookie? Maak dan een cookie aan
  13. // met de engelse taal
  14. if (!isset ($_COOKIE['taal']))
  15. {
  16. # Cookie met de engelse taal met de duur van 1 jaar aanmaken
  17. setcookie ("taal", "english", time()+60*60*24*7*52);
  18. }
  19. // Als de cookie wel is gezet, maar niet geldig is, maak dan een nieuwe
  20. // cookie aan met de engelse taal
  21. elseif (!in_array ($_COOKIE['taal'], $aTalen))
  22. {
  23. # Cookie met de engelse taal met de duur van 1 jaar aanmaken
  24. setcookie ("taal", "english", time()+60*60*24*7*52);
  25. }
  26. // De cookie is nu hoe dan ook geldig, en kan gebruikt worden
  27. else
  28. {
  29. # Include de gekozen (indien nodig: -aangewezen) taal
  30. include (''.$_SERVER['DOCUMENT_ROOT'].'/languages/'.$_COOKIE['taal'].'.lang.php');
  31. }
  32. ?>


Echter, als een computer nu voor het àllereerst op de site komt, wordt er geen cookie gemaakt die de talen automatisch op engels zet. Met als resultaat dat mijn pagina volledig leeg blijft (want hij leest het taalbestand niet in). Ik kan echter wel een taal kiezen (want die tekst is niet afhankelijk van de tekstbestanden, die krijgen alle talen dus hetzelfde te zien. Als ik dan bv engels kies, dan werkt alles perfect. Verwijder ik dan àlle cookies, en ga ik opnieuw naar de site, geeft hij wonderbaarlijk genoeg wel engels... Iemand hier een verklaring voor? 


Alvast bedankt!

2 antwoorden

Gesponsorde links
Offline timmie_loots - 14/09/2007 22:57 (laatste wijziging 14/09/2007 22:57)
Avatar van timmie_loots PHP gevorderde De reden dat er de eerste keer geen taal geladen wordt is omdat de include niet uitgevoerd wordt. Dat gebeurd pas na een refresh. Een oplossing daar voor is het op deze manier aanpassen van het script:

  1. <?PHP
  2. // De gebruiker heeft zijn voorkeur veranderd door een taal te kiezen uit
  3. // het menu, en op de knop te drukken
  4. if (isset ($_POST['kiezen']))
  5. {
  6. # Cookie met de gekozen taal met de duur van 1 jaar aanmaken
  7. setcookie ("taal", $_POST['taalkeuze'], time()+60*60*24*7*52);
  8. # De pagina moet gerefreshed worden voordat de cookie goed werkt bij een $_POST
  9. header ("Location: index.php");
  10. }
  11.  
  12. // Heeft de gebruiker nog geen voorkeur-cookie? Maak dan een cookie aan
  13. // met de engelse taal
  14. if (!isset ($_COOKIE['taal']))
  15. {
  16. # Cookie met de engelse taal met de duur van 1 jaar aanmaken
  17. setcookie ("taal", "english", time()+60*60*24*7*52);
  18. }
  19. // Als de cookie wel is gezet, maar niet geldig is, maak dan een nieuwe
  20. // cookie aan met de engelse taal
  21. elseif (!in_array ($_COOKIE['taal'], $aTalen))
  22. {
  23. # Cookie met de engelse taal met de duur van 1 jaar aanmaken
  24. setcookie ("taal", "english", time()+60*60*24*7*52);
  25. }
  26. // De cookie is nu hoe dan ook geldig, en kan gebruikt worden
  27.  
  28. $language = (isset($_COOKIE['taal'])) ? $_COOKIE['taal'] : 'english';
  29.  
  30. # Include de gekozen (indien nodig: -aangewezen) taal
  31. include (''.$_SERVER['DOCUMENT_ROOT'].'/languages/'.$language.'.lang.php');
  32.  
  33. ?>
Offline raintjah - 14/09/2007 23:14
Avatar van raintjah Nieuw lid Goh, hartelijk bedankt!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.191s