Seitendesign php

sivizius

Mitglied
Ich hab mehrere Seiten auf meiner website (die läuft noch im localhost) und ich will, dass alle das selbe Design haben und es nur einen Bereich gibt, der anders ist. Nun ist das Problem, dass ich noch am Design arbeite und das oft ändere. nun will ich nicht jeder Seite einzeln bearbeiten, sondern ich will eine Datei haben, in der das Design liegt und die anderen Seiten nur darauf zugreifen.
Code:
<head>
 <title>Vorlage</title>
 <meta name="sivizius">
 <base href="localhost">
 <script type="text/javascript" src="../zufallsbild.js"> </script>
</head>
<body background="../Bilder/background1.png"> </body>
<!-- Hintergrund -->
<table border="0">
<colgroup>
    <col width="2500">
  </colgroup>
<tr> 
<td>
<body>
<div align="right">
<img src="http://www.tutorials.de/Bilder/sivicia.png" width='60' height='60' align="left">
<img src="http://www.tutorials.de/Bilder/banner1.png" width='700' height='60'>
<a href="http://www.piratenpartei.de">
<script type="text/javascript" language="JavaScript">
zufallsbild ()
</script>
</a>
</div>
</body>
<body link="#000000" vlink="#000000">
<table border="0">
  <colgroup>
    <col width="200">
    <col width="900">
    <col width="200">
  </colgroup>
   <tr> 
    <td>
	<table border="2">
	<tr>
	<td>
	
	<h5>Datum und Zeit:</h5>
	<div style="text-align:center;">
	<script type='text/javascript'>
		<!--
		var Datum = new Date();
		var Tag = Datum.getDate();
		var Monat = Datum.getMonth() + 1;
		var Jahr = Datum.getFullYear();
		var Stunden = Datum.getHours();
		var Minuten = Datum.getMinutes();
		if (Minuten <10)
		{
		Minuten= "0" + String(Minuten);
		}
		document.write(Tag + "." + Monat + "." + Jahr + " - " + Stunden + ":" + Minuten);
		//-->
	</script>	
	</div>
	<h6>Neuladen um zu Aktuelisieren</h6>
	</td>
	</tr>
	<tr>
	<td>
	<h5>Navigation:</h5>
	<a href="http://www.tutorials.de/index.php">»Zur Hauptseite</a> <br>
	<a href="index.php">»Zur Projektstartseite</a> <br>
	<a href="help.php">»Hilfe!</a> <br>
	<a href="javascript:history.back()">»Eine Seite zurück</a> <br>
	<a href="javascript:history.forward()">»Eine Seite vor</a> <br>
	</td>
	</tr>
	<tr>
	<td>
	<h5>Projekte:</h5>
	<a href="http://www.tutorials.de/bestimmungsschluessel/index.html">»Bestimmungsschlüssel</a> <br>
	<a href="http://www.tutorials.de/ikariam/index.html">»Ikariam</a> <br>
	<a href="http://www.tutorials.de/wiki">»Wiki</a> <br>
	<a href="http://www.tutorials.de/download/index.html">»Downloads</a> <br>
	Projekte
	</td>
	</tr>
	<tr>
	<td>
	<h5>Persönlicher Bereich:</h5>
	</td>
	</tr>	
	<tr>
	<td>
	<h5>Feedback:</h5>
	<a href="http://www.tutorials.de/impressum.php">»Impressum</a> <br>
	<a href="http://www.tutorials.de/found_bug.php">»Fehler melden</a> <br>
	<a href="http://www.tutorials.de/found_trash.php">»Müll melden</a> <br>
	</td>
	</tr>
	</td>
	</tr>
	</table>
    </td>

    <td>
	
	Text der Website
	
    </td>
    <td>
	<script src="http://www.greenaction.de/kampagne/widget.js/623148ec10a43a97d1821f017035ca63"></script>
	Platz für Werbung
    </td>
  </tr>
</table>
</body>

</td> 
</tr>
</table>
BITTE KEINE DEBATTE AM INHALT******
Ich hab mit google nichts Vernünftiges gefunden.
-Zeile 100-
MFG
sivizius
 
Das ist ein ganz klassisches Problem und Grundlage.

Am einfachsten machst du folgendes:
Nenne deine Design Datei "index.php" und benutze eine get-Variable für die einzelnen Seiten (z.B. index.php?page=impressum). Jetzt erstellst du für alle deine Seiten jeweils eine Datei, welche ausschließlich den Inhalt für Zeile 100 beinhaltet. In Zeile 100 kannst du dann http://php.net/manual/en/function.include.php benutzen.

Jetzt solltest du natürlich noch ein paar Dinge beachten. Z.B. prüfen, welche Seiten du einbindest, sonst übergibt z.B. jemand "index.php?page=/etc/passwd".

Edit: Wenn du das ganze jetzt noch etwas schicker willst, benutzt du mod_rewrite und schreibst z.B. "impressum.html" auf "index.php?page=impressum" um.
 
danke erstmal, ich werd es versuchen. das mit dem etc/passwd kenn ich schon (sempervideo...).
ich dachte aber eher so:
/index.php; /test.php; /...
ohne dem index.php?page=/...
 
Ganz simpler Beispielcode ohne jegliche Prüfungen (schlecht!)

index.php:
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
	<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
	
	<title>PHP include</title>
</head>

<body>
	<div>
		<?php
			include($_GET['page'].'.html');
		?>
	</div>
</body>

</html>

Und wenn ich jetzt "index.php?page=foobar" ansurfe, wird "foobar.html" an die Stelle eingefügt.
 
danke, dürfte das mit dem prüfen mit einfachem post umgangen werden können? oder schaff ich mir da nur probleme?
PHP:
Warning: include(Test1.php.php) [function.include]: failed to open stream: No such file or directory in /var/www/Bestimmung/index.php on line 102

Warning: include() [function.include]: Failed opening 'Test1.php.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/Bestimmung/index.php on line 102
 
Zuletzt bearbeitet:
danke, dürfte das mit dem prüfen mit einfachem post umgangen werden können? oder schaff ich mir da nur probleme?

Was meinst du mit post? Das funktioniert nur per get, weil du die Unterscheidung doch Anhand der URL triffst. Und von der Sicherheit her unterscheiden sich get und post nicht.

Mit Prüfung meinte ich, dass du guckst ob $_GET['page'] überhaupt gesetzt ist und wenn ja, ob der Inhalt gültig ist. Den Inhalt könntest du gegen eine whitelist aller erlaubten Seiten testen.
 
aber bei POST sieht man doch diese index.php?page= nicht, sondern nur index.php
ich hätte dann einfach ein paar Buttons auf die startseite geklebt, über die dann der postbefehl ausgeführt wird und man den entsprechendem inhalt sieht
 
Schlechter Plan.

1. Einen Angreifer hindert das reichlich wenig. Da spielt es keine Rollte ob GET oder POST.
2. Was ist mit Suchmaschinen? Die finden immer nur die Startseite. Oder was ist mit internen Verlinkungen?
 
gut, und wie sichert man das dann und wie kann man unter index.php noch einen text schreiben, der zu sehen ist, wenn kein "?page=" dahinter steht?
 

Neue Beiträge

Zurück