![]() |
| | Themen-Optionen |
| | Nach oben #1 |
| Das Struct Registriert seit: 18.08.2007 Ort: Bremen
Beiträge: 15
|
Nabend, ich habe gerade ein kleines Problem. Und zwar habe ich eine Klasse namens MysqlDB, diese ist in der Datei class_mysqldb.php untergebracht und die befindet sich in dem Ordner include/classes. In der Klasse include ich eine config.inc.php (diese liegt im Ordner include/) um die Datenbankkonfigurationsdaten auszulesen. Dort habe ich den Pfad wie folgt angegeben ../config.inc.php. Wenn ich jetzt eine PHP Datei aufrufe die die class_mysqldb.php includet und im übergeordneten Ordner von /include/ liegt bekomme ich den Fehler: Warning: MysqlDB::require_once(include/config.inc.php) [function.MysqlDB-require-once]: failed to open stream: No such file or directory in /opt/lampp/htdocs/dev/php/projekte/CycleBoard/forum/include/classes/class_mysqldb.php on line 134 Fatal error: MysqlDB::require_once() [function.require]: Failed opening required 'include/config.inc.php' (include_path='.:/opt/lampp/lib/php') in /opt/lampp/htdocs/dev/php/projekte/CycleBoard/forum/include/classes/class_mysqldb.php on line 134 Ich habe daraufhin den Pfad auf include/config.inc.php geändert dann scheint es zu funktionieren. Rufe ich aber dann eine Datei auf die in irgendeinen anderen Ordner liegt und die auch wieder die class_mysqldb.php includet bekomme ich wieder die gleiche Meldung wie oben. Irgendwie hab ich gerade ein Brett vorm Kopf und kann mir nicht erklären warum die class_mysqldb.php die Config nicht findet wenn ich die mit ../config.inc.php include.... Bin um jeden Ratschlag dankbar |
| | |
| | Nach oben #2 |
| Oliver O. Registriert seit: 17.08.2005
Beiträge: 426
|
Dieser Pfad geht von der aufgerufenen Datei aus. von index.php ist der Pfad /include/config.inc.php von xyz/abc.php ist der Pfad /../include/config.inc.php Also müsstest du je nach dem wo deine Seite liegt, die aufgerufen wird den Pfad ändern. Das ist aber umständlich. Man müsste in der Seite eine Variable für den Pfad anlegen, und die immer pflegen. Einfacher geht es so: PHP-Code: Xean |
| | |
| | Nach oben #3 |
| Das Struct Registriert seit: 18.08.2007 Ort: Bremen
Beiträge: 15
|
Danke für deine Antwort. Aber leider geht das von der index.php trotzdem noch nicht. Warning: MysqlDB::require_once(/opt/lampp/htdocs/dev/php/projekte/CycleBoard/forum/include/classes/../include/config.inc.php) [function.MysqlDB-require-once]: failed to open stream: No such file or directory in /opt/lampp/htdocs/dev/php/projekte/CycleBoard/forum/include/classes/class_mysqldb.php on line 134 Fatal error: MysqlDB::require_once() [function.require]: Failed opening required '/opt/lampp/htdocs/dev/php/projekte/CycleBoard/forum/include/classes/../include/config.inc.php' (include_path='.:/opt/lampp/lib/php') in /opt/lampp/htdocs/dev/php/projekte/CycleBoard/forum/include/classes/class_mysqldb.php on line 134 |
| | |
| | Nach oben #4 |
| Das Struct Registriert seit: 18.08.2007 Ort: Bremen
Beiträge: 15
|
Gibt es denn keine Möglichkeit das der include Pfad immer der gleiche ist, und zB. von dem Pfad der MysqlDB Klasse ausgeht ? Immer wenn ich jetzt in einer Datei die in einem anderen Ordner liegt als die index.php die Klasse include gibts halt diese Meldung. Der MysqlDB Klasse kann ich ja noch den Pfad zu config übergeben aber wenn ich Dateien aufrufe die nur Funktionen beinhalten und irgendwelche andere Klassen oder Funktionen includen, müsste ich das jeder Funktion einzeln sagen. Geändert von phpdev (04.11.2007 um 12:47 Uhr). |
| | |
| | Nach oben #5 |
| Benjamin Steininger Registriert seit: 02.06.2005 Ort: weiher im tiefsten Odenwald
Beiträge: 1.180
|
1) Möglichkeit: Sinnvoller wäre es, der Datenbankklasse ein Array oder Objekt mit den Daten zu übergeben, das macht die Klasse besser benutzbar, weil du auch schneller / einfacher 2 Instanzen nutzen kannst, um z.b. mit 2 verschiedenen Datenbank zu arbeiten 2) mit einem absoluten Pfad arbeiten, du kannst dir mit realpath und ../ den absoluten Pfad aus der mysql-klassendatei heraus holen und darüber includen. so ungefähr PHP-Code: Methode 1 wäre sicher die zu bevorzugende weil du damit deine Klasse nicht von irgendwelchen Pfaden und Dateistrukturen abhängig machst. mfg robo47 |
| | |
| | Nach oben #6 |
| Das Struct Registriert seit: 18.08.2007 Ort: Bremen
Beiträge: 15
|
Erstmal vielen Dank! Ich hab das jetzt so geändert das ich der Klasse die DB config Daten übergebe. Ich habe aber noch einige Dateien die nur Funktionen beinhalten. In diesen Dateien include ich wiederum andere Dateien. Dies muss ich dann wohl mit dem absoluten Pfad machen, wie von dir oben Vorgeschlagen. Mir ist nur aufgefallen das die realpath Methode langsamer ist, hoffe das wirkt sich bei einer größeren Anzahl von Besuchern nicht so sehr negativ auf die Performance aus. |
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Problem mit LaTex (Facharbeit) | mouCe | Sonstige Programmiersprachen | 6 | 04.12.2006 00:13 |
| Apache kann nicht gestartet werden. | Jan | Tools, Server, Betriebssysteme | 11 | 23.11.2006 09:26 |
| mod_rewrite wird nicht geladen | Tryzero | Tools, Server, Betriebssysteme | 13 | 17.09.2006 21:11 |
| Problem mit Cookie und Reloads... | Bookworm | PHP-Programmierung | 10 | 13.04.2006 12:09 |
| OSX + Eclipse 3.1 Problem | bacarni | Eclipse | 3 | 29.07.2005 21:19 |