Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[php] session_start vraagje

Pagina: 1
Acties:
  • 182 views sinds 30-01-2008

Verwijderd

Topicstarter
Hoihoi,

Ik ben bezig met een multi language site te maken met aparte taal bestanden. Nou wil ik als er op het engelse vlag wordt geklikt de volgende page ook engels is.

Nou heb ik een functie gemaakt die op elke pages wordt geinclude dat ervoor zorgt wanneer een vlag wordt geklikt het bijbehorde taal bestand wordt geladen. Dit wil ik doen met sessies, maar het werkt niet. Als ik naar een volgende page gaat, wordt de taal niet goed geladen.

Functie:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
function check_language () {
    error_reporting(E_ERROR);
    session_start();
    $language_ok= array("nl","gb","fr");
    $flag = $_GET[ 'language'];
    $slang = $_SESSION['language_s'];



    //check lang=0
    if (isset($flag)){
        $lang = $flag;
        $slang=$lang;
    }  
    elseif (isset($slang)){
    $lang=$slang;
}        
    else {
        if (eregi("^nl", $_SERVER["HTTP_ACCEPT_LANGUAGE"])) {
            $lang = "nl"; }  
        elseif (eregi("^fr", $_SERVER["HTTP_ACCEPT_LANGUAGE"])) {  
            $lang="fr"; }
        else { 
            $lang="gb";     }   
    }

    if(!isset($slang))
        echo "unsett";
       
    if(in_array($lang,$language_ok)) {
        #include_once("lang/gb.inc.php");
        include_once("lang/".$lang.".inc.php");
    } 

}


Vraag:

Wanneer ik op engels klik, krijg ik page1?lang=gb.php -->
als ik nou op page 2 klik, krijg ik page2.php en ik verwacht dat deze in het engels is, want de taal heb ik in $_SESSION['language_s'] gezet. Maar dit werkt helaas niet. Ik ben eigelijk ervan uit gegaan dat als ik van page1 naar page2 wil gaan ik niet naar page2?lang=gb.php moet verwijzen omdat $_SESSION['language_s'] geset is en automatisch de engelse vertaling include. Klopt mijn redenatie?


Wat doe ik fout???

page1.php
check_language();
blablaHoihoi,


page2.php
check_language();
blabla

Alvast bedankt.

  • Osiris
  • Registratie: Januari 2000
  • Niet online
En waar exact prop je nou de door de user opgegeven taal in de sessie? Want je moet 'em wel ff opslaan wil je hem later gaan gebruiken natuurlijk ;)

Misschien is het nuttig om ff de manual erbij te pakken over session_start(); :)

edit:
Oh en 't is prettiger als je PHP-code met [php]-tags omvat i.p.v. 'lege' [code]-tags. [code=php] werkt vziw ook.

Oh en je regels 15, 16 en 17 zijn niet goed geindent, leest frappant zo :P

[ Voor 59% gewijzigd door Osiris op 26-01-2008 18:29 ]


Verwijderd

Dit:
page1?lang=gb.php
en
$flag = $_GET[ 'language'];
Gaat sowieso al niet samen.

Als je niet weet waarom...dan raad ik een basiscursusje PHP aan. Of het moet zijn dat je dit even snel hebt overgetypt ipv copy-paste.

Verder pas je inderdaad nergens je $_SESSION['language_s"] aan...dus het wordt inderdaad niet meegenomen naar een volgende pagina.

[ Voor 22% gewijzigd door Verwijderd op 26-01-2008 18:33 ]


  • Osiris
  • Registratie: Januari 2000
  • Niet online
Dat moet sowieso `page1.php?lang(uage)=gb` zijn idd, maar neem aan dat ie dát wél snapt 8)7

Verwijderd

Topicstarter
Osiris schreef op zaterdag 26 januari 2008 @ 18:31:
Dat moet sowieso `page1.php?lang(uage)=gb` zijn idd, maar neem aan dat ie dát wél snapt 8)7
Zoo, waker worden:p

sorry hoor, te snel getypt.

Ik bedoelde: page1.php?language=gb --> krijg ik de engelse language bestand
en
als ik dit doe, neem ik aan dat de taal die door de gebruiker naar de session wordt gekopieerd en als ik bv naar page2.php gaat dat hij automatisch die engelse tekst krijgt zonder dat ik naar page2.php?language=gb hoeft te gaan.

Heb ik het mis?

Verwijderd

Topicstarter
Verwijderd schreef op zaterdag 26 januari 2008 @ 18:30:

Verder pas je inderdaad nergens je $_SESSION['language_s"] aan...dus het wordt inderdaad niet meegenomen naar een volgende pagina.
Ik pas hem toch aan als $flag geset is.

  • Osiris
  • Registratie: Januari 2000
  • Niet online
Verwijderd schreef op zaterdag 26 januari 2008 @ 18:50:
[...]

Ik bedoelde: page1.php?language=gb --> krijg ik de engelse language bestand
en
als ik dit doe, neem ik aan dat de taal die door de gebruiker naar de session wordt gekopieerd en als ik bv naar page2.php gaat dat hij automatisch die engelse tekst krijgt zonder dat ik naar page2.php?language=gb hoeft te gaan.

Heb ik het mis?
Laat ik m'n eerste post nog maar eens herhalen:
Osiris schreef op zaterdag 26 januari 2008 @ 18:27:
En waar exact prop je nou de door de user opgegeven taal in de sessie? Want je moet 'em wel ff opslaan wil je hem later gaan gebruiken natuurlijk ;)

Misschien is het nuttig om ff de manual erbij te pakken over session_start(); :)
Verwijderd schreef op zaterdag 26 januari 2008 @ 18:53:
[...]


Ik pas hem toch aan als $flag geset is.
Je bedoelt dit stukje code?:

PHP:
1
2
3
4
if (isset($flag)){
    $lang = $flag;
    $slang=$lang;
}

Enige wat jij doet is de variabele $slang setten, nergens doe je iets met een sessie ;)

[ Voor 16% gewijzigd door Osiris op 26-01-2008 18:56 ]


Verwijderd

Topicstarter
Osiris schreef op zaterdag 26 januari 2008 @ 18:54:

Enige wat jij doet is de variabele $slang setten, nergens doe je iets met een sessie ;)
Klopt, stom.

Ik ging er van uit dat ik met $slang een shortcut kon maken naar $_SESSION['..........'] maken.

Bedankt

Verwijderd

Verwijderd schreef op zaterdag 26 januari 2008 @ 19:16:
[...]


Klopt, stom.

Ik ging er van uit dat ik met $slang een shortcut kon maken naar $_SESSION['..........'] maken.

Bedankt
Dit werkt (volgens mij) alleen op die manier als je met pointers werkt, nu weet ik niet in hoeverre PHP pointers ondersteund...maar dat zou je op kunnen zoeken.

[ Voor 3% gewijzigd door Verwijderd op 26-01-2008 19:58 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1

Dit topic is gesloten.