kostenloser Webspace werbefrei: lima-city


Fehler beim Auslesen der Werte (Arrays)

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    limabone

    Kostenloser Webspace von limabone

    limabone hat kostenlosen Webspace.

    Hallo,
    ich hab hier ein kleines Problem. Ich möchte gernen den Pfad zu mehreren Datein und die Information, ob man eingeloggt sein muss ode rnicht (um sie zu sehen).
    Ich habs mit
    <?php
    if(count($_GET['p']) <= 0) { $p = 'home'; }else{ $p = $_GET['p']; }
    $page = array(
     "404"=>array("pages/404.php"=>page, "0"=>log),
     "home"=>array("pages/home.php"=>page, "0"=>log)
    );
    //  0 = Nur nicht-eingeloggt, 1 = Nur eingeloggt
    if(!isset($_SESSION['id'])) { $log=0; }else{ $log=1; }
     
     $seite = $page[$p][$log];
     echo $seite;
    ?>
    Versucht, aber mir wird nur "log" ausgegeben. Ich will ja den Dateipfad dann mit "require($seite);" aufrufen, aber so recht will das nicht...
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Du meintest wahrscheinlich:
    $page = array(
     "404"=>array("page" => "pages/404.php", "log" => 0),
     "home"=>array("page" =>"pages/home.php", "log" => 0),
    );

    und dann
    $seite = $page[$p]['page'];
    $zugriffErlaubt = $page[$p]['log'] == $log;
  4. Autor dieses Themas

    limabone

    Kostenloser Webspace von limabone

    limabone hat kostenlosen Webspace.

    Vielen dank Nikic!
    Hat super funktioniert!
    Jetzt hat mein "selbstgebasteltes CMS" auch noch ein wenig Sicherheit ;D
    Prost & g8 :prost:
  5. Nur noch zwei Tipps zu deinem Code:
    if(count($_GET['p']) <= 0) { $p = 'home'; }else{ $p = $_GET['p']; }

    "count($_GET['p']) <= 0" wird hier nicht wirken. count() zählt die Anzahl von Elementen in einem Array. Wahrscheinlich meintest du:
    if(!empty($_GET['p'])) { $p = 'home'; }else{ $p = $_GET['p']; }

    Das prüft, dass diese Get-Variable gesetzt wurde und nicht leer ist.
    Weiterhin solltest du hier am besten kein if/else Konsrukt nutzen, sondern den Ternary Operator:
    $p = !empty($_GET['p']) ? $_GET['p'] : 'home';


    Die zweite Sache ist "$page[$p]['page']" (und "$page[$p]['log']"): Wenn $page[$p] nicht existiert, dann wird es eine E_NOTICE geben. Du solltest also vorher machen:
    if (!isset($page[$p])) $p = '404';
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!