login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Meerdere talen met cookies (Opgelost)

Offline Raze - 31/01/2009 20:21 (laatste wijziging 31/01/2009 20:26)
Avatar van RazePHP beginner Hallo,

ik heb volgende code waarvoor ik me baseerde op de tutorial "meerdere talen systeem" hier op SiMa.
  1. <?php
  2. ?>
  3. <?php
  4. if (isset ($_POST['submit'])) {
  5. setcookie("language", $_POST['set_language'], time()+60*60*24*7*52);
  6. header ("Location: index.php");
  7.  
  8. } if (!isset ($_COOKIE['language']))
  9. {
  10. setcookie ("language", "nederlands", time()+60*60*24*7*52);
  11. } else {
  12. include("/NEW/languages/" . $_COOKIE['language'] . ".lang.php");
  13. }
  14. ?>


Wanneer ik nu een taal in de dropdownbox selecteer, herlaadt de pagina wel. Maar ga ik bv. naar pagina "index2.php", dan krijg ik volgende foutcode:
---------------------------------------
Warning: include(/NEW/languages/nederlands.lang.php) [function.include]: failed to open stream: No such file or directory in C:\wamp\www\NEW\index2.php on line 1

Warning: include() [function.include]: Failed opening '/NEW/languages/nederlands.lang.php' for inclusion (include_path='.;C:\php5\pear') in C:\wamp\www\NEW\index2.php on line 1
---------------------------------------
Hieruit leidt ik af dat er inderdaad een cookie aangemaakt is. Toch is er volgens deze foutmelding niet zo'n directory te vinden is, dit toch wel bestaat, namelijk /NEW/languages/nederlands.lang.php bestaat effectief!

Op de pagina inddex2.php heb ik volgende code geincluded:
  1. <?php
  2. include("/NEW/languages/" . $_COOKIE['language'] . ".lang.php"); ?>
  3. ?>


Heeft er iemand een ideetje waar mijn fout(en) kunnen zitten?

Ik heb ook eens geprobeerd om de volledige code uit die tutorial te gebruiken, maar dan krijg ik geen gevulde dropdownlijst.

4 antwoorden

Gesponsorde links
Offline Tuinstoel - 31/01/2009 20:37
Avatar van Tuinstoel PHP expert Enige wat ik kan herleiden is dat er een fout zit in je cookie. Probeer je cookie waardes eens uit te lezen ( <? print_r($_COOKIE); ?> ).
Offline Raze - 31/01/2009 20:46
Avatar van Raze PHP beginner ik heb mijn cookie uitgelezen en krijg het volgende resultaat:

Array ( [NetRaze_language] => nederlands )

ik merk dus dat mijn cookie wel een waarde bevat.
Ik ga er vanuit dat mijn fout ergens bij de "include" zit, maar waar?

[Indien bovenstaande niet werkt  : Heeft er misschien iemand een ander idee om verschillende talen te includen. Ik wil wel de talen apart scheiden dus nederlands(.lang).php | english(.lang).php | ... .]

Offline qubus - 01/02/2009 09:38
Avatar van qubus Lid Ik bewaar zelf de gekozen taal in een $_SESSION['taal']
Aan de hand daarvan include ik de juiste taalfile.
Eerst lees ik uit of $_SESSION['taal'] leeg is, als dat zo is kies ik de standaardtaal.

Hopelijk kun je daar wat mee...
Offline Raze - 01/02/2009 11:35
Avatar van Raze PHP beginner hallo,

ik heb het al opgelost gisterenavond nog en heb het inderdaad, gelijk qubus zegt, dmv sessies gedaan. Ik werk toch met een "gesloten" website (dus met login) en dan kon ik net zo goed de taal meesturen in een sessie.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.215s