Frage zu Pfad-Problem in Klasse

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Frage zu Pfad-Problem in Klasse

    Hi,

    ich habe mir für einen Zweck eine Klasse geschrieben und wollte nun in einer Funktion eine Datei includen (und zwar die für die Datenbankdaten). Nun hab ich das Problem, dass er die Datei nicht finden kann, zumindest sagt er mir das.
    Ich frag mich nur warum. Kann man aus Klassen keine Dateien reinladen?

    hier mal die Funktion:

    Quellcode

    1. function saveInDB(){
    2. require_once('mysql.class.php');
    3. require_once('../inc/config.inc.php');
    4. $db =& new db_mysql($db_server, $db_user, $db_pw, $db_name);
    5. $db->show_errors();
    6. $sql = "INSERT INTO `ticket` (`tid`, `uid`, `sid`, `text`, `date`, `previous`)
    7. VALUES ('', '".$this->user_id."', '".$this->supporter_id."', '".$this->text."', '".$this->date."', '".$this->prev."')";
    8. $db->query($sql) or $db->raise_error('Failed adding new ticket');
    9. $this->ticket_id = $db->insert_id();
    10. $db->close();
    11. }
    Alles anzeigen


    daraufhin bekomme ich folgende warnung und folgenden fehler (Zeilen sind mal zu ignorieren, weil die Funktion in der Klasse weiter unten steht als hier):

    Quellcode

    1. Warning: ticket::require_once(../inc/config.inc.php) [function.ticket-require-once.html]: failed to open stream: No such file or directory in C:\phpDev\htdocs\ticketsystem\classes\ticket.class.php on line 45
    2. Fatal error: ticket::require_once() [function.require.html]: Failed opening required '../inc/config.inc.php' (include_path='.;c:\phpDev\htres\includes;C:\phpDev\php\pear;C:\phpdev\smarty\libs;') in C:\phpDev\htdocs\ticketsystem\classes\ticket.class.php on line 45


    ich find keinen Weg die Datei vernünftig zu includen...

    Danke im Voraus

    cya
  • hm, hast dus schonmal mit include probiert?

    include funzt von überall aus. das problem allerdings dabei ist, wenn die zu includierende datei nicht im gleichen verzeichnis liegt, es zu problemen beim aufruf an anderer stelle im code kommen kann.

    z.b. aufruf aus dem doc root funzt, aber aufruf aus /dir/foo.php funzt nicht

    du könntest allerdings einen anderen weg gehen, falls es nur um die config geht.

    indem du in der klasse noch vor der ersten funktion alle benötigten variablen deklarierst

    -> var $cfg1;
    var $bla;

    usw..

    auf diese kannst du dann zugreifen und/oder ändern sobald du die klasse erzeugt hast:

    bsp

    Quellcode

    1. include 'class.foo.php'; // darin enthalten die klasse bar
    2. $foobar = new bar;
    3. $foobar->cfg1 = 'irgendwas';
    4. $foobar->bla = 123546;


    usw.

    so kannst du die variablen füllen und in der klasse damit arbeiten...

    hoffe das hilft dir bissl weiter...

    so long da BendIt
    .:Reden Ist Schweigen und Silber Ist Gold:.

    real programmers don't comment their code: if it was hard to write, it should be hard to read!