Dynamischer Inhalt?

S-lord

Mitglied
Hi

ich stehe vor der folgenden Herausforderung:
Ich habe eine inde.php mit dem Layout der Seite etc. und möchte nun, dass alle Menüpunkte etc. hinterher im Content dieser index.php angezeigt werden.

Hier mal der Quellcode der index.php ab dem body-tag:

PHP:
<body>
<!-- Hinweis -->
<?php include("inc/hinweis.inc"); ?>
<!-- Header -->
<div id="div_header" align="center"><img src="images/logo.png" alt="Koanda.de" /></div>
<!-- Navigation -->
<?php include("inc/navigation.inc"); ?>
<!-- Inhalt -->
<table border="0" align="center">
<tr>
<td>
<div id="div_content" align="center">
Test //Hier soll später der Inhalt auftauchen!
</div>
</td>
</tr>
</table>
<!-- Copyright Hinweis -->
<?php include("inc/copyright.inc"); ?>
<!-- Validate -->
<?php include("inc/valid.inc"); ?>
</body>
</html>

Und nun soll dort, wo "test" steht immer der jeweilige Inhalt auftauchen.
Ich könnte natürlich die index.php mehrfach kopieren, entsprechend umbenennen und den Code einfügen aber das wäre sehr unkomfortabel.
Funktioniert das nicht mittels get in etwa so: "name.domain?kategorie=wert"?
Wenn ja, wie mache ich so etwas?
Ich hoffe ihr helft mir!

Vielen Dank!
 
Hallo!

Dazu findest Du bei den PHP-Tutorials einige Beispiele.
Auch wurde dieses Thema hier im PHP-Forum schon unzählige male behandelt.

Gruss Dr Dau

PS: Ich würde switch() nutzen.
 
Nehmen wir dieses Tutorial:
http://www.tutorials.de/forum/php-t...che-art-fuer-z-b-index-php-section-links.html

Schön und gut aber ich habe vor, dass man Uploads per Formular hinzufügen kann.
Das an sich ist kein Problem aber wie weise ich jedem Upload dann so einen Link zu?
Ich kann doch nicht für jeden Upload eine neue Datei anlegen.
Kann ich nicht durch eine bestimmte GET Übergabe eine bestimmte Anzahl an MySQL Einträgen auslesen?
Stellt euch einfach ein Script vor mit dem ihr per Formular etwas in eine DB einfügen könnt.
Und dann ein Link zu diesem Eintrag erstellt wird der dann auch auf der Seite zB downloads.php in einer Liste aufgereiht wird und wenn ihr auf einen dieser Einträge klickt, dass dort dann alle Informationen angezeigt werden die per Formular übergeben wurden (uA der Downloadlink).
 
Binde doch einfach alle infos in einen Link:
<a href="download.php?name=bild1&datum=21-10-07&ersteller=gast">Bild 1</a>

Mit einer Datenbankverknüpfufng sähe das dann so aus:
PHP:
$sql = "SELECT * FROM uploads";
$res = mysql_query($sql);
while ( $row = mysql_fetch_array($res, MYSQL_ASSOC) )
{
printf("<a href='?info=%s'>info</a> ", $row['id']);
printf(" <a href='download.php?name=%s&datum=%s&ersteller=&s'>%s</a>", $row['name'], $row['datum'], $row['ersteller'], $row['name']);
echo '<br />';
}
//Links wurden alle erstellt

//Info anzeigen
if ( isset($_GET['info']) )
{
$id = mysql_real_escape_string($_GET['info']); //Gegen fremdeingriffe schützen
$sql = "SELECT * FROM uploads WHERE id = $id";
$res = mysql_query($sql);
$show = mysql_fetch_assoc($res);
printf("ID: %s | Name: %s | Hinzugefügt: %s | Von: %s <br />", $show['id'], $show['name'], $show['datum'], $show['ersteller']);
}
So wäre es lösbar :)
 
Ich erkläre dir dasm mal ^ ^

PHP:
$sql = "SELECT * FROM uploads"; // Hier kommt dein Query hin
$res = mysql_query($sql); //Query ausführen
while ( $row = mysql_fetch_array($res, MYSQL_ASSOC) ) // Alle Daten Suchen, die können über ein  array angesprochen werden
{
printf("<a href='?info=%s'>info</a> ", $row['id']); // Einen Link für die Infos ausgeben, der id Wert wird an die URL angehängt
printf(" <a href='download.php?name=%s&datum=%s&ersteller=&s'>%s</a>",$row['name'], $row['datum'], $row['ersteller'], $row['name']);//Der Link geht auf download.php, %s diehnt als pLatzhalter und wird am ende durhch die nach dem Komma stehenden Variablen ersetzt
echo '<br />';
}
//Links wurden alle erstellt

//Info anzeigen
if ( isset($_GET['info']) ) //Wenn jemand auf den Info L?nk geklickt hat,
{
//Durch das klicken auf den Link hat dir URL ein ?info=id id ist eine Zahl]  am Ende 
//Stehen, die GET Variable existiert also
$id = mysql_real_escape_string($_GET['info']); //Gegen fremdeingriffe schützen
//mysql_real_escape_string(); Filter zeichen aus dem String, falls ihn jemand manipulieren möchte.
$sql = "SELECT * FROM uploads WHERE id = $id"; //Neuer Query
$res = mysql_query($sql); //Und wieder ausführen
$show = mysql_fetch_assoc($res); //Die Daten in ein Array packen, von nur E?NEM 
//eintrag, deswegen brauchen wir keine whileschleife
printf("ID: %s | Name: %s | Hinzugefügt: %s | Von: %s <br />", $show['id'], $show['name'], $show['datum'], $show['ersteller']);
//Alles ausgaben
}

Soweit verständlich?

Das habe ich hieraus gelesen:
Und dann ein Link zu diesem Eintrag erstellt wird der dann auch auf der Seite zB downloads.php in einer Liste aufgereiht wird und wenn ihr auf einen dieser Einträge klickt, dass dort dann alle Informationen angezeigt werden die per Formular übergeben wurden (uA der Downloadlink).


Wie gesagt, nur ein Beispiel, kann natürlich geändert werden ;)
 
Jop auf jeden Fall verständlicher.
Danke.
Muss ich mir nachher mal in Ruhe ansehen.
Am liebsten würde ich mir ein ganz simples CMS runterladen, testen und gucken wie es funktioniert, aber Systeme wie Joomla sind zu umfangreich als, dass ich dadurch lernen könnte.
Hat jemand eine Empfehlung für mich?
 
Zurück