PHP – die neusten Beiträge

Mehrsprachige Webseite(n) in PHP steuern?

Ich besitze Webseiten in verschiedenen Sprachen. Von Code her sind alle gleich (kopiert), sind halt nur übersetzt. Um die Pflege des Codes einfacher zu gestalten möchte ich nun nur noch einen Code (root) benutzen und einfach mit Sprachdateien arbeiten. Bisher habe ich es so gehandhabt, dass ich per htaccess redirect PHP Datein ausgeführt habe.

RewriteRule ^apfel/([^/]*) /page.php [L]

In den kopierten Webseiten in anderen Sprachen habe ich dann einfach die Zeile geändert.

RewriteRule ^apple/([^/]*) /page.php [L]

Um den Code der Webseite einfacher zu pflegen plane ich nun nur noch eine Webseite (ein root) mit Sprachdateien. Jetzt stellt es mir die Frage, wie gehe ich mit den Redirects um?

Ich möchte ungern in eine htaccess datei sämtliche redirects in verschiedenen Sprachen schreiben. Meine plan wäre es jetzt den ganzen traffic auf eine einzige PHP Datei zu schicken und dort überprüfe ich welche domain aufgerufen wurde, lade anhand der die Sprachdatei ($lang["url"]) und überprüfe dann welchen Inhalt bsw. Sprache angezeigt werden soll.

Wie zum Beispiel bei domain.de

if($url == $lang["url"][1]) { 
// domain.de/apfel/
} else if ($url == $lang["url"][2]) { 
// domain.de/birne/
}

Oder bei domain.com

if($url == $lang["url"][1]) { 
// domain.com/apple/
} else if ($url == $lang["url"][2]) { 
// domain.com/pear/
}

Wenn ich nun den ganzen Traffic auf eine PHP Datei schicke ist das dann von der Perfomance nicht so gut da dies eine recht lange Datei werden kann? Falls es noch andere Lösungen geben sollte, höre ich diese gerne. Hoffe man versteht, welches "Problem" ich habe.

HTML, Webseite, programmieren, MySQL, PHP

PHP POST Umlaute Kodierung falsch?

Hi!

Also ich habe ein Kontaktformular auf meiner HTML Seite. Da gibt man halt so Sachen wie Name und eine Nachricht und so weiter ein. Die Daten werden dann per POST an die PHP Datei geschickt, welche diese per Mail verschicken soll. Das Mail versenden klappt auch soweit, aber die Umlaute werden als komische Sonderzeichen angezeigt, der Rest der Mail kommt normal an. Ich dachte vielleicht interpretiert der mail Befehl die Sonderzeichen irgendwie falsch, deshalb habe ich in meiner PHP noch folgende Zeilen eingebaut die die Umlaute aus der Nachricht entfernen sollen bevor sie verschickt wird.

$messagemail = $_POST['message'];

$messagemail = str_replace("ä", "ae" , $messagemail);
$messagemail = str_replace("ü", "ue" , $messagemail);
$messagemail = str_replace("ö", "oe" , $messagemail);
$messagemail = str_replace("Ä", "Ae" , $messagemail);
$messagemail = str_replace("Ü", "Ue" , $messagemail);
$messagemail = str_replace("Ö", "Oe" , $messagemail);
$messagemail = str_replace("ß", "ss" , $messagemail);
$messagemail = str_replace("´", "" , $messagemail);
$messagemail = str_replace("`", "" , $messagemail);
$messagemail = str_replace("é", "" , $messagemail);
$messagemail = str_replace("è", "" , $messagemail);

Allerdings ersetzt der str replace Befehl in dem String garnichts, die Mail kommt wie vorher mit seltsamen Sonderzeichen an. Jetzt habe ich die Befürchtung, dass die Sonderzeichen nicht durch den Mail Befehl so verunstaltet werden, sondern schon durch das Senden mit POST an das PHP Dokument. Wenn die Sonderzeichen nämlich schon falsch im PHP Dokument ankommen, kann str_replace natürlich auch keine ä oder ö usw. finden bzw. ersetzen.

Wie kann ich kontrollieren, dass die Sonderzeichen mit POST richtig übertragen werden??

LG Yoda00

Codierung, PHP

Meistgelesene Beiträge zum Thema PHP