Nach mod rewrite kein php_self mehr?
Yeenah
- php
Hallo,
seit Kurzem unterstützt mein Server auch endlich Mod Rewrite und ich habe es auch sofort voll ausgenutzt, sprich alle Links umgeschrieben und Parameter entfernt. Alles schön und gut, aber leider ist folgendes Problem aufgetreten:
1. Vor Mod Rewrite habe ich ein Pagination Script für die Seitenzahlen benutzt:
$menu = array(
"3" => "3",
"2" => "2",
"1" => "1",
);
?>
<?
foreach($menu as $eintrag => $datei){
if ($datei == basename($_SERVER['PHP_SELF']))
{
echo " <a class=\"pagination\" href=\"$datei\"><font color=\"#626ea0\">$eintrag</font></a> ";
}
else
{
echo " <a class=\"pagination2\" href=\"$datei\">$eintrag</a> ";
}
}
?>
Da ja alle Seiten die Endungen .php hatten, wurde die Seitenzahl der aktuellen Seite hervorgehoben.
2. Nach dem ich alle Links umgeschrieben habe, haben sie auch keine Endungen mehr, sehen also so aus: http//seite.de/inhalt
Zwar funktioniert noch das Pagination Script, leider wird die aktuelle Seitenzahl nicht mehr hervorgehoben und sieht aus wie alle anderen eitenzahlen.
Wie kann ich das Script verändern, so dass die aktuelle Seitenzahl immer noch hervorgehoben wird?
Danke im Voraus!
Hallo Yeenah,
if ($datei == basename($_SERVER['PHP_SELF']))
if ($datei == str_replace('.php','',basename($_SERVER['PHP_SELF')
Haut das so hin?
Noch eine Frage - was gibt denn
basename($_SERVER['PHP_SELF')
bei dir aus?
Müßtest dein Array da nich nur noch anpassen?
Funktioniert leider nicht, weil ich das Mod Rewrite nicht so gemacht habe:
Vorher
www.seite.de/seite.php
Nachher
www.seite.de/seite
Die alte Adresse war sehr lang mit vielen Parametern, die habe ich dann verkürzt. Ich dachte eigentlich auch, ich könnte die arrays einfach ändern, aber dann stimmt die Adresse der Links nicht mehr. Ich darf sie also nur mit "1", "2" etc benennen.
Hi Yeenah,
Die alte Adresse war sehr lang mit vielen Parametern, die habe ich dann verkürzt. Ich dachte eigentlich auch, ich könnte die arrays einfach ändern, aber dann stimmt die Adresse der Links nicht mehr. Ich darf sie also nur mit "1", "2" etc benennen.
Probier mal $_SERVER['SCRIPT_NAME'] zu verwenden, denn $_SERVER['PHP_SELF'] hängt teilweise von mod_rewrite ab, wie du gemerkt hast und kann ggf. durch den Client manipuliert werden (siehe hierzu auch im Archiv).
Viele Grüße,
~ Dennis.
Ave Yeenah!
Vorher
www.seite.de/seite.phpNachher
www.seite.de/seiteDie alte Adresse war sehr lang mit vielen Parametern, die habe ich dann verkürzt. Ich dachte eigentlich auch, ich könnte die arrays einfach ändern, aber dann stimmt die Adresse der Links nicht mehr. Ich darf sie also nur mit "1", "2" etc benennen.
Über exakt dieses Problem hatte ich mir neulich auch Gedanken gemacht, mit Chris Hilfe kam da auch was ganz brauchbares bei raus.
Grüße aus H im R an Yeenah,
Primus Enginus*