PHP - Automatisierte Navigationsleiste
Hallo zusammen,
ich habe vor einigen Wochen mal mit der Automatisierung einiger Homepagebereiche
begonnen und hatte mir vorgenommen endlich mal eine automatisierte Navigationsleiste
für meine verschiedenen online Projekte zu erstellen.
Grundsätzlich war die Idee, dass per PHP ein Ordner
[ nennen wir ihn mal Subpages ]
ausgelesen wird und die vorhandenen PHP Dateien verlinkt werden.
Bis dahin habe ichs auch hinbekommen
Hier das Ergebnis [ Script 1 ]
Allerdings wollte ich, wenn ich nun schon mal dabei bin noch
die Möglichkeit automatische Includes hinzufügen,
ein Script dafür habe ich auch
Folgendes [ Script 2 ]
Nun hatte ich vor das ganze zu verbinden,
leider ist es mir bisher noch nicht "erfolgreich" gelungen, diese Idee umzusetzen,
hat jemand von euch vielleicht eine Idee wie ich vorgehen kann.
ich habe vor einigen Wochen mal mit der Automatisierung einiger Homepagebereiche
begonnen und hatte mir vorgenommen endlich mal eine automatisierte Navigationsleiste
für meine verschiedenen online Projekte zu erstellen.
Grundsätzlich war die Idee, dass per PHP ein Ordner
[ nennen wir ihn mal Subpages ]
ausgelesen wird und die vorhandenen PHP Dateien verlinkt werden.
Bis dahin habe ichs auch hinbekommen
Hier das Ergebnis [ Script 1 ]
<html>
<head>
<title>Script 1</title>
</head>
<body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0">
<table border="0" width="100%" cellspacing="0" cellpadding="0" height="100%">
<tr>
<td bgcolor="#666666" height="50" align="center">
<?php
$verzeichnis = openDir("Subpages");
while ($file = readDir($verzeichnis)) {
if ($file != "." && $file != "..") {
if (strstr($file, ".php")) {
$name = explode(".", $file);
echo "<a style='color:#FFFFFF; text-decoration: none;' href=\"Subpages/$file\">$name</a>\n";
}
}
}
closeDir($verzeichnis);
?>
</td>
</tr>
<tr>
<td bgcolor="#F0F0F0"></td>
</tr>
</table>
</body>
</html>
Allerdings wollte ich, wenn ich nun schon mal dabei bin noch
die Möglichkeit automatische Includes hinzufügen,
ein Script dafür habe ich auch
Folgendes [ Script 2 ]
<html>
<head>
<title>Script 2</title>
</head>
<body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0">
<table border="0" width="100%" cellspacing="0" cellpadding="0" height="100%">
<tr>
<td bgcolor="#666666" height="50" align="center">
<a class="link" href="Script 2.php?id=page1">Page1</a>
<a class="link" href="Script 2.php?id=page2">Page2</a>
</td>
</tr>
<tr>
<td bgcolor="#F0F0F0">
<?php
switch($_GET['id']) {
default:
include('Subpages/Page1.php');
break; case "page2":
include('Subpages/Page2.php');
}
?>
</td>
</tr>
</table>
</body>
</html>
Nun hatte ich vor das ganze zu verbinden,
leider ist es mir bisher noch nicht "erfolgreich" gelungen, diese Idee umzusetzen,
hat jemand von euch vielleicht eine Idee wie ich vorgehen kann.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 273515
Url: https://administrator.de/forum/php-automatisierte-navigationsleiste-273515.html
Ausgedruckt am: 07.04.2025 um 01:04 Uhr
2 Kommentare
Neuester Kommentar
Hallo Sven,
Solch ein Include musst du aber auch absichern !
Sonst wäre es möglich über die Manipulation der Links an z.B. Systemdateien, Passwörter, Config-Files zu kommen.
Stelle also sicher, das nur die Dateien includiert werden, die auch erwünscht sind !
Na im Prinzip, musst du doch nur die generierten Links vom ersten Script so anpassen, das sie nicht mehr die Datei selber aufrufen sondern dessen Namen als Parameter weitergeben.
Bedenke, das die so includierten Dateien kein HTML.-Grundgerüst mehr enthalten dürfen, da diese nun in der ersten Datei steht. Somit haben alle "Subpages" das gleiche Grundgerüst / Design
Leerzeichen in Datei- und Verzeichnisnamen solltest du NIEMALS verwenden ! funktioniert zwar manchmal, aber IMMER FUNKTIONIEREN tut es ohne.
Genau so Groß- und Kleinschreibung, da vertippt man sich gerne und sucht ewig nach dem Fehler - nervige Sache das *g*
Folgendes ist NICHT getestet, einfach getippt !
Fehler dürfen als "Übung" selber behoben werden :-P
~Arano
Solch ein Include musst du aber auch absichern !
Sonst wäre es möglich über die Manipulation der Links an z.B. Systemdateien, Passwörter, Config-Files zu kommen.
Stelle also sicher, das nur die Dateien includiert werden, die auch erwünscht sind !
Na im Prinzip, musst du doch nur die generierten Links vom ersten Script so anpassen, das sie nicht mehr die Datei selber aufrufen sondern dessen Namen als Parameter weitergeben.
Bedenke, das die so includierten Dateien kein HTML.-Grundgerüst mehr enthalten dürfen, da diese nun in der ersten Datei steht. Somit haben alle "Subpages" das gleiche Grundgerüst / Design
Leerzeichen in Datei- und Verzeichnisnamen solltest du NIEMALS verwenden ! funktioniert zwar manchmal, aber IMMER FUNKTIONIEREN tut es ohne.
Genau so Groß- und Kleinschreibung, da vertippt man sich gerne und sucht ewig nach dem Fehler - nervige Sache das *g*
Folgendes ist NICHT getestet, einfach getippt !
Fehler dürfen als "Übung" selber behoben werden :-P
<!DOCTYPE>
<html>
<head> ... </head>
<body>
<?php
$SUBDIR = './subpages';
// wenn eine seite aufgerufen wird, includiere sie
if( isset($_GET['page']) )
{
// zumindest überprüfen ob die gerufenen Seite in unserem Verzeichnis als Datei existiert !
$strFilepath = $SUBDIR.'/'.$_GET['page'].'.php';
if( file_exist($strFilepath) )
{
// seite scheint zu existieren, also kann includiert werden.
include $strFilepath;
}
else
{
// falsche aufrufe werden einfach mit nem 404 quittiert
header("HTTP/1.1 404 Not found");
exit;
}
}
// wenn KEINE seite aufgerufen wird, zeige linkliste
else
{
// lese verzeichnis aus und generiere Links !
$resVerz = opendir( $SUBDIR );
if( is_resource($resVerz) )
{
while( $strFile=readdir($resVerz) )
{
if( '.'==$strFile || '..'==$strFile || '.php'!=substr($strFile,-4) )
continue;
$strFilename = substr( $strFile, 0, -4 );
echo '<a href="'.$SERVER['PHP_SELF'].'?page='.$strFilename.'">'.$strFilename.'</a><br>';
}
}
else
{
echo 'Oops... Verzeichnis kann nicht gelesen werden !'
}
}
?>
</body>
</html>
~Arano