Seite 1 von 2

include nicht doppelt ausführen

Verfasst: 01.07.2005 23:00
von Gumfuzi
Hallo Leute!

Wie kann ich das Prüfen, ob dieser Befehl bereits ausgeführt wurde?

Code: Alles auswählen

include($phpbb_root_path . 'includes/bbcode.'.$phpEx);
Ich habe den nämlich manchmal 2x drin:
1x in der page_header.php und
1x in der viewtopic.php

Wenn ich den Index aufrufe, dann wird es nur 1x ausgeführt, was richtig wäre (da ich den bbcode für eine PN bzw. Emailbenachrichigung brauche), nur wenn ich zur gleichen zeit, wie das PN-Popup angezeigt wird, einen thread aufrufe, dann schreit er eben, daß es doppelt included ist...

Wenn ich das irgendwie prüfen kann, dann müsste ich diese Abfrage (ob es schon included ist) in der viewtopic ändern, da diese Datei nach dem Header aufgerufen wird - oder?

Verfasst: 01.07.2005 23:23
von Pyramide
Am einfachsten ist es, wenn du alle Vorkommen durch [php:include_once] ersetzt.

Verfasst: 01.07.2005 23:24
von Gumfuzi
aha, dann wird es nicht mehr aufgerufen, falls es schon mal aufgerufen wurde? - *gleichprobierenwerd*

Danke!!!

Verfasst: 01.07.2005 23:55
von Gumfuzi
Den include_once Befehl muss ich aber beim 2. Aufruf einbauen (viewtopic, etc.) denn im header bringt er mir nix, da er ja dort das erste Mal aufgerufen wird - oder?

Verfasst: 02.07.2005 00:40
von QCO
Du kannst include_once überall einbauen. Die Datei wird dann genau einmal included, egal wie oft der Befehl tatsächlich aufgerufen wird.

Verfasst: 02.07.2005 10:35
von Gumfuzi
Damit ich das richtig verstehe:
wenn ich den include_once nur im Header reinschreibe, dann isses egal, wenn zB. bei der Viewtopic das nur mit include rinsteht?
(der header wird ja zuerst ausgeführt)

Verfasst: 02.07.2005 11:38
von shwepsi
falsch
include_once = include wenn noch nicht geschehen
=> Es gibt also 2 funktionierende Möglichkeiten das einzubauen
  1. Man baut es überall ein. Einfach und sicher
  2. Man baut es ab dem möglicherweise 2. Aufruf ein
    => in deinem Fall in die viewtopic
Warum?
header: include_once? Hmm nein, es ist noch nicht geschehen, also lade ich das mal
viewtopic: include? na dann lade ich das mal. Mir doch egal wenn das schon includet wurde

Verfasst: 02.07.2005 12:07
von Gumfuzi
OK, danke!!!!

... bleibt nur mehr die Frage offen, warum include genutzt wird, wenn man das auch mit include_once lösen kann und gleichtzeitig doppelte includes vermeiden kann? Oder hat das andere Hintergründe?

Verfasst: 02.07.2005 13:33
von pokepika
es gibt ja auch sachen, die man evtl. mehrmals includen muss, z.B. feste Programmroutinen, etc.

Verfasst: 02.07.2005 13:38
von Gumfuzi
Ich dachte, 2x includen geht nicht (darum ja auch immer diese Fehlermeldungen)?