Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z include()
Forum PHP.pl > Forum > PHP
bartyk
Mam taką strukturę plików:

Kod
/devel
      |- index.php
      |-/includes
              |-bk_db.class.php
              |-config.inc


Kod plików (tylko istotne):

index.php:
  1. <?php
  2.  
  3. require_once('includes/bk_db.class.php');
  4.  
  5. class MyForm() {
  6.  var MyDB;
  7.  
  8.  function OpenDB ($cfgfile='') {
  9. $this->MyDB=new bk_db($cfgfile);
  10. }
  11. }
  12.  
  13. $mojFrm=new MyForm();
  14. $mojFrm->OpenDB('includes/config.inc');
  15.  
  16.  
  17. ?>


bk_db.php:
  1. <?php
  2.  
  3.  
  4. class bk_db {
  5.  
  6. function bk_db($cfgfile) {
  7. include($cfgfile);
  8. }
  9. }
  10.  
  11. ?>



I teraz problem - plik do zaincludowania nie został znaleziony sad.gif


Jest mi cholernie głupio, bo pisząc w OOP powinienem takie rzeczy wiedzieć. Może na moje usprawiedliwienie powiem, że siedzę już nad projektem 2 tyg. po 14-16 godzin dziennie sad.gif
br4tp1t
Zmień "includes" na "include" może pomoże winksmiley.jpg
DeyV
1. pokaż zawartość twojego include_path

2. zastanwów się, czy nie warto by było jednak kożystać z bezwzględnych adresów, lub przynajmniej i ich zarysu.

Ja to robię zazwyczaj tak:
  1. <?php
  2.  
  3. define ( 'DIR_ROOT', '' );
  4. define ( 'DIR_ACTIONS', DIR_ROOT. 'inc/actions/' );
  5. define ( 'DIR_CLASS', DIR_ROOT. 'inc/class/' );
  6. ...
  7. define ( 'DIR_TESTS', DIR_ROOT. '_testy/' );
  8.  
  9. ?>

A teraz, jeśli się okazuje, że jakiś serwer wymusza na mnie stosowanie ścieżek bezwzględnych, wystarcza jedynie modyfikacja DIR_ROOT

Zyskuje się jeszcze jedno.
Jeśli podasz w function bk_db($cfgfile) ścieżkę, z której może ona includować pliki, to niejako wymuszasz, by wszystkie pliki konfiguracyjne dla tej metody były właśnie w tym miejscu, i nie będziesz musiał podawać tej informacji przy każdym wywołaniu tej metody
np.

  1. <?php
  2.  
  3. function bk_db( $sCfgFileName )
  4. {
  5. include_once( DIR_CONF.  $sCfgFileName );
  6. }
  7. ?>
shima
Cytat(br4tp1t @ 2004-11-25 10:32:03)
Zmień "includes" na "include" może pomoże winksmiley.jpg

Genialne, inaczej tego nazwać nie można.

@bartyk: sprawdziłeś z bezwzględną ścieżką?
EDIT: Zacząłem pisać zanim pojwił się post DeyV-ego
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.