• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Aktive Seite

EndOfGreen

Neues Mitglied
Ich möchte über PHP auslesen, welche Seite gerade aktiv ist und den Link dafür anders gestalten lassen, damit der Benutzer sieht, auf welcher Seite er sich gerade befindet.

Das ist der bisherige Code:
PHP:
 <li name="menuItem" onclick="javascript:location.href='index.php';">
    <a href="index.php" style="<?php
  $_SERVER['PHP_SELF']
    if ($_SERVER == "index.php") {
      font-weight: bold;
     }
    else { 
      text-decoration: none;
    }        
?>">Startseite</a></li>
Nur so funktioniert das nicht.
 
Zuletzt bearbeitet:
Hallo,

warum stellst du zu Beginn des PHP-Codes ein $_SERVER['PHP_SELF'] in den Raum, verwendest es aber nicht?

- Du musst $_SERVER['PHP_SELF'] mit "index.php" vergleichen, nicht $_SERVER.

Und den CSS-Code musst du durch ein echo ausgeben.

PHP:
<li name="menuItem" onclick="javascript:location.href='index.php';">
    <a href="index.php" style="<?php
    if ($_SERVER['PHP_SELF'] == "/index.php") {
      echo "font-weight: bold;";
     }
    else { 
      echo "text-decoration: none;";
    }        
?>">Startseite</a></li>

Gruß
 
Naja, ich dachte, dass der Wert in $_SERVER 'gespeichert' ist. Wie gesagt, ich hab mit PHP gerade erst begonnen.

Aber irgendwie funktioniert der Code nicht, zumindest verändert sich nichts. :?
 
Erster Schritt: prüfe, was genau in $_SERVER["PHP_SELF"] steht. Dazu genügt es das mal mit echo irgendwo auf der Seite ausgeben zu lassen.

Und dann solltest Du die Bedingung anders formulieren. Du machst hier einen String-Vergleich, dabei die Variablen so zu vergleichen wie oben zu sehen ist eigentlich nicht richtig. Korrekter wäre:

Code:
<li name="menuItem" onclick="javascript:location.href='index.php';">
    <a href="index.php" style="<?php
    if ( strcmp($_SERVER['PHP_SELF'],"[COLOR="red"]/index.php[/COLOR]") == 0 ) {
      echo "font-weight: bold;";
     }
    else { 
      echo "text-decoration: none;";
    }        
?>">Startseite</a></li>

Und das was ich rot markiert habe, musst Du durch das ersetzen was Du bei erstgenannten Test herausbekommst.
 
Zur besseren Verständnis sollte man evtl noch hinzufügen, dass $_SERVER ein globaler (assoziativer) Array ist, wie $_GET oder $_POST. Wenn du versuchst, $_SERVER anzusprechen, sprichst du den ganzen Array an. Du musst schon die einzelnen Array-Elemente ansprechen, indem du den Key hintendrann hängst, also $_SERVER['PHP_SELF'].

Hier hast du auch eine Liste mit allen $_SERVER-Elementen: PHP: $_SERVER - Manual
 

Neueste Beiträge

Zurück
Oben