Problem Kontaktformular in Templates zu integrieren - Fehler

XTC-Liquid-XTC

Grünschnabel
Hallo, also, ich habe nen Problem mit dem Includen von meinem Kontakt-Script.
Ich verwende Templates ( HTML-Dateien liegen in /Templates und werden mit ner Variable ausgelesen ). In der Index.php wird festgelegt, wenn man auf dne Link X klickt, dass man dann auch bei X landet.
Nun hat das bisher immer ganz gut funtktioniert, aber mit meinem Kontaktscript will das nicht....
Wäre jemand evtl. so nett, den Code so umzuändern, dass es funktioniert ?
Vielen Dank !

Nun ich poste euch mal meine Index.php und meine Kontakt.php:

Index.php
PHP:
<?
include("classes/tpl.class.php");

$tpl = new tpl;
$tpl->tpldir = "templates"; // Ordner, in dem die HTML-Dateien liegen
$tpl->showerrors = "1"; // Fehler anzeigen? (0 = nein | 1 = ja)


if(empty($modul)){
eval ("\$inhalt = \"".$tpl->get("home")."\";");
}elseif($modul == "home"){
eval ("\$inhalt = \"".$tpl->get("home")."\";");
}elseif($modul == "news"){
eval ("\$inhalt = \"".$tpl->get("news")."\";");
}elseif($modul == "aboutme"){
eval ("\$inhalt = \"".$tpl->get("aboutme")."\";");
}elseif($modul == "links"){
eval ("\$inhalt = \"".$tpl->get("links")."\";");
}elseif($modul == "guestbook"){
eval ("\$inhalt = \"".$tpl->get("../gbook/index")."\";");
}elseif($modul == "kontakt"){
eval ("\$inhalt = \"".$tpl->get("kontakt")."\";");
}elseif($modul == "impressum"){
eval ("\$inhalt = \"".$tpl->get("impressum")."\";");
}


///////////////////////////////
// SEITEN ABFRAGE ENDE //
///////////////////////////////


/* Nun noch die Seite ausgeben, in welcher $inhalt gebraucht wird, hier die main.php. */
eval ("\$tpl->output(\"".$tpl->get("main")."\");");
?>

Kontakt.php

PHP:
<head>
<link href="style.css" rel="stylesheet" type="text/css">
</head>
<?php if($_POST['form']=="weg") {
$adresse = "mail@adresse.de";
$name = $_POST['name'];
$nachricht = $_POST['nachricht'];
$email = $_POST['email'];
$betreff = $_POST['betreff'];
if (empty($name)) {
$status .= "Bitte füllen sie das Namen-Feld aus !<br><br>
		    <a href=javascript:history.back();>zur&uuml;ck</a>";
}
elseif (empty($nachricht)) {
$status .= "Bitte füllen sie das Nachrichten-Feld aus !<br><br>
		    <a href=javascript:history.back();>zur&uuml;ck</a>";
}
elseif (empty($email)) {
$status .= "Bitte füllen sie das eMail-Feld aus !<br><br>
		    <a href=javascript:history.back();>zur&uuml;ck</a>";
}
elseif(!eregi("^[_a-zA-Z0-9-](\.{0,1}[-a-zA-Z0-9-])*@([a-zA-Z0-9-]{2,}\.){0,}[a-zA-Z0-9-]{3,}(\.[a-zA-Z]{2,4}){1,2}$", $email)) { 
  $status .= "Bitte geben sie eine richtige eMail-Adresse an !<br><br>
		    <a href=javascript:history.back();>zur&uuml;ck</a>";}
elseif (empty($betreff)) {
$status .= "Bitte füllen sie die Betreff-Zeile aus !<br><br>
		    <a href=javascript:history.back();>zur&uuml;ck</a>";
}
else {
mail($adresse, $betreff, 
"$name hat eine Frage an dich ($email)\n
--------------------------------------------------------\n
$nachricht\n
--------------------------------------------------------\n"
, "From: $email");
mail($email, "Bestätigung von www.adresse.de",
"Sie haben folgende Nachricht an $adresse gesendet:\n
--------------------------------------------------------\n
Ihr Name lautet: $name \n
Ihr Betreff lautet: $betreff \n
$nachricht\n
--------------------------------------------------------\n
\n
Auf ein hoffentlich baldiges Wiedersehen auf www.adresse.de\n"
, "From: $adresse");
$status .= "Vielen Dank für Ihre Anfrage ! Ich werde mich bem&uuml;hen sie so schnell wie m&ouml;glich zu bearbeiten.<br><br>Es wurde soeben eine Kopie an ihre eMail-Adresse ( <b><font color=3366FF>$email</font></b> ) als Best&auml;tigung gesendet";
} 
echo $status;}
else{?>
            <br>
<b>Hier können sie mit mir in Kontakt treten: </b><br>
          <div align="left">
              <form action="kontakt.php" method="post">
                <input type="hidden" name="form" value="weg">
                <table width="100%" border="0" cellspacing="5" cellpadding="0">
                  <tr>
                    <td><b>Name </b><font color="#FF0000"> *</font></td>
                    <td width="84%">
                      <input name="name" type="text" class=input id="name2">
                    </td>
                  </tr>
                  <tr>
                    <td><b>E-Mail </b><font color="#FF0000"> *</font></td>
                    <td>
                      <input class=input name="email" type="text">
                   </td>
                  </tr>
                  <tr>
                    <td><b>Betreff </b><font color="#FF0000"> *</font></td>
                    <td>
                      <input name="betreff" type="text" class=input id="betreff">
                    </td>
                  </tr>
                  <tr>
                    <td valign="top" nowrap><b>Nachricht </b><font color="#FF0000">*</font></td>
                    <td valign="top">
                      <textarea name="nachricht" cols="50" rows="7" class=input id="nachricht"></textarea></td>
                  </tr>
                  <tr>
                    <td><div align="center"> </div></td>
                    <td><input class=button name="submit" type="submit" value="Senden">
                        <input name="Submit" type="reset" class="button" value="Zur&uuml;cksetzen"></td>
                  </tr>
                </table>
                <font color="#FF0000"><b>* Pflichtfelder</b></font>
              </form>
              <br>
            </div>
            <?
			}?>

Folgender Fehler erscheint immer, wenn ich das Kontaktformular öffnen möchte:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in D:\Programme\Internet\xampplite\htdocs\bla\index.php(22) : eval()'d code on line 4

Könnte mir da bitte jemand helfen ?! Wäre wirklich super - evtl. direkt den Code abändern und dann hier posten ?!
Habe von PHP leider nicht so wirklich viel Ahnung...
Vielen Dank euch schonmal im voraus !
 
Probier mal Folgendes:
PHP:
<?php

	[…]

	$module = ( isset($_REQUEST['modul']) )
		? $_REQUEST['module']
		: 'home';

	switch( $module ) {

		case 'home':
		case 'news':
		case 'aboutme':
		case 'links':
		case 'kontakt':
		case 'impressum':
			$inhalt = $tpl->get($modul);
		break;

		default:
			$inhalt = $tpl->get('home');
	}

	$tpl->output($tpl->get('main'));

?>
Alternativ wäre auch Folgendes möglich:
PHP:
<?php

	[…]

	$module = ( isset($_REQUEST['modul']) )
		? $_REQUEST['module']
		: 'home';

	$valid_pages = array(
		'home',
		'news',
		'aboutme',
		'links',
		'kontakt',
		'impressum'
	);


	if( in_array($modul, $valid_pages) ) {
		$inhalt = $tpl->get($modul);
	} else {
		$inhalt = $tpl->get('home');
	}

	$tpl->output($tpl->get('main'));

?>
 
Zuletzt bearbeitet:
Danke für die schnelle hilfe.
Dann kommt leider folgendes:

Parse error: syntax error, unexpected '}' line 12.
Das ist folgendes: "} "

Mhhhm dummes Teil - noch ne Lösung ?!
 
Tut mir leid, wenn ich euch an Ostern sogar nochmal nerve....

mein Code in der index.php sieht jetzt so aus:

PHP:
<?
include("classes/tpl.class.php");

$tpl = new tpl;
$tpl->tpldir = "templates"; // Ordner, in dem die HTML-Dateien liegen
$tpl->showerrors = "1"; // Fehler anzeigen? (0 = nein | 1 = ja)
    $module = ( isset($_REQUEST['modul']) ) 
        ? $_REQUEST['module'] 
        : 'home'; 

    switch( $module ) { 

        case 'home': 
        case 'news': 
        case 'aboutme': 
        case 'links': 
        case 'kontakt': 
        case 'impressum': 
            $inhalt = $tpl->get($_REQUEST['modul']); 
        break; 

        default: 
            $inhalt = $tpl->get('home'); 
    } 

    $tpl->output($tpl->get('main')); 

?>

Man sieht auch mal was - juhu !
Aber die ganzen Grafiken zum Beispiel nicht.
Man sieht nur die Navigation auf der linken Seite - und wenn ich auf einen Link klicke, lädt er auch nicht das Template *verzweifelt sei*
Warum ist das alles so kompliziert :-(
 
Zurück