PHP-Menü

Dieses Thema PHP-Menü im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von noah1, 25. Aug. 2005.

Thema: PHP-Menü Hallo, ich stehe gerade vor folgendem Problem: Ich habe eine Menü das wie folgt aufgebaut ist: <?php $menue =...

  1. Hallo, ich stehe gerade vor folgendem Problem:

    Ich habe eine Menü das wie folgt aufgebaut ist:

    Code:
    <?php
    
    $menue = array(
    			Home => index.php?go=home,
                 ...
                 Impressum => index.php?go=impressum
                
                foreach($menue as $eintrag => $datei){
    
    
    Jetzt soll ja auch der entsprechende Menüpunkt ausgegeben werden, das sieht dann so aus:
    Code:
    <?php
    echo <a href=\$datei\>$eintrag</a>;
    ?>
    Und jetzt kommt mein Problem, ich möchte nämlich daß die aktuell angezeigte Seite zwar auch im Menü weiterhin gezeigt wird aber ohne Link, im Moment sieht das dann so aus:
    Code:
    <?php
    
    foreach($menue as $eintrag => $datei)
        {
    	    if ($datei == basename($_SERVER['HTTP_REFERER'])) 
                {
    			echo <a title=''>$eintrag</a>;	
    	        }
    		else if (substr($datei, 0, 23) == index.php?go=gaestebuch)
                {
    			echo <a title='Zur Zeit $count Einträge' href='$datei'>$eintrag</a>;
    			}		
    		else 
                {
    			echo <a href='$datei'>$eintrag</a>;
    			}
    	}
    
    ?>
    
    Vom Prinzip her funktioniert das auch fast - aber halt nur fast.
    Wenn ich einen Link im Menü klicke wird die Seite auch aufgerufen, aber im Menü ändert sich nichts.
    Wenn ich denselben Link dann nochmal klicke habe ich das was ich will, der Eintrag im Menü erscheint nicht als Link.
    Warum also muß ich den Menüeintrag zweimal klicken?
    Ich vermute mal daß der HTTP_REFERER zu spät ausgelesen wird, aber wie kann ich es hinbekommen daß er früher ausgelesen wird ?
     
  2. Der HTTP_REFFERER ist, von wo Du herkommst, nicht, wo Du bist...

    PHP_SELF sollte da helfen, das ist die Datei, wo Du bist.
     
  3. Ähm ja,

    da die Erklärung von Faroul doch etwas verwirrend war/ist (zumindest für mich, hier mal die Offizielle Erklärung.

    Quelle: http://de2.php.net/reserved.variables

    Aus oben genannten Gründen bitte immer auf die Verwendung von php_self aufpassen!!! Denn die Adresse die ausgegeben wird ist RELATIV, nicht Absolut. Es soll aber manche Aufgaben geben von absolute Pfadangaben notwendig sind :D ;)
     
  4. PHP_SELF hilft/half auch nicht, das hatte ich ursprünglich da stehen und jetzt wollte ich die Funktion ja endlich mal so hinkriegen wie gewollt.
    Aber ich hab es jetzt selber hinbekommen:

    Code:
    <?php
    if ($datei == basename($_SERVER['REQUEST_URI'])) 
    .....
    ?>
     
  5. Da kommt mir noch eine Idee - mit $_SERVER['HTTP_REFERER']) kann ich ja die Seite auslesen, von der der Besucher auf meine Seite gekommen ist.
    Nur leider wird mir nur der Teil hinter dem / angezeigt, nicht wirklich aussagekräftig.
    Womit bekomme ich die komplette Adresse ausgelesen, von der der Besucher gekommen ist, bzw. ist das überhaupt möglich?
    Reichen würde mir auch schon die Domain.
     
  6. $_server['remote_addr']
     
  7. Damit bekomme ich ja die IP-Adresse, die brauche ich aber, zumindest an dieser Stelle nicht.
    Das was ich ermitteln will ist die Web-Adresse von der der User auf meine Domain verlinkt wurde.
     
  8. Gesetz dem Fall alle Seiten usw. werden mit dem Parameter go=xxxx aufgerufen, sollte es ziemlich easy sein ;)

    Code:
    <?php
    $menue = array('home' =>->Startseite',
    			->gb' =>->Gästebuch', 
    			->forum' =>->Forum', 
    			->kon' =>->Kontakt', 
    			->impr' =>->Impressum');
    if(count($menue)) {
     $m =->';
     foreach($menue as $key => $value) {
      if((!$_REQUEST[go] || $_REQUEST[go] == home) && $key == home) {
       $m .=-><p>'.$value.'</p>';
      }
      else {
       $m .= ($key == $_REQUEST[go]) 
         ?-><p>'.$value.'</p>' 
         :-><p><a href=index.php?go='.$key.' title='.$value.'>'.$value.'</a></p>';
      }
     }
    }
    echo $m;
    ?>
    
     
  9. Ich glaube da hast Du mich nicht richtig verstanden.
    Und zwar geht es mir darum in einer Datenbank zu speichern, von wo die Besucher auf meine Seite verlinkt wurden, einfach nur so interessehalber.
    D.h. daß wenn ein Besucher meiner Seite über Google gesucht hat und dann den Link im Ergebnis anklickt soll bei mir gespeichert werden daß er über Google gekommen ist.
    Soweit daß ich den hinteren Teil der URL - ab dem->/' gespeichert bekomme bin ich ja schon, aber wie kriege ich die ganze URL ?
     
  10. Dann nem doch nen vernünftigen Counter, Angebote gibets da doch wirklich genug ;D

    z.B. http://bbclone.de/demo/ kann man in 2min. installieren ;)

    So ein durcheinander wie du da vorhast, is doch ....... , gelle ;D