Ankündigung

Einklappen
Keine Ankündigung bisher.

mit code einverstanden? ;) oder gibts verbesserungen?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mit code einverstanden? ;) oder gibts verbesserungen?

    hi leute. hab schnell für mich ein kleines "cms" geschrieben. ist wirklich nur was winziges.

    ich hab folgende verzeichnisstruktur:
    root/
    root/index.php
    root/sites/ hier liegen die versch. php dateien
    root/sites/lang/en/ hier liegen die englischen lang include php files drin
    root/sites/lang/de/ hier liegen die deutschen lang include php files drin

    meine philosophie wäre dass in der index die session geschrieben wird, dann die sprache in die session und der content. danach wird der content inkludiert. die datei root/sites/irgendwas.php enthält konstanten für die darstellung der sprache. bsp: HEADLINE. dann wird je nach sprache aus dem ordner die datei mit den konstanten inkludiert.

    hier der code der index.php:
    Code:
    // session starten
    session_start();
    $SID = $PHPSESSID;
    
    // sprache ermitteln und in session festlegen
    if(!isset($_SESSION['lang']) && !isset($_GET['lang'])) {
      $_SESSION['lang'] = 'de';
    } else
    if(!isset($_SESSION['lang']) && isset($_GET['lang'])) {
      if(file_exists('sites/lang/'.$_GET['lang'])) {
        $_SESSION['lang'] = $_GET['lang'];
      } else {
        $_SESSION['lang'] = 'de';
      }
    };
    
    // content ermitteln und in session festlegen
    if(!isset($_SESSION['cont']) && !isset($_GET['cont'])) {
      $_SESSION['cont'] = 'start';
    } else 
    if(isset($_GET['cont'])) {
      if(file_exists('sites/'.$_GET['cont'])) {
        $_SESSIOn['cont'] = $_GET['cont'];
      } else {
        $_SESSION['cont'] = 'start';
      }
    }
    
    include('sites'.$_SESSION['cont'].'.php');
    hier der text einer beispielsweisen datei:
    Code:
    // langfile holen
    include('sites/lang/'.$_SESSION['lang'].'/'.$_SESSION['cont'].'.php');
    
    echo HEADLINE;

  • #2
    Hallo,

    dein System ist etwas löchrig. Was ist, wenn ich jetzt an $_GET['lang'] ein "../sites" übergebe? Gut mal wieder Worst-Case. Aber Worst-Case abzudecken ist ja gerade die Schwierigkeit beim Coden.

    Ich schreib dir mal wie ich es machen würde:
    PHP-Code:
    <?php
    session_start
    ();
    //$SID = $PHPSESSID;  // wozu Variablen kopieren?

    // language check
    $validLanguages = array('deDE''chDE''chFR'); // den Array könntest du ja aus der Ordner-Struktur generieren
    $defaultLanguage $validLanguages[0];

    if (!isset(
    $_SESSION['lang'])) {
      if (
    in_array($_GET['lang'], $validLanguages))
        
    $_SESSION['lang'] = $_GET['lang'];
      else
        
    $_SESSION['lang'] = $defaultLanguage;
    }

    // ..
    ?>

    Kommentar


    • #3
      hm... mann mann mann. an das hatte ich gar nicht gedacht. danke für den tipp. stimmt natürlich. werde ich bei cont und lang so machen. einfach automatisiert aus verzeichnis in ein array einlesen.

      danke!

      Kommentar

      Lädt...
      X