Hallo Leute,
Ich habe folgendes Problem : ich möchte einen Wert, der vom Besucher einer Website angegeben wird, im Skript speichern um damit wieder zugreifen zu können.
Im Detail :
Ich entwickle eine kleine Website, die aus einer Hauptdatei home.php besteht und den Inhalt mit Include Befehlen konstruiert.
Das heisst, es wird zum Aufbau des Inhalts immer diese einzige home.php Datei aufgerufen, die den Inhalt (z. B. "Jobs" und "Contacts") mittels Get-Parameter wie home.php?thema=jobs ermittelt und die dazu gehörige Info im Include Befehl festlegt.
Nun mein Problem :
Ich möchte dem Benutzer die Möglichkeit geben, die Sprache der Website festzulegen (z. B. deutsch und english).
Ich möchte aber verhindern, dass ich danach bei jedem Link auf der Website ein GET-Parameter wie "...&lang=de" anhängen muss, damit der Inhalt auch auf deutsch kommt, sondern nur die Sprache "einmal" definieren müssen (wenn Defaultsprache nicht ok ist) und dann dieser Wert $Language immer benützen zu können.
Deswegen dachte ich an eine Global Variabel, habe es aber nicht geschafft, dass der Wert erhalten bleibt : bei jedem Reload von home.php wird die Sprache zurück auf deutsch gesetzt.
Siehe dazu die Files Inhalte :
home.php
=========================================
<?php
//________________________________________________________
// Cache control
header("Cache-control: private"); //IE 6 Fix
header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache"); // HTTP/1.0
//________________________________________________________
// Define global vars
global $Language;
//________________________________________________________
// Includes and initialization
if($_GET['lang']){
$Language = $_GET['lang'];
}
if($_GET['thema']){
$Thema = $_GET['thema'];
}
if(!$Language){
$Language = "de";
}
//________________________________________________________
// Start HTML output
echo("
<html>
<head>");
if($Language == "fr"){
echo("<title>Bonjour !</title>");
}
elseif($Language == "en"){
echo("<title>Hello !</title>");
}
else{
echo("<title>Hallo !</title>");
}
echo("
</head>
<body>");
if($Language == "fr"){
echo("Veuillez choisir :");
}
elseif($Language == "en"){
echo("Please chose :");
}
else{
echo("Bitte wählen :");
}
echo("
<br>
");
if($Thema == "jobs"){
include("jobs.php");
}
if($Thema == "contacts"){
include("contacts.php");
}
echo("
<a href='home.php?thema=jobs'>Jobs</a>
<br>
<a href='home.php?thema=contacts'>Contacts</a>
<br>
<br>
<a href='home.php?lang=en'>English</a>
<br>
<a href='home.php?lang=de'>Deutsch</a>
<br>
<a href='home.php?lang=fr'>Französisch</a>
</body>
</html>
");
?>
jobs.php
==============================================
<?php
if($Language == "fr"){
echo("Page Emplois");
}
if($Language == "de"){
echo("Jobs Seite");
}
if($Language == "en"){
echo("Jobs Page");
}
echo("<br><br>");
?>
contacts.php
============================================
<?php
if($Language == "fr"){
echo("Page Contacts");
}
if($Language == "de"){
echo("Contacts Seite");
}
if($Language == "en"){
echo("Contacts Page");
}
echo("<br><br>");
?>
Kann mann dieses Problem mit einer "globalen Variabel" lösen oder muss mann umbedingt Sessions anwenden (möchte ich lieber nicht wegen den Links in den Bookmarks) ?
Besten Dank für Eure wertvolle Hilfe !
OdinTheGreat
Ich habe folgendes Problem : ich möchte einen Wert, der vom Besucher einer Website angegeben wird, im Skript speichern um damit wieder zugreifen zu können.
Im Detail :
Ich entwickle eine kleine Website, die aus einer Hauptdatei home.php besteht und den Inhalt mit Include Befehlen konstruiert.
Das heisst, es wird zum Aufbau des Inhalts immer diese einzige home.php Datei aufgerufen, die den Inhalt (z. B. "Jobs" und "Contacts") mittels Get-Parameter wie home.php?thema=jobs ermittelt und die dazu gehörige Info im Include Befehl festlegt.
Nun mein Problem :
Ich möchte dem Benutzer die Möglichkeit geben, die Sprache der Website festzulegen (z. B. deutsch und english).
Ich möchte aber verhindern, dass ich danach bei jedem Link auf der Website ein GET-Parameter wie "...&lang=de" anhängen muss, damit der Inhalt auch auf deutsch kommt, sondern nur die Sprache "einmal" definieren müssen (wenn Defaultsprache nicht ok ist) und dann dieser Wert $Language immer benützen zu können.
Deswegen dachte ich an eine Global Variabel, habe es aber nicht geschafft, dass der Wert erhalten bleibt : bei jedem Reload von home.php wird die Sprache zurück auf deutsch gesetzt.
Siehe dazu die Files Inhalte :
home.php
=========================================
<?php
//________________________________________________________
// Cache control
header("Cache-control: private"); //IE 6 Fix
header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache"); // HTTP/1.0
//________________________________________________________
// Define global vars
global $Language;
//________________________________________________________
// Includes and initialization
if($_GET['lang']){
$Language = $_GET['lang'];
}
if($_GET['thema']){
$Thema = $_GET['thema'];
}
if(!$Language){
$Language = "de";
}
//________________________________________________________
// Start HTML output
echo("
<html>
<head>");
if($Language == "fr"){
echo("<title>Bonjour !</title>");
}
elseif($Language == "en"){
echo("<title>Hello !</title>");
}
else{
echo("<title>Hallo !</title>");
}
echo("
</head>
<body>");
if($Language == "fr"){
echo("Veuillez choisir :");
}
elseif($Language == "en"){
echo("Please chose :");
}
else{
echo("Bitte wählen :");
}
echo("
<br>
");
if($Thema == "jobs"){
include("jobs.php");
}
if($Thema == "contacts"){
include("contacts.php");
}
echo("
<a href='home.php?thema=jobs'>Jobs</a>
<br>
<a href='home.php?thema=contacts'>Contacts</a>
<br>
<br>
<a href='home.php?lang=en'>English</a>
<br>
<a href='home.php?lang=de'>Deutsch</a>
<br>
<a href='home.php?lang=fr'>Französisch</a>
</body>
</html>
");
?>
jobs.php
==============================================
<?php
if($Language == "fr"){
echo("Page Emplois");
}
if($Language == "de"){
echo("Jobs Seite");
}
if($Language == "en"){
echo("Jobs Page");
}
echo("<br><br>");
?>
contacts.php
============================================
<?php
if($Language == "fr"){
echo("Page Contacts");
}
if($Language == "de"){
echo("Contacts Seite");
}
if($Language == "en"){
echo("Contacts Page");
}
echo("<br><br>");
?>
Kann mann dieses Problem mit einer "globalen Variabel" lösen oder muss mann umbedingt Sessions anwenden (möchte ich lieber nicht wegen den Links in den Bookmarks) ?
Besten Dank für Eure wertvolle Hilfe !
OdinTheGreat