new-Operator funktioniert nicht, wenn Code aufgeteilt ist

Alles, was PHP betrifft, kann hier besprochen werden.

new-Operator funktioniert nicht, wenn Code aufgeteilt ist

Postby Atako » 18. April 2008 10:29

Hey!
Hab das neueste XAMPP package. Leider funktioniert Folgendes nicht:

scripts/blackboard/blackboard.php:
Code: Select all
<?php
class Blackboard
{
    function Blackboard()
    {
        echo "created";
    }
}
?>


content/english/home/blackboard.php:
Code: Select all
<?php
include("../../../scripts/blackboard/blackboard.php");

echo "1";
$blackboard = new Blackboard();
echo "2";
?>


Ausgabe ist: 1

Und der Rest der Seite wird nicht mehr angezeigt... Wenn ich die new-Anweisung weglasse, passt alles... Ausgabe 12 und der Rest der Seite wird auch angezeigt.

Warum?
Wenn es nicht auf zwei files aufgeteilt ist, funktioniert es aber!


Code: Select all
<?php
class Blackboard
{
    function Blackboard()
    {
        echo "created";
    }
}

echo "1";
$blackboard = new Blackboard();
echo "2";
?>


Ausgabe: 1created2

Was ist da nur los? Keinerlei Fehlermeldungen, der include-Pfad stimmt auch 100% (Arbeite mit phpeclipse). Hab das schon auf anderen Servern getestet, dort funktioniert es natürlich...

Danke!
MfG
Atako
 
Posts: 5
Joined: 18. April 2008 10:24

Postby Nobbie » 18. April 2008 10:40

Mit absoluter Sicherheit geht der Include() in die Hose und statt hier zu fragen solltest Du dringend das Error Reporting einschalten, dann hättest Du längst die Ursache herausgefunden.
Nobbie
 
Posts: 13183
Joined: 09. March 2008 13:04

Postby Wiedmann » 18. April 2008 10:43

Keinerlei Fehlermeldungen

- wie ist dein error_reporting eingestellt?
- wie ist dein display_errors eingestellt?

, der include-Pfad stimmt auch 100%

- wie ist dein include_path eingestellt?
- in welchem Verzeichnis befinden sich die Dateien "blackboard.php" jeweils genau (sind beide Angaben direkte Unterverzeichnise vom selben DocumentRoot?)?

(Arbeite mit phpeclipse).

Mit welcher URI rufst du die Datei "content/english/home/blackboard.php" in deinem Webbrowser(!) auf?
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Atako » 18. April 2008 11:07

Danke für die Geduld!
Alles Standard eingestellt!

error_reporting = E_ALL & ~E_NOTICE
display_errors = On
include_path = ".;C:\Programme\xampp\php\pear\"


Die beiden Angaben gehen jeweils von htdocs/ aus...


Zur letzten Frage:
Wenn ich direkt "http://127.0.0.1/content/english/home/blackboard.php" aufrufe, dann funktioniert das Ganze...
Rufe ich jedoch so "http://127.0.0.1/?lang=english&nav=home&subnav=blackboard" auf, wird nur 1 ausgegeben und der Rest der Seite (Alles nach dem new) ist abgeschnitten.

Dann liegt es wohl doch nicht am Server, aber was könnte daran Schuld sein? Ohne der new-Anweisung wird die Seite ja vollständig und richtig angezeigt.
Danke!
MfG

//EDIT:
Ach ich Depp, content/english/home/blackboard.php wird ja von index.php inkludiert, somit muss ich den include-Pfad relativ zu eben dieser angeben.

Wie oft will mir das noch passieren...
Thema erledigt...
Atako
 
Posts: 5
Joined: 18. April 2008 10:24

Postby Nobbie » 18. April 2008 14:29

Also geht - wie gesagt - der Include in die Hose und es wird - wie ebenfalls gesagt - keine Fehlermeldung ausgegeben. Es muss nicht nur display_errors sondern auch display_startup_errors auf On stehen und es muss E_ALL eingestellt sein.

Ggf. wird aber auch das Fehlerhandling durch .htaccess oder das Script unterdrückt - Fakt ist, dass ein fehlender Include bei richtiger Konfiguration eine Fehlermeldung erzeugt.
Nobbie
 
Posts: 13183
Joined: 09. March 2008 13:04


Return to PHP

Who is online

Users browsing this forum: No registered users and 16 guests