Cannot redeclare class template

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
porfavor
Mitglied
Beiträge: 834
Registriert: 23.08.2006 00:35
Wohnort: Tuttlingen
Kontaktdaten:

Cannot redeclare class template

Beitrag 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.
Lebe dein Leben solange du kannst.

Jugendgemeinderat-Tuttlingen
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17476
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

Ersetze einfach alle "include" durch "include_once"

Lesestoff: http://www.php.net/manual/de/function.include-once.php
Benutzeravatar
porfavor
Mitglied
Beiträge: 834
Registriert: 23.08.2006 00:35
Wohnort: Tuttlingen
Kontaktdaten:

Beitrag 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?
Lebe dein Leben solange du kannst.

Jugendgemeinderat-Tuttlingen
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag 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.
KB:knigge
Benutzeravatar
porfavor
Mitglied
Beiträge: 834
Registriert: 23.08.2006 00:35
Wohnort: Tuttlingen
Kontaktdaten:

Beitrag von porfavor »

ja eben die deklaration einer klasse
Lebe dein Leben solange du kannst.

Jugendgemeinderat-Tuttlingen
Antworten

Zurück zu „Coding & Technik“