WebsiteBaker Community Forum

WebsiteBaker Support (2.13.x) => General Help & Support => Hilfe & Support (deutsch) => Topic started by: masju on November 03, 2024, 01:56:34 PM

Title: Form-Modul und mpForm senden nur auf Seiten in Primärsprache
Post by: masju on November 03, 2024, 01:56:34 PM
Ich mache hier mal einen neuen Thread auf, der nur peripher etwas mit dem "Sendeproblem" zu tun hat.

Das "Form"-Modul sendet bei meiner mehrsprachigen Seite nur, wenn ich bei der Seite die Sprache auf die "Primärsprache" der Site setze. Ist statt DE z.B. ES eingestellt, wird noch nicht einmal die E-Mail-Versandroutine aufgerufen, was ich an der fehlenden Debug-Information erkenne (ich habe bei den WB-Optionen unter E-Mail-Einstellungen das "Mail Debug:" auf "DEBUG_LOWLEVEL" gesetzt).
Also:
Spracheinstellung auf DE (=Primärsprache der Seite): Mailversand klappt, DEBUG-Infos werden angezeigt
Spracheinstellung auf ES: Kein Mailversand, keine DEBUG-Infos
Es spielt keine Rolle, an welcher Stelle die Seite im Seitenbaum eingehängt ist.

Und nun noch eine wichtige Zusatzinfo: Das Gleiche passiert auch bei einem ebenfalls auf der Seite eingebauten mpForm-Modul.

Gruß
masju
Title: Re: Form-Modul und mpForm senden nur auf Seiten in Primärsprache
Post by: masju on November 04, 2024, 12:43:17 PM
Noch etwas anderes ist sehr seltsam im Form-Modul:
Wenn ich eingeloggt bin und eine Seite mit Form-Modul aufrufe, dann wird im E-Mail-Adresse-Feld (es ist pro Formular nur jeweils eines zulässig) als Wert die Zieladresse des Formulars vorbelegt (nicht änderbar). Da ist doch etwas ziemlich durcheinander geraten, oder?

Verwirrte Grüße  :-o
masju
Title: Re: Form-Modul und mpForm senden nur auf Seiten in Primärsprache
Post by: sternchen8875 on November 04, 2024, 12:58:47 PM
Wenn man eingeloggt ist, erscheint da die Mailadresse aus deinen Session-Daten. Ist man nicht eingeloggt, bleibt das Feld leer - so der Plan

Das nur ein Mailfeld pro Form erlaubt ist, sollte logisch sein, das wäre dann das Absenderfeld des Schreibers. Wozu braucht es mehr?
Title: Re: Form-Modul und mpForm senden nur auf Seiten in Primärsprache
Post by: masju on November 04, 2024, 01:18:46 PM
Ah, okay, verstanden, sorry  :roll:.

Das im Thread-Start erwähnte Sendeproblem besteht weiterhin.
Ich spiegele gerade die komplette Installation noch mal auf einen Testserver, um nachzuvollziehen, woran es liegt. Könnte das Frontend-Template einen Einfluss haben?

Gruß
masju
Title: Re: Form-Modul und mpForm senden nur auf Seiten in Primärsprache
Post by: sternchen8875 on November 04, 2024, 04:23:58 PM
Könnte das Frontend-Template einen Einfluss haben?

nein, definitiv nicht.
Die Daten für das Frontend kommen allesamt aus der Datenbank.
Bin leider gerade mit Arztbesuchen vollgepackt und hab deswegen nur begrenzte Zeit. Mich irretiert das Sendeproblem. Ich war eigentlich der Meinung, das ich den WB-Code recht gut kenne, aber da fehlt mir gerade der Zusammenhang mit dem PHPMailer und der WBMailer-Funktion
Title: Re: Form-Modul und mpForm senden nur auf Seiten in Primärsprache
Post by: sternchen8875 on November 04, 2024, 04:40:10 PM
Welche Form-Modul-Version verwendest du gerade?

Ich habe hier die Testversion 3.5.0 aus der kommenden WB 2.13.6 mit aktuell 4 Sprachen, DE, EN, NL und SE, Mailversand funktioniert überall, aber da fehlt halt noch das, was ich da schon gemeldet hatte, die Problematik mit der Sendeadresse
Title: Re: Form-Modul und mpForm senden nur auf Seiten in Primärsprache
Post by: masju on November 04, 2024, 05:41:54 PM
Ich habe die Version 3.4.4 unter WB 2.13.5 r220 und PHP 8.2.25.

Auf dem Testserver scheint alles zu funktionieren. Einziger offensichtlicher Unterschied: PHP 8.2.24
Auf der Produktivinstallati on kehrt man nach Klick auf "Absenden" auf die Formularseite zurück, keine Fehlermeldung, nix. PHP-Errorlog ist leer.


OT: Falls mal jemand danach sucht: Anbei die bislang fehlende spanische Sprachdatei ES.PHP für das captcha-control-Modul (umbenennen nach .PHP).
Title: Re: Form-Modul und mpForm senden nur auf Seiten in Primärsprache
Post by: masju on November 04, 2024, 10:53:38 PM
Vielleicht ein Hinweis, ich bekomme gerade eine Fehlermeldung nach dem Absenden (Error-Log):
Code: [Select]
[E_WARNING] /modules/form/printForm.php:[217] from /modules/form/view.php:[259] require "Undefined variable $sRequiredString"
Es ist zu beobachten, dass die Frontend-"view.php" vom Formmodul anscheinend gar nicht mitbekommt, dass ein "Submit" eines Formulars stattgefunden hat (bei Seitensprache <> "DE") und damit auch die Senderoutine etc. nicht aufruft.
Wenn ich die Seitensprache auf "DE" stelle, klappt das Versenden problemlos. Kann ich irgendwo eine Debug-Zeile einbauen, die mir anzeigt, was beim Submit übertragen wird?

Das eingestellte Template ist tatsächlich egal.
Title: Re: Form-Modul und mpForm senden nur auf Seiten in Primärsprache
Post by: sternchen8875 on November 05, 2024, 12:35:46 AM
Code: [Select]
[E_WARNING] /modules/form/printForm.php:[217] from /modules/form/view.php:[259] require "Undefined variable $sRequiredString"

$sRequiredString ist die Definition für das Sternchen bei Pflichtfeldern, da gab es bei dir wohl eine Diskrepanz zwischen dem Inhalt aus der DB und den gemachten Einstellungen. Vielleicht, solang einmalig, auch ein Einlesefehler

Zum Rest... ist das die gleiche Installation, wo es auch Probleme mit der Weiterleitung zum Bearbeiten im Frontend gibt (dein früheres Problem (https://forum.WebsiteBaker.org/index.php/topic,32348.0.html))?

Eine einfache Erklärung wäre die Spracheinstellung. Ansonsten muß man das ganze Form "zerlegen". Der Submit geht durch mind. 4 Dateien, den PHP-Mailer nicht mitgerechnet. Dauert etwas, da den richtigen Punkt zu finden. Morgen bin ich den ganzen Tag unterwegs. Sollte niemand anders eine Idee haben, muß es warten bis Mittwoch
Title: Re: Form-Modul und mpForm senden nur auf Seiten in Primärsprache
Post by: masju on November 05, 2024, 10:25:13 AM
Ja, das ist dieselbe Installation, gehostet bei IONOS.
Ich habe sie 1 : 1 auf einen anderen Server (anderer Provider) kopiert (Dateien und Datenbank), dort läuft es.

Gruß
masju
Title: Re: Form-Modul und mpForm senden nur auf Seiten in Primärsprache
Post by: sternchen8875 on November 05, 2024, 11:49:35 AM
Kann ich irgendwo eine Debug-Zeile einbauen, die mir anzeigt, was beim Submit übertragen wird?

Netterweise hab ich einen Kunden mit mehrsprachiger Seite bei Ionos, da funktioniert der Versand in allen sechs Sprachen.  :roll:

Grundsätzlich wird das Formular an die gleiche PHP-Seite geschickt. Ein ganz einfacher Test wäre die Abfrage, ob nach dem Abschicken etwas ankommt

Code: [Select]
            echo "<pre>POST in formular.php:<br>";
            print_r($_POST);
            echo "</pre>";
            echo "<pre>GET in  formular.php:<br>";
            print_r($_GET);
            echo "</pre>";

ganz oben in die view.php, am besten, noch vor der ersten Zeile mit dem use....

die ersten drei Zeilen zeigen die POST-Variablen, die letzten drei die GET-Variablen, also das, was ggf per Link mitgegeben wurde. GET wird hier leer bleiben.
Nach Absenden des Formulars werden nun alle Werte aus dem Formular angezeigt, schaut etwa so aus (ein ganz minimales Formular mit Name, Email, Textfeld und Captcha)

(https://i.gyazo.com/4d20f51772b4c3b797ffdb685129ab06.png)

Nach dem Absenden gehts es dann hier weiter (mit obigem Code etwa Zeile 279)

Code: [Select]
/* --------------------------------------- */
// check for errors and required fields
/* --------------------------------------- */

Ab hier gehts dann mit den Session-Werten los. Die kann man sich auch noch ausgeben lassen mit

Code: [Select]
            echo "<pre>Session:<br>";
            print_r($_SESSION);
            echo "</pre>";

das würde dann so aussehen

(https://i.gyazo.com/e53633e6576e12b93130d6ca2149fa40.png)

Fehlen da wichtige Sessiondaten, wäre hier schon Schluß

Ist alles Nötige vorhanden, geht das Formular in die Datei checkForErrors.php. Ist die Prüfung erfolgreich, gehts in die sendMails.php und von da dann zum PHPMailer

Mach dir auf jeden Fall vor der Bearbeitung ein Backup der view.php oder des ganzen Form-Moduls. Ich würde nach dieser Zeile suchen, im Original Z 495

Code: [Select]
if (\is_readable($sAddonPath.'checkForErrors.php')){require $sAddonPath.'checkForErrors.php';}
und in der Zeile davor den Code für die Session einfügen, damit hättest du dann gleiche alle Werte inkl der nötigen Sessiondaten (siehe mein letztes Bild)
Alles, was im Formular verwendet wird, schreibt das Script in die Session, damit es im Falle einer negativen Prüfung nicht erneut getippt werden muß.

Mein Tip geht da schon in die Session, weil es auch das gleiche Problem ist wie die Pagecode-Sache. Das konnten wir aber mit deiner Anleitung auch auf anderen Servern bestätigen, da ist also schon ein Knoten irgendwo drin
Title: Re: Form-Modul und mpForm senden nur auf Seiten in Primärsprache
Post by: masju on November 05, 2024, 12:14:36 PM
Vielen Dank! Ich habe die Modul-Dateien nicht geändert, sondern Deinen Code einfach in eine Code-Section auf die Formularseite gepackt :-)

Ergebnis:
Spracheinstellung DE (Mailadresse geändert)

Quote
(
POST in formular.php:
Array
    [section_id] => 276
    [submission_id] => 8755528
    [submitted_when] => 1730804222
    [email] =>
    [homepage] =>
    [url] =>
    [comment] =>
    [field28] => info[at]domain[dot]tld
    [field27] => Blavla
    [captcha276] => 6
    [submit] => Absenden
)

GET in  formular.php:
Array
(
)


Spracheinstellung ES:
Quote

POST in formular.php:
Array
(
)

GET in  formular.php:
Array
(
)

Es scheitert also bei Sprache <>DE schon an der Übertragung per POST.
Ich habe nun mal die Quellcodes zweier mit unterschiedlichen Sprachen erzeugten FORMS verglichen, sie sind identisch (bis auf submission_id und submitted_when). Es wird immer seltsamer  :-o.

Gruß
masju
Title: Re: Form-Modul und mpForm senden nur auf Seiten in Primärsprache
Post by: sternchen8875 on November 05, 2024, 12:35:34 PM
Nimm mal den Code für die Session statt POST oder GET

Code: [Select]
echo "<pre>Session:<br>";
            print_r($_SESSION);
            echo "</pre>";

ruhig rein in deine Code-Section

Wenn du nun über das Fähnchenmenü die Sprachen umschaltest, sollte sich der Language-Wert in den Session-Daten stets mit ändern
Title: Re: Form-Modul und mpForm senden nur auf Seiten in Primärsprache
Post by: masju on November 05, 2024, 12:49:23 PM
Alles klar, danke!
Ich habe gerade noch herausgefunden, dass das POST funktioniert, wenn Browsersprache (bei Firefox umgestellt) und Seitensprache übereinstimmen (ES=ES, oder EN=EN). Das Problem ist also nicht abhängig von der Primärsprache der WB-Installation.

Welchen Teil von $_SESSION soll ich posten? Nur den Teil ab
Quote
[PAGE_ID] => 125
    [HTTP_REFERER]...
?
Der [LANGUAGE] => Wert ändert sich gemäß Seiteneinstellung.

Gruß
masju
Title: Re: Form-Modul und mpForm senden nur auf Seiten in Primärsprache
Post by: sternchen8875 on November 05, 2024, 01:13:44 PM
Ich habe gerade noch herausgefunden, dass das POST funktioniert, wenn Browsersprache (bei Firefox umgestellt) und Seitensprache übereinstimmen (ES=ES, oder EN=EN).

What?
Das ist mit Sicherheit eine Sache, die vorher niemand von uns getestet hat  :oops:
Wir haben zwar auch Tester aus dem nicht-deutschsprachigem Raum, aber da muß dann ja auch alles passen, z.b. eben eine mehrsprachige Testversion


Der [LANGUAGE] => Wert ändert sich gemäß Seiteneinstellung.

diese Info ist ausreichend, Danke
Muß jetzt leider los, bin erst am Abend wieder da
Title: Re: Form-Modul und mpForm senden nur auf Seiten in Primärsprache
Post by: masju on November 05, 2024, 01:32:45 PM
Ich habe gerade noch herausgefunden:
Es liegt nicht am Form-Modul, sondern an der Übermittlung von Formularen per POST im Allgemeinen. Ich habe den <form></form>-Abschnitt im Quelltext in eine eigene WYSIWYG-Section gepackt, und auch hier derselbe Effekt.

Und jetzt kommt's: Ich habe in den Einstellungen die Option "Eingangsseite" gewählt und hier eine Sprachweiche eingebaut, die beim Aufruf der index.php per header auf die jeweilige Sprachunterseite umleitet:

Code: [Select]
<?php
// Verfügbare Sprachunterseiten (z.B. &#39;de&#39; für Deutsch, &#39;en&#39; für Englisch)
$available_languages = [&#39;es&#39;, &#39;de&#39;, &#39;en&#39;, &#39;fr&#39;];

// Funktion zum Extrahieren der bevorzugten Sprache
function getPreferredLanguage($available_languages) {
    if (isset(
$_SERVER[&#39;HTTP_ACCEPT_LANGUAGE&#39;])) {
        // Liste der Sprachen aus dem Header holen und aufsplitten
        
$languages explode(&#39;,&#39;, $_SERVER[&#39;HTTP_ACCEPT_LANGUAGE&#39;]);
        
foreach ($languages as $lang) {
            
// Nur den Sprachcode (z.B. &#39;de&#39; oder &#39;en&#39;) extrahieren
            
$lang_code substr($lang02);
            
// Prüfen, ob die Sprache verfügbar ist
            
if (in_array($lang_code$available_languages)) {
                return 
$lang_code;
            }
        }
    }
    
// Standardmäßig auf Englisch setzen, falls keine passende Sprache gefunden wird
    
return &#39;en&#39;;
}

// Bevorzugte Sprache des Besuchers ermitteln
$user_language getPreferredLanguage($available_languages);

// Weiterleitung auf die entsprechende Unterseite mit einem switch

switch ($user_language) {
    case &
#39;es&#39;:
        
header("Location: [...]/pg/es/inicio.php");  // Spanisch
        
break;
    case &
#39;de&#39;:
        
header("Location: [...]/pg/de/startseite.php");  // Deutsch
        
break;
    case &
#39;en&#39;:
        
header("Location: [...]/pg/en/home.php");  // Englisch
        
break;
    case &
#39;fr&#39;:
        
header("Location: [...]/pg/fr/accueil.php");  // Französisch
        
break;
    default:
        
header("Location: [...]/en/home.php");  // Fallback auf Englisch
        
break;
}
?>


Und jetzt das Wunder von Bern: Schalte ich die Startseite (intro.php) ab, ist alles okay.

Gruß,
masju
Title: Re: Form-Modul und mpForm senden nur auf Seiten in Primärsprache
Post by: sternchen8875 on November 05, 2024, 01:48:56 PM
Du machst mich fertig....   :-D :-D :-D

benenn mal ein paar der Variablen um, einige werden im Core schon verwendet, $lang, $user_language usw
Title: Re: Form-Modul und mpForm senden nur auf Seiten in Primärsprache
Post by: masju on November 05, 2024, 02:26:14 PM
 (Y)

Variablen geändert in

Code: [Select]
<?php
// Verfügbare Sprachunterseiten (z.B. &#39;de&#39; für Deutsch, &#39;en&#39; für Englisch)
$my_available_languages = [&#39;es&#39;, &#39;de&#39;, &#39;en&#39;, &#39;fr&#39;];

// Funktion zum Extrahieren der bevorzugten Sprache
function getPreferredLanguage($my_available_languages) {
    if (isset(
$_SERVER[&#39;HTTP_ACCEPT_LANGUAGE&#39;])) {
        // Liste der Sprachen aus dem Header holen und aufsplitten
        
$my_languages explode(&#39;,&#39;, $_SERVER[&#39;HTTP_ACCEPT_LANGUAGE&#39;]);
        
foreach ($my_languages as $my_lang) {
            
// Nur den Sprachcode (z.B. &#39;de&#39; oder &#39;en&#39;) extrahieren
            
$my_lang_code substr($my_lang02);
            
// Prüfen, ob die Sprache verfügbar ist
            
if (in_array($my_lang_code$my_available_languages)) {
                return 
$my_lang_code;
            }
        }
    }
    
// Standardmäßig auf Englisch setzen, falls keine passende Sprache gefunden wird
    
return &#39;en&#39;;
}

// Bevorzugte Sprache des Besuchers ermitteln
$my_user_language getPreferredLanguage($my_available_languages);

// Weiterleitung auf die entsprechende Unterseite mit einem switch-Block

switch ($my_user_language) {
    case &
#39;es&#39;:
        
header("Location: /pg/es/inicio.php");  // Spanisch
        
break;
    case &
#39;de&#39;:
        
header("Location: /pg/de/startseite.php");  // Deutsch
        
break;
    case &
#39;en&#39;:
        
header("Location: /pg/en/home.php");  // Englisch
        
break;
    case &
#39;fr&#39;:
        
header("Location: /pg/fr/accueil.php");  // Französisch
        
break;
    default:
        
header("Location: /pg/en/home.php");  // Fallback auf Englisch
        
break;
}
?>


Noch kein Success.
Seltsam, dass es auf dem gespiegelten Server trotzdem lief.
Title: Re: Form-Modul und mpForm senden nur auf Seiten in Primärsprache
Post by: sternchen8875 on November 05, 2024, 03:46:31 PM
Ging schneller als erwartet bei Doc, Donnerstag früh gehts weiter...

lass dir die Sprachen mal ausgeben mit

Code: [Select]
var_dump($_SERVER['HTTP_ACCEPT_LANGUAGE']);
vielleicht auch auf dem zweiten Server, um mögliche Unterschiede zu sehen

P.S.: noch ein Tip am Rande: ist ist empfehlenswert, bei solchen Tests immer den Browsercache zu löschen
Title: Re: Form-Modul und mpForm senden nur auf Seiten in Primärsprache
Post by: masju on November 05, 2024, 05:38:51 PM
var_dump($_SERVER['HTTP_ACCEPT_LANGUAG E']); ist bei beiden Installationen gleich:

string(23) "de,en-US;q=0.7,en;q=0.3"
string(23) "de,en-US;q=0.7,en;q=0.3"
(Browser-Cache ist gelöscht)

In der Sprachweiche habe ich nochmal komplett die Variablen geändert, keine Änderung.
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 getPreferredLanguag e($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 = getPreferredLanguag e($meine_available_languages);

// Weiterleitung auf die entsprechende Unterseite mit einem switch-Block

switch ($meine_user_language) {
    case 'es':
        header("Location: [...]/pg/es/inicio.php");  // Spanisch
        break;
    case 'de':
        header("Location: [...]/pg/de/startseite.php");  // Deutsch
        break;
    case 'en':
        header("Location: [...]/pg/en/home.php");  // Englisch
        break;
    case 'fr':
        header("Location: [...]/pg/fr/accueil.php");  // Französisch
        break;
    default:
        header("Location: [...]/pg/en/home.php");  // Fallback auf Englisch
        break;
}
?>

PS: Wie mache ich den Cursor im Code-Modul und auch in den Droplets wieder sichtbar?
(Hinweis: code macht in diesem Forum aus dem einfachen Hochkomma immer &#39;, deswegen habe ich quote genommen)
Title: Re: Form-Modul und mpForm senden nur auf Seiten in Primärsprache
Post by: masju on November 05, 2024, 06:17:10 PM
Ich habe sicherheitshalber auch noch den Funktionsnamen getPreferredLanguag e geändert. Brachte nix.
Title: Re: Form-Modul und mpForm senden nur auf Seiten in Primärsprache
Post by: masju on November 06, 2024, 11:19:00 AM
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: [Select]
header("Location: [...]/pg/es/inicio.php");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: [Select]
header("Location: [...]/pg/en/home.php");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">
Title: Re: Form-Modul und mpForm senden nur auf Seiten in Primärsprache
Post by: masju on November 06, 2024, 11:38:53 AM
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;
}
?>

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