Felix Riesterer: Ein weiterer Versuch meiner Webseite + eine php Frage!

Beitrag lesen

Liebe(r) seufZ,

So, nun ist mein Problem das ich KEIN index.php$lan=de oder index.php$lan=en aufrufen möchte,

das hätte auch wenig Sinn, da bei einem Aufruf das $_GET-Array keinen Schlüssel "lang" enthielte. Für diesen Zweck müsste ein Link am Ende auf "index.php?lang=de" lauten.

Aber: solche Links willst Du eigentlich nicht (meiner bescheidenen Meinung nach). Besser wären Links dieser Art:

  • ..../index.php/waldfrieden-tassilo-sturm
  • ..../index.php/forest-peace-tassilo-sturm

Der erste ist ganz klar die deutsche Textversion, der zweite die englische. Damit kann der User "einfach" den passenden Link anklicken und landet in der gewünschten Sprachversion des Artikels.

In diesem Artikel kann dann die jeweils andere Sprachversion unter dem Linktext "English version" bzw. "Artikel in Deutsch" verlinkt werden. Beide Links auf der selben Seite sind entgegen Deiner "Linkbeschreibung" gerade nicht notwendig (der deutsche Link stört z.B. auf der deutschen Seite).

SONDERN, ist es möglich im Menü (a href....) NUR jeweils den Wert "de" oder "en" zuzuweisen dann irgendwie ein "AUFFRISCHEN" der Seite" und der jeweilige deutsche oder englische text wird dargestellt!

Ein Neuladen der Seite mit einem veränderten "lang"-Parameter in der URL? Ja, das ist technisch denk- und lösbar. Das kommt auf Deine PHP-Logik an, wie Du den Link platzierst.

Eine sofortige Änderung des Seiteninhalts ohne Neuladen geht nur mit clientseitiger Technik, also JavaScript. Hier böte es sich an, im JavaScript die jeweils andere(n) verfügbare(n) Version(en) vorzuladen, um den Textinhalt unmittelbar zu ersetzen. Diese setzt aber eine Lösung mit Neuladen voraus, auf die das JavaScript aufsetzt, um den Ladevorgang (oder die Ladevorgänge) im Hintergrund schon abzuarbeiten, bevor der User auf einen Link klickt.

<li><a href="<?php $page = (trim($_GET['page']) != "de") ? $_GET['page']; + REFRESH ">Deutsch</a></li>
<li><a href="<?php $page = (trim($_GET['page']) != "en") ? $_GET['page']; + REFRESH ">Englisch</a></li>

Soll das jetzt mit oder ohne Neuladen der Seite gemeint sein? Ich schätze ohne. Allerdings muss im Vorfeld geprüft worden sein, ob der Wert in $_GET['page'] ein gültiger Wert ist. Sonst lässt sich vielleicht Dein PHP-Script aushebeln und eine Sicherheitslücke daraus basteln.

Das sofortige Umschalten (meintest Du das mit "refresh"?) geht wie gesagt nur mit einem JavaScript, welches der User auch zulassen muss (ist Standard), damit diese "Verbesserung" überhaupt greift.

Genauso wollte ich die Bildauswahl (rechts) machen wen man 1 2 3 4 5 6 7 <klickt>,

Da habe ich es bisher so ähnlich.... [...]

$page_array = array("seite1","seite2","seite3","seite4","seite5","seite6","seite7");

define('PAGE_STANDARD', "seite1");
?>

Diese Lösung finde ich nicht so gut. Aber Du wirst erst in die Thematik hineinwachsen, sodass Du erst mit etwas mehr Erfahrung eine Lösung findest, wie Du Deine Inhalte speichern willst. Eine XML-Datei, oder eine Datenbank sind Alternativen.

<img src="fotos/20150409_020705_web_klein.jpg" alt="RTFM-Kunsthalle Münster 2015" width="750 height="422"/>

Das Vorhalten der Fotos in einem gesonderten Fotos-Verzeichnis finde ich eine gute Idee. Das würde ich in diesem Fall auch so machen.

Liebe Grüße,

Felix Riesterer.