WebsiteBaker Support (2.13.x) > Hilfe & Support (deutsch)
Form-Modul und mpForm senden nur auf Seiten in Primärsprache
sternchen8875:
--- Quote from: masju on November 04, 2024, 10:53:38 PM ---Kann ich irgendwo eine Debug-Zeile einbauen, die mir anzeigt, was beim Submit übertragen wird?
--- End quote ---
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: --- echo "<pre>POST in formular.php:<br>";
print_r($_POST);
echo "</pre>";
echo "<pre>GET in formular.php:<br>";
print_r($_GET);
echo "</pre>";
--- End code ---
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)
Nach dem Absenden gehts es dann hier weiter (mit obigem Code etwa Zeile 279)
--- Code: ---/* --------------------------------------- */
// check for errors and required fields
/* --------------------------------------- */
--- End code ---
Ab hier gehts dann mit den Session-Werten los. Die kann man sich auch noch ausgeben lassen mit
--- Code: --- echo "<pre>Session:<br>";
print_r($_SESSION);
echo "</pre>";
--- End code ---
das würde dann so aussehen
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: ---if (\is_readable($sAddonPath.'checkForErrors.php')){require $sAddonPath.'checkForErrors.php';}
--- End code ---
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
masju:
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
(
)
--- End quote ---
Spracheinstellung ES:
--- Quote ---
POST in formular.php:
Array
(
)
GET in formular.php:
Array
(
)
--- End quote ---
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
sternchen8875:
Nimm mal den Code für die Session statt POST oder GET
--- Code: ---echo "<pre>Session:<br>";
print_r($_SESSION);
echo "</pre>";
--- End code ---
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
masju:
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]...
--- End quote ---
?
Der [LANGUAGE] => Wert ändert sich gemäß Seiteneinstellung.
Gruß
masju
sternchen8875:
--- Quote from: masju on November 05, 2024, 12:49:23 PM ---Ich habe gerade noch herausgefunden, dass das POST funktioniert, wenn Browsersprache (bei Firefox umgestellt) und Seitensprache übereinstimmen (ES=ES, oder EN=EN).
--- End quote ---
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
--- Quote from: masju on November 05, 2024, 12:49:23 PM ---Der [LANGUAGE] => Wert ändert sich gemäß Seiteneinstellung.
--- End quote ---
diese Info ist ausreichend, Danke
Muß jetzt leider los, bin erst am Abend wieder da
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version