afankhauser
Goto Top

Php Cannot instantiate non-existent class pdf

echo $begruessung;

Fatal error: Cannot instantiate non-existent class: pdf in /home/www/web311/html/mgroethenbach/seite/veranstaltungen.php on line 22

Was soll das den heissen?
Lokal funktioniert alles einwandfrei.
hier mal teile der betroffenen datei "veranstaltungen.php":
include("http://www.hiddenalpha.ch/files/fpdf/fpdfext.php");  
//include('D:\Programmieren\HTML\hiddenAlpha\files\fpdf\fpdfext.php'); 

makePdf();

function makePdf() {
 global $pdf;
 $pdf=new PDF("P","mm","A4");  
 $pdf->Open();
// bla bla usw.
}

Der Fehler wird in zeile 8 ausgelöst.
Die zwei include()'s brauch ich um von Lokal auf Server umzustellen.
Die habe ich richtig gestellt. (nachdem ich eine entsprechende Fehlermeldung erhalten hatte)
was muss ich machen?

echo $verabschiedung;

Content-Key: 142792

Url: https://administrator.de/contentid/142792

Printed on: April 25, 2024 at 15:04 o'clock

Member: LordGurke
LordGurke May 13, 2010 at 20:09:10 (UTC)
Goto Top
Du kannst doch eine PHP-Datei nicht über HTTP includieren - dabei erhältst du nur eine geparste Datei und die enthält... Nix!
Includiere die Datei mal über lokale Pfadangaben - wenn sie sich im gleichen Ordner befindet, reicht auch die Angabe des Dateinamens aus.
Ansonsten reichen auch relative Pfadangaben aus wie z.B.
require_once('./files/fpdf/fpdfext.php');  
Member: aFankhauser
aFankhauser May 13, 2010 at 21:02:27 (UTC)
Goto Top
Ich glaub ich hab jetzt den Fehler. (Dein Beitrag hat mich darauf gebracht)

ich habe die Klasse (die ich includen will) nur auf hiddenAlpha.ch. Von dort aus konnte ich sie sehr wohl mit HTTP includen.
Da ich aber nun von mgroethenbach.ch darauf zugreifen will, scheine ich keine Zugriffsrechte zu haben.
Muss ich jetzt im ernst die ganze Klasse noch ein zweites mal hochladen?
Member: dog
dog May 13, 2010 at 21:22:12 (UTC)
Goto Top
Du kannst doch eine PHP-Datei nicht über HTTP includieren -

Stimmt nicht, kann man machen.
Leider eine grobe Fahrlässigkeit im PHP-Design und jeder der die Funktion tatsächlich benutzt sollte gewaterboarded werden.

Allerdings hast du auch recht, dass diese PHP-Datei schon ausgeführt wurde und entsprechend nur noch eine leere Datei included wird.
Member: LordGurke
LordGurke May 13, 2010 at 21:48:16 (UTC)
Goto Top
Hast Recht, ich habe mich falsch ausgedrückt. Ich wollte eigentlich damit sagen, dass man beim Includieren über HTTP keinen PHP-Code mehr hat sondern lediglich das, was nach dem Parsen übrig bleibt face-wink
Member: aFankhauser
aFankhauser May 13, 2010 at 21:49:57 (UTC)
Goto Top
Member: aFankhauser
aFankhauser May 13, 2010 at 21:50:59 (UTC)
Goto Top
ich kanns drehen und wenden wie ich will:

Fatal error: Cannot instantiate non-existent class: pdf in /home/www/web311/html/mgroethenbach/seite/veranstaltungen.php on line 94

@dog:
versteh ich nicht. Ich verwende die folgende zeile bisher immer ohne probleme:
 include("http://www.hiddenalpha.ch/files/fpdf/fpdfext.php");  

aber in meinem aktuellen Script will der einfach nicht.
Member: LordGurke
LordGurke May 13, 2010 at 21:57:01 (UTC)
Goto Top
Vielleicht hat dein Webhoster da irgendwas spezielles gedreht, dass das innerhalb des selben vHosts funktioniert.
Aber generell funktioniert das so nicht. Nimm bitte grundsätzlich immer den lokalen Pfad - also ohne das http:-Zeug davor.
Rufe doch mal selber http://www.hiddenalpha.ch/files/fpdf/fpdfext.php im Browser auf. Das, was du dann siehst ist auch das, was PHP in dem Moment sieht.
Member: dog
dog May 13, 2010 at 22:02:45 (UTC)
Goto Top
Also erklär mir doch bitte mal, wie PHP aus Nichts - denn du siehst ja selbst, wenn du die Seite http://www.hiddenalpha.ch/files/fpdf/fpdfext.php aufrufst, dass die Datei leer ist - Etwas machen soll.
Es gibt halt Dinge die gibt es nicht. face-smile

Nochmal: Niemals benutzt man include() zusammen mit "http://..." - das ist schlicht und einfach falsch!
Member: aFankhauser
aFankhauser May 13, 2010 at 22:22:43 (UTC)
Goto Top
so gehts. danke für die Hilfe.

 include("../fpdf/fpdfext.php");  

@dog:
weiss auch nicht. Hauptsache es geht und dabei lass ich es jetzt einfach.
geh jetzt mal ne runde schlafen
gute nacht und danke