Fehler beim Auslesen der Werte (Arrays)
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anzahl
array
aufrufen
code
element
http
kleines problem
log
manual
nutzen
ode
operator
page
pfad
sicherheit
tip
url
wahrscheinlich code
wirken
zweite sache
-
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
Versucht, aber mir wird nur "log" ausgegeben. Ich will ja den Dateipfad dann mit "require($seite);" aufrufen, aber so recht will das nicht...<?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; ?>
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
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;
-
Vielen dank Nikic!
Hat super funktioniert!
Jetzt hat mein "selbstgebasteltes CMS" auch noch ein wenig Sicherheit ;D
Prost & g8 -
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';
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage