Problem: Ich möchte eine benutzerdefinierte Header-Datei für jeden Inhaltstyp ($categoryId
) auf meinem CMS laden. Wenn die URL beispielsweise "/? Action = archive & categoryId = 1" lautet, möchte ich sie in meine Datei "header_medicine.html" einschließen.bedingte Header-Quelle basierend auf Server-URL-Pfad
Ich bin definitiv ein php noob, aber ich habe versucht, dieses Forum zu respektieren und meine Frage mit den Tipps unter this post about conditional code based on url zu lösen, aber die Archivseite lädt immer noch von meinem 'else' Zustand.
Hier ist der Code:
<?php $archive_url = parse_url($_SERVER['REQUEST_URI']);
if ($archive_url['path'] == "/?action=archive&categoryId=1")
include "header_medicine.html";
elseif ($archive_url['path'] == "/?action=archive&categoryId=2")
include "header_science.html";
elseif ($archive_url['path'] == "/?action=archive&categoryId=3")
include "header_other.html";
else
include "header.html";
?>
Dank für meine Frage unter Berücksichtigung!
Update: Lösung
Für jeden, der interessiert ist, hier ist die Arbeitslösung, um den Code Problem, das ich oben geschrieben (mit vereinfachten fileysystem Syntax). Ich habe nicht die Isset-Funktion verwendet, die @ Michael in seinem Code unten empfohlen hat. Danke an alle, die Vorschläge gemacht haben, ich bin jetzt einen Schritt näher dran, einen Hinweis auf PHP zu haben.
<?php switch ($_GET['categoryId']) {
case 1:
include "header_medicine.html";
break;
case 2:
include "header_science.html";
break;
case 3:
include "header_other.html";
break;
default:
include "header.html";
}
?>
Lesen Sie über das GET super global. –
Warum nicht einfach $ _GET Variable verwenden? – hjpotter92
Es gibt auch eine Frage der categoryId ändern, sollten Sie wahrscheinlich eine textliche Darstellung anstelle einer Zahl haben, weil zum Beispiel, wenn Sie löschen 'categoryId = 1' Header Header_medicine.html wird nie angezeigt. Berücksichtigen Sie auch die Verwendung von 'dirname (__ FILE __)' auf Ihrem Code. – Panagiotis