Seite 1 von 1

Cannot redeclare class template

Verfasst: 29.08.2008 19:51
von porfavor
Ich rufe eine Datei namens index.php auf.
Diese sieht so aus:

Code: Alles auswählen

<?php
include("templates/top.html");
include("reihe1.php");
include("reihe2.php");
include("templates/footer.html");
?>
Nun sind reihe1.php und reihe2.php gleich bis auf die pfadangabe zur html datei .

Der Code:

Code: Alles auswählen

<?php
include("userdaten.php");
// Klasse hinzuladen
include("template.class.php");

// Objekt erzeugen ($error wird bereits im Konstrukt definiert und ist hier nur optional)
$template = new template("templates/reihe1.html");
// Datei einlesen
$template->readtemplate();
// Platzhalter ersetzen

/*Usernamen*/
$template->replace("USERNAME1", $username1);
$template->replace("USERNAME2", $username2);
$template->replace("USERNAME3", $username3);
$template->replace("USERNAME4", $username4);
$template->replace("USERNAME5", $username5);
$template->replace("USERNAME6", $username6);
/*Vornamen*/
$template->replace("VORNAME1", $vorname1);
$template->replace("VORNAME2", $vorname2);
$template->replace("VORNAME3", $vorname3);
$template->replace("VORNAME4", $vorname4);
$template->replace("VORNAME5", $vorname5);
$template->replace("VORNAME6", $vorname6);
/*Alter*/
$template->replace("ALTER1", $alter1);
$template->replace("ALTER2", $alter2);
$template->replace("ALTER3", $alter3);
$template->replace("ALTER4", $alter4);
$template->replace("ALTER5", $alter5);
$template->replace("ALTER6", $alter6);



// Seite ausgeben


$template->parse();
?>
Die Umstände hier in der Mitte sind mal egal. Das ist nicht das Problem.

Wenn ich die index.php aufrufe, wird entweder reihe1.php oder reihe2.php nicht ausgegeben (weiß nicht welche, da im Moment gleiche Ausgabe)

Es erscheint folgender Fehler:

Code: Alles auswählen

Fatal error: Cannot redeclare class template in C:\xampp\htdocs\vote\template.class.php on line 3
Wo ist hier das Problem?

PS: Könnte natürlich auch alles in die index.html schmeißen, aber das würde mehrere hundert zeilen bedeuten und wäre unübersichtlich. Das will ich nicht zwangsweise. Daher die includes.

Verfasst: 29.08.2008 20:07
von Dr.Death
Ersetze einfach alle "include" durch "include_once"

Lesestoff: http://www.php.net/manual/de/function.include-once.php

Verfasst: 29.08.2008 20:17
von porfavor
prima
Dankeschön! Funktioniert.

Also muss ich alles einmal einbinden, weil z.B. userdaten.php dann in index.php über Umwege mehrmals eingebunden wäre?

Verfasst: 29.08.2008 20:56
von Pyramide
Das kommt darauf an, wie diese Dateien aufgebaut sind. Wenn darin Deklarationen von Klassen oder Funktionen enthalten sind, dürfen sie nur einmal eingebunden werden. Wenn dagegen Inhalte ausgegeben werden, kann es gewünscht sein, diese mehrfach auszugeben.

Verfasst: 29.08.2008 21:08
von porfavor
ja eben die deklaration einer klasse