PHP Frage

Schattenmantel

Schattenmantel

Aktives Mitglied
Thread Starter
Dabei seit
22.04.2002
Beiträge
1.753
Reaktionspunkte
1
Hallo zusammen

Ich möchte meine HP mittels PHP einfacher für mich zum bearbeiten machen. In einem ersten Schritt habe ich die Menuführung ausgelagert und per include () an der gewünschten stelle eingefügt.

Jetzt möchte ich alle meine textseiten als einfach HTML Seite machen und dann diese per Befehl auf der HP an der richtigen Stelle einfügen. So nun meine Idee wie ich mir gedacht habe, wie es aussehen sollte.

Ich habe einen folder der sich templates nennt. Dort sind alle Textdateien drinne. Dann habe ich pro Untersection auf der HP eine PHP Seite in der die Zugriffe auf die einzelnen templates stehen müssen.

Ich dachte mir das man ja per Link auf einen Scriptbestandteil linken kann. Bsp:

www.bla.com/index.php?zeigetext1

Oder geht das nicht so? Wie kann ich jetzt die zeigetext1 Funktion schreiben, das mir diese meintetwegen den Text aus der html oder txt Datei Text1 aus dem templatefolder einfügt?

Verstanden was ich meine?
 
Du müsstest schon einen Wert übergeben, z.B. www.bla.com/index.php?zeige=text1

Dann brauchst du nur ein

switch($zeige){
case text1: include("text1.php");
break;
default: include("text.php");
}

einbauen und kannst je nach Anzahl der Texte dir den jeweiligen ausgeben lassen. Man kann nämlich auch ganz normalen HTM-Dateien ein .PHP anhängen und includen, der Parser macht einfach eine Ausgabe, wenn keine weiteren PHP-Tags mit Anweisungen drin sind. Du fügst sozusagen nur eine Datei in eine andere ein.

Diese Lösung ist auf Dauer natürlich nicht so toll, wenn du es erwetern willst und dann irgendwann 150 Texte drin sind. Da würde ich erstmal einen Switch machen mit den Funktionen und dann von der Funktion mit einer Suche ermitteln lassen, welche Datei gebraucht wird und wo die liegt. Da eignen sich sehr gut die Dateinamen, um eine Zuordnung von Link (index.php?zeige=text123) zu Datei zu haben (text123.php).
 
Genau, ich würde einfach folgendes schreiben:

PHP:
if ( !empty($text) )
{
   include($text . ".php");
}
else
{
   include("index.php");
}

Wenn also die Variable $text angegeben ist (zum Beispiel über die URL, also http://seite.de/seite.php?text=sowieso), gibt er die entsprechende php-Datei aus, ansonsten gibt er die index.php aus... ;-)
 
Danke für eure Tips. Meine index.php sieht im Moment folgendermassen aus:

PHP:
<html>
<head>
<title>Schattenmantel</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
@import url("/shadowstyle.css");
-->
</style>
</head>

<body bgcolor="#000000" text="#FFFFFF">
<p>&nbsp;</p>
<table width="95%" border="0" align="center">
  <tr> 
    <th colspan="3"><img src="/images/schattenmantel.gif" width="600" height="90"></th>
  </tr>
  <tr> 
    <td height="20" colspan="3">&nbsp;</td>
  </tr>
  <tr> 
    <td width="100"><div align="center"><br>
        <?php include( "mainmenue.php" ); ?>
      </div></td>
    <td width="650" background="/images/skulls.gif">&nbsp;</td>
    <td width="100">&nbsp;</td>
  </tr>
  <tr> 
    <td width="100">&nbsp;</td>
    <td><div align="center"> 
        <?php include("footer.php"); ?>
      </div></td>
    <td>&nbsp;</td>
  </tr>
</table>
</body>
</html>

Und mein Text sollte jeweils in folgender Zelle ausgeben werden:

<td width="650" background="/images/skulls.gif">&nbsp;</td>
<td width="100">&nbsp;</td>

Wo setze ich dann meinen PHP code ein?

Schaut euch sonst mal die Seite an die ich auf PHP umstellen möchte:

www.schattenmantel.com

Was leider auch noch nicht 100%ig klappt ist der Import des Stylesheets... Aufm Webserver klappts aber nicht auf meinem localserver...
 
Für das CSS tausch mal das

PHP:
<style type="text/css"> 
<!-- 
@import url("/shadowstyle.css"); 
--> 
</style>

gegen das

PHP:
<LINK rel="stylesheet" href="shadowstyle.css" type="text/css">

aus. Dann dürfte es gehen.


Das mit dem Text kannst du auf viele wege Lösen zb über Templates oder du übergibst immer eine Variable die angibt welcher Text eingefügt werden soll so wie Faser es als Beispiel gegeben hat.
 
Danke für den Hinweis!

Ich werde das mal ausprobieren und dann hier posten wies gegangen ist!
 
Okay ich habs mal versucht. Ich bekomme leider nen Parseerror on line 24... :D Wahrscheinlich hab ich alles falsch gemacht und nichts ist richtig!

Hab ja auch erst begonnen PHP zu lernen. Sind quasi meine ersten Versuche mit PHP! Also seid bitte nachsichtig!


PHP:
<html>
<head>
<title>Schattenmantel</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<LINK_rel ="stylesheet"_ href ="shadowstyle.css"_ type ="text/css" >
</head>

<body bgcolor="#000000" text="#FFFFFF">
<p>&nbsp;</p>
<table width="95%" border="0" align="center">
  <tr> 
    <th colspan="3"><img src="/images/schattenmantel.gif" width="600" height="90"></th>
  </tr>
  <tr> 
    <td height="20" colspan="3">&nbsp;</td>
  </tr>
  <tr> 
    <td width="100"><div align="center"><br>
        <?php include( "mainmenue.php" ); ?>
      </div></td>
    <td width="650" background="/images/skulls.gif">
	<?php 
		  if ( !empty( $text ) ) 
		  {
			include( "/templates" $text . ".html" ); }
			else
			{
			include( "templates/index.html" );
			}
			?>
	</td>
    <td width="100">&nbsp;</td>
  </tr>
  <tr> 
    <td width="100">&nbsp;</td>
    <td><div align="center"> 
        <?php include("footer.php"); ?>
      </div></td>
    <td>&nbsp;</td>
  </tr>
</table>
</body>
</html>

Was ist in dem Code falsch?

Danke für eure Hilfe!!!!!
 
Zuletzt bearbeitet:
PHP:
<LINK_rel ="stylesheet"_ href ="shadowstyle.css"_ type ="text/css" >

Warum machst du da "_" rein?

PHP:
include("/templates" $text . ".html");}


Die Zeile dürfte es sein. Versuch es mal mit

PHP:
include("/templates/" . $text . ".html"); }
 
Original geschrieben von Jiji
PHP:
<LINK_rel ="stylesheet"_ href ="shadowstyle.css"_ type ="text/css" >

Warum machst du da "_" rein?

PHP:
include("/templates" $text . ".html");}


Die Zeile dürfte es sein. Versuch es mal mit

PHP:
include("/templates/" . $text . ".html"); }
&nbsp;

Ich glaube nicht das er das war, sondern der WYSIWYG-Editor ;)
 
Glaubt mir im Dreamweaver ist das nicht mit "_" drinne! Muss ein copy/paste Fehler von Dreamweaver zu Forum machen. Denn ich hab den Code nicht als WYSIWYG sondern von hand geschrieben...

Ich werds mit dem anderen PHP code morgen mal ausprobieren. Hoffe es geht!
 
SO habs gerade mal schnell ausprobiert.

Also ich bekomme jetzt ganz normal die richtige Startseite aber wenn ich dann auf den Link http://localhost/index.php?text=rechtlich gehe klappt das nicht und er gibt mir folgenden Fehler aus:

Warning: Failed opening '/templates/rechtlich.html' for inclusion (include_path='.:/usr/lib/php') in /Library/WebServer/Documents/index.php on line 24

Mein Aktueller Quellcode lautet:

PHP:
<html>
<head>
<title>Schattenmantel</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<LINK_rel ="stylesheet"_ href ="shadowstyle.css"_ type ="text/css" >
</head>

<body bgcolor="#000000" text="#FFFFFF">
<p>&nbsp;</p>
<table width="95%" border="0" align="center">
  <tr> 
    <th colspan="3"><img src="/images/schattenmantel.gif" width="600" height="90"></th>
  </tr>
  <tr> 
    <td height="20" colspan="3">&nbsp;</td>
  </tr>
  <tr> 
    <td width="100"><div align="center"><br>
        <?php include( "mainmenue.php" ); ?>
      </div></td>
    <td width="650" background="/images/skulls.gif">
	<?php 
		  if ( !empty( $text ) ) 
		  {
			include("/templates/" . $text . ".html" ); }
			else
			{
			include( "templates/index.html" );
			}
			?>
	</td>
    <td width="100">&nbsp;</td>
  </tr>
  <tr> 
    <td width="100">&nbsp;</td>
    <td><div align="center"> 
        <?php include("footer.php"); ?>
      </div></td>
    <td>&nbsp;</td>
  </tr>
</table>
</body>
</html>

Und kann mir vielleicht jemand beantworten wieso der CSS Code immernoch nicht verwendet wird? Seite bleibt stur ohne CSS...


Nochmals herzlichen Dank für eure super Hilfestellung! Ich werde es schaffen meine Page auf ein PHP minimum umzustellen und dann langsam immer weiter mit PHP aufzubauen!
 
*stolzmodusein*

Habs hinbekommen!

*stolzmodusaus*

:D

PHP:
include("/templates/" . $text . ".html" ); }

Fehler war das Slashzeichen vor templates! Jetzt wirds richtig included. Muss nur noch das Design richtig hinbekommen, dann ist das schon mal perfekt! *freu*

Einzig das Importieren des CSS funzt immer noch nicht richtig!
 
Zurück
Oben Unten