Vertaalsysteem met cookies

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Martinique

Martinique

28/02/2008 23:37:00
Quote Anchor link
Hallo allemaal.
Al enige tijd aan het stoeien met cookies t.b.v. vertaal systeempje.
Mijn bedoeling is, dat bezoekers kunnen kiezen voor hun taal. Dus cookie moet niet geset worden bij het laden van de pagina maar na het klikken op een link.

Gedeelte uit index.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<a href="?" onclick="<?php eng() ?>">Engels</a>
<a href="?" onclick="<?php ned() ?>">Nederlands</a>


Deze include ik: functions.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
function eng()
{

    setcookie("taal", "en", time()+3600, "/");
}

function
ned()
{

    setcookie("taal", "nl", time()+3600, "/");
}

?>


Kan dit uberhoopt met Onclick? En kun je cookies op deze manier overschrijven?
Martin
Gewijzigd op 01/01/1970 01:00:00 door Martinique
 
PHP hulp

PHP hulp

12/01/2025 13:05:48
 
Johan K

Johan K

28/02/2008 23:47:00
Quote Anchor link
PHP is een server side language, dat betekend dat alles wat op deze pagina tussen de php tags staat, direct word uitgevoerd.
Dat zal dus niet werken.

Voorbeeld hoe je dit werkend kan krijgen.

<a href="setcookie.php">set</a>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php

    // set cookie
    header("Location: ".$_SERVER['HTTP_REFERER'] );

?>


Edit: Howel Miky en ik een voorbeeld geven hoe het kan werken, zijn er nog tientallen andere mogelijkheden.
Gewijzigd op 01/01/1970 01:00:00 door Johan K
 
Mike van Dongen

Mike van Dongen

28/02/2008 23:48:00
Quote Anchor link
Php is een serverside-language, ofwel, alle php word eerst uit gevoerd, daarna heb je een pagina met slechts html en javascript over (clientside).
De javascript kan daarom de php niet zien.
Dus nee dit is niet mogelijk.

Wat je wel kan doen is je linkjes veranderen in:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<a href="?lang=en">Engels</a>
<a href="?lang=nl">Nederlands</a>

En ergens bovenaan die pagina

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$standaardtaal
= 'nl';
if(isset($_GET['lang']))
{

    if($_GET['lang'] == 'en')
    {

        setcookie("taal", "en", time()+3600, "/");
    }

    elseif($_GET['lang'] == 'en')
    {

        setcookie("taal", "nl", time()+3600, "/");
    }
}

?>


Edit: Of icm met het idee van Johan ;)
Gewijzigd op 01/01/1970 01:00:00 door Mike van Dongen
 
Martinique

Martinique

29/02/2008 20:33:00
Quote Anchor link
Voor zover bedankt, guys het begint er op te lijken, maar werkt nog niet naar wens... Doe toch nog ergens iets fout, of ik denk te moeilijk ;)
index.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
if(isset($_GET['lang']))
{

    if($_GET['lang'] == 'nl')
    {

        setcookie("taal", "nl", time()+3600, "/");
    }

    elseif($_GET['lang'] == 'en')
    {

        setcookie("taal", "en", time()+3600, "/");
    }
}

if(isset($_COOKIE['taal']))
{

    $cookie = $_COOKIE['taal'];
    if($cookie == 'en')
    {

    include("./inc/en.php");
    }

    else
    {
    include("./inc/nl.php");
    }
}

?>


en.php en nl.php zijn dan mijn tekstbestanden.
Er wordt nu een cookie juist aangemaakt, en/of gewijzigd, maar je moet de pagina wel 1x refreshen wil de tekst gewijzigd worden. :(
Iemand een ID?
 
Jesper Diovo

Jesper Diovo

29/02/2008 20:41:00
Quote Anchor link
Ajax?
 
Martinique

Martinique

29/02/2008 20:46:00
Quote Anchor link
Djemo schreef op 29.02.2008 20:41:
Ajax?

Kan dit echt alleen met Ajax?
Gewijzigd op 01/01/1970 01:00:00 door Martinique
 
Martinique

Martinique

29/02/2008 22:57:00
Quote Anchor link
Laat maar mensen, het werkt inmiddels... Gebruik nu sessions
Heb het zo gedaan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
session_start();
if ( !isset($_SESSION['taal']) ) $_SESSION['taal'] = 'nl';

$allowed_languages = array('en', 'nl');

if ( isset($_GET['lang']) && in_array($_GET['lang'], $allowed_languages) ) {
   $_SESSION['taal'] = $_GET['lang'];
}

include("./inc/{$_SESSION['taal']}.php");
?>

Toch allemaal bedankt!
(Maar nu eerst een Heineken)
Gewijzigd op 01/01/1970 01:00:00 door Martinique
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.