Could not find Pear DB library

  • Hallo,


    ich wollte im squirrelmail die Möglichkeit zur Verfügung stellen, das Passwort zu ändern.


    Dafür hab ich mir das addon change_sqlpass eingerichtet.


    Aber sobald ich versuche diese Funktion im squirrelmail zu nutzen (also ich gebe mein aktuelles und neues Passwort ein), bekomme ich diese Fehlermeldung:

    Quote

    Could not find Pear DB library


    (Wenn ich ein falsches Passwort eingebe, bekomme ich das angezeigt)


    Ich habe bei mir pear folgendermaßen eingerichtet:
    apt-get install php-pear
    Über Installer von http://pear.php.net/go-pear installiert und das Paket MDB2 ist ebenfalls installiert (DB hab ich auch probiert, ging aber genauso nicht - ist ja auch bei MDB2 eigentlich nicht notwendig)
    den Pfad zum pear hab ich in include_path eingetragen (in phpinfo() ist das auch ersichtlich)
    woran kanns noch liegen?


    mfg

  • Hallo,
    ich habe das Plug-In jetzt nur einmal kurz überflogen, aber probiere zum Test doch einmal folgendes aus: Den absoluten Pfad in der functions.php vom Plug-In einzutragen:
    [PHP]/**
    * Include Pear DB class
    *
    */
    function csp_get_pear_db()
    {


    global $csp_debug;


    load_config('change_sqlpass', array('config.php'));



    // mask include errors if not in debug mode
    //
    if ($csp_debug)
    $if_statement = 'return !include_once(\'DB.php\');';
    else
    $if_statement = 'return !@include_once(\'DB.php\');';

    if (eval($if_statement))
    {
    global $color;
    bindtextdomain('change_sqlpass', SM_PATH . 'locale');
    textdomain('change_sqlpass');
    $text = _("Could not find Pear DB library");
    bindtextdomain('squirrelmail', SM_PATH . 'locale');
    textdomain('squirrelmail');
    plain_error_message($text, $color);
    exit;
    }


    }[/PHP]
    Also bei DB.php (kommt zwei mal vor!) einfach mal den absoluten Pfad (= Pear Pfad) davorsetzen. Das ist zwar keine Fehlerlösung, aber so kann man wenigstens mal sehen was dann passiert ;)


    EDIT: Ich habe das wichtigste übersehen, such dir einfach mal $csp_debug in der Konfiguration und aktiviere den Debug Modus, dann bekommst die genaue Fehlermeldung zu sehen. Denn die wird durch das @-Zeichen beim Include Befehl unterdrückt ;)



    MfG Christian

  • Code
    1. // mask include errors if not in debug mode
    2. //
    3. if ($csp_debug)
    4. $if_statement = 'return !include_once(\'/var/www/pear/PEAR/DB.php\');';
    5. else
    6. $if_statement = 'return !@include_once(\'/var/www/pear/PEAR/DB.php\');';


    Dann bekomm ich ne leere Seite :-(


    Ich hab auch an dieser Stelle mal das MDB2.php (was ja der Nachfolger vom DB Paket ist) ausprobiert; da kommt leider genauso nix.


    Auch habe ich mal testweise die Datei DB.php aus dem Verzeichnis genommen - und siehe da, ich bekomme wieder die alte Meldung, dass die DB libary nicht gefunden wurde. Das bedeutet also, dass der die Datei offensichtlich findet und vermutlich auch einbinden kann. Nur leider kann er dann nix damit anfang - woher nun genau der Fehler kommt sehe ich leider nicht und diese Bibiliothek ist auch sehr groß...


    Ich hab jetzt angefangen die benötigten Funktionen rauszusuchen, die die DB.php eigentlich mitbringen würde... aber das ist ne langwierige Arbeit...


    Für den Fall, dass jemand ne Lösung kennt: Ich würd mich sehr darüber freun. Ich werd auch gleich nochmal meine config.php dieses plugins überprüfen. Vielleicht hab ich ja auch da etwas übersehen.


    Und dann (aber da kom ich erst morgen zu) werd ich mal die Fehler Meldungen vom PHP wieder zu Rate ziehen - die sind bei mir standardmäßig unterdrückt


    gute Nacht erstmal und danke fürs Bemühen und drüber schauen übers Plugin

  • hmm - also die DB.php ist sauber. Und Fehlermeldungen werden auch keine angezeigt, obwohl ich error_report auf E_ALL und display_errors auf On stehen hab (@ hab ich auch davor entfernt); Die Seite im Frame bleibt einfach weiß :-(