WebsiteBaker Support (2.13.x) > Hilfe & Support (deutsch)
Form-Modul und mpForm senden nur auf Seiten in Primärsprache
masju:
Ich habe sicherheitshalber auch noch den Funktionsnamen getPreferredLanguag e geändert. Brachte nix.
masju:
Ich habe nun mehrere Testläufe mit der intro.php hinter mir, denn offensichtlich ändert der Inhalt dieser Datei das Verhalten bei meinen Formularen.
Wenn ich nur die eine Zeile
--- Code: ---header("Location: [...]/pg/es/inicio.php");
--- End code ---
in die Startseite eintrage (leitet auf eine spanische Seite weiter), funktioniert das Formularversenden auf beliebigen Seiten, wenn die Seitensprache Spanisch ist. Unabhängig von der im Browser eingestellten Sprache.
Wenn ich nur die eine Zeile
--- Code: ---header("Location: [...]/pg/en/home.php");
--- End code ---
in die Startseite eintrage (leitet auf eine englische Seite weiter), funktioniert das Formularversenden auf beliebigen Seiten, wenn die Seitensprache Englisch ist. Wieder unabhängig von der im Browser eingestellten Sprache.
Nächster Test: Umleitung nicht mit "Header" sondern <meta http-equiv="refresh" content="0; URL=http://www.domain.de">
masju:
Soooo, bitte anschnallen:
Ich habe den Inhalt der Eingangsseite geändert in
--- Quote ---<?php
// Verfügbare Sprachunterseiten (z.B. 'de' für Deutsch, 'en' für Englisch)
$meine_available_languages = ['es', 'de', 'en', 'fr'];
// Funktion zum Extrahieren der bevorzugten Sprache
function meine_getPreferredL anguage($meine_available_languages) {
if (isset($_SERVER['HTTP_ACCEPT_LANGUAG E'])) {
// Liste der Sprachen aus dem Header holen und aufsplitten
$meine_languages = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAG E']);
foreach ($meine_languages as $meine_lang) {
// Nur den Sprachcode (z.B. 'de' oder 'en') extrahieren
$meine_lang_code = substr($meine_lang, 0, 2);
// Prüfen, ob die Sprache verfügbar ist
if (in_array($meine_lang_code, $meine_available_languages)) {
return $meine_lang_code;
}
}
}
// Standardmäßig auf Englisch setzen, falls keine passende Sprache gefunden wird
return 'en';
}
// Bevorzugte Sprache des Besuchers ermitteln
$meine_user_language = meine_getPreferredL anguage($meine_available_languages);
// Weiterleitung auf die entsprechende Unterseite mit einem switch
switch ($meine_user_language) {
case 'es':
echo '<script language="javascript" type="text/javascript"> document.location="[...]/pg/es/inicio.php"; </script>'; // Spanisch
break;
case 'de':
echo '<script language="javascript" type="text/javascript"> document.location="[...]/pg/de/startseite.php"; </script>'; // Deutsch
break;
case 'en':
echo '<script language="javascript" type="text/javascript"> document.location="[...]/pg/en/home.php"; </script>'; // Englisch
break;
case 'fr':
echo '<script language="javascript" type="text/javascript"> document.location="[...]/pg/fr/accueil.php"; </script>'; // Französisch
break;
default:
echo '<script language="javascript" type="text/javascript"> document.location="[...]/pg/en/home.php"; </script>'; // Fallback Englisch
break;
}
?>
--- End quote ---
und alles läuft. Warum der Inhalt der Eingangseite dazwischenfunkt, wenn man hier elegant per Header-Redirect verzweigt, ist mir immer noch nicht klar. Anscheinend wird die Seite intro.php nicht nur beim Aufruf der Domain durchlaufen. Aber mit einem primitiven Javascript läuft es wenigstens - zumindest bei Browsern, die das nicht deaktiviert haben.
Gruß
masju
Navigation
[0] Message Index
[*] Previous page
Go to full version