Hab meine Homepage mit PHP realisiert. Zum verlinken von Inhalt habe ich Konstrukte wie <a href="index.php?id=1">... verwendet.
Igitt, mal abgesehen davon, daß viele Suchmaschinen und die meisten Menschen sich sowas nicht merken (können), ist das Fragezeichen-Anhängsel nie für solche Zwecke gedacht gewesen.
Benutze wenn möglich besser $_SERVER["PATH_INFO"].
Die Variable wurde durch Call By Reference definiert. Dies bald ja nicht mehr möglich, dann gibt es nur noch Call By Value.
Wie realisiere ich denn jetzt die Navigation?
Wie hast Du sie denn bis jetzt realisiert? Ansich sieht die Geschichte normalerweise so aus, daß man (Variablen-/Parameter-) Namen und den Wert an die URL anhängt (wie Du es gemacht hast) und dann im Skript einfach die Variable abfragt. Etwa so
switch ($_GET["id"])
{
case 1: echo "Seite 1"; break;
case 2: echo "Seite 2"; break;
blablabla
}
Was das mit call by sowieso zu tun hat, ist mir etwas schleierhaft.
Die path_info-Variante sähe übrigens so aus:
switch ($_SERVER["PATH_INFO"])
{
case "kontakt": echo "Seite 1"; break;
case "ueber_mich": echo "Seite 2"; break;
blablabla
}
Die URLs in etwa so: "index.php/kontakt" und "index.pho/ueber_mich". index.php muß natürlich nicht index.php heißen ,)
Wenn ich im Quelltext die Variable vorher z.B. mit $id=0; definiere, wird die Variable ja bei jedem erneuten Aufruf der Datei wieder auf 0 gesetzt, und kein Link funktioniert mehr.
Warum definierst Du sie dann? Du willst doch den Wert aus der URL, und den gibt Dir PHP im Feld $_GET. phpinfo() gibt Dir einen Einblick in die wunderbare Welt der vordefinierten Variablen.
Wie kann ich erreichen, dass die Variable nur beim ersten Auruf der Datei definiert wird?
Wieso nur beim ersten Aufruf? Möchtest Du danach keine Navigation mehr haben?
Gruß,
soenk.e