Class-Problem

Bash, Shell, PHP, Python, Perl, CGI
fireball22
Posts: 76
Joined: 2006-04-09 11:13

Class-Problem

Post by fireball22 »

Hallo Leute,

ich habe folgende Funktion in der Horde-Funktion "Fetchmail.php" geändert:

Code: Select all

function _checkMessageSize($size, $subject, $from)
    {
    $current_user = $this->_activeparams['id'];
    if($current_user == "uli@michis-homepage.net" AND $size < 31457280)
        {
        return true;
        }
        else
        {
    if (!empty($GLOBALS['conf']['fetchmail']['size_limit']) &&
            ($size > $GLOBALS['conf']['fetchmail']['size_limit'])) {
            require_once 'Horde/MIME.php';
            $GLOBALS['notification']->push(sprintf(_("The message "%s" from "%s" (%d bytes) exceeds fetch size limit."), MIME::Decode($subject), MIME::Decode($from), $size), 'horde.warning');
            return false;
        } else {
            return true;
        }
        }
    }
Leider gibt die erste If-Anweisung aber nie einen Wert mit true aus, auch wenn die User-ID mit der angegebenen E-Mail-Adresse (bzw. ja die ID) übereinstimmt.

Ich denke daher, dass der Fehler bei der Variable $_activeparams['id'] liegt.

Diese ist so deklariert:

Code: Select all

class IMP_Fetchmail {

    /**
     * Parameters used by the driver.
     *
     * @var array
     */
    var $_params;

    /**
     * The list of active fetchmail parameters for the current driver.
     * ALL DRIVERS SHOULD UNSET ANY FETCHMAIL PARAMETERS THEY DO NOT USE
     * OR ELSE THEY WILL APPEAR IN THE PREFERENCES PAGE.
     * The following parameters are available:
     *   'id'          --  The account name.
     *   'driver'      --  The driver to use.
     *   'protocol'    --  The protocol type.
     *   'username'    --  The username on the remote server.
     *   'password'    --  The password on the remote server.
     *   'server'      --  The remote server name/address.
     *   'rmailbox'    --  The remote mailbox name.
     *   'lmailbox'    --  The local mailbox to download messages to.
     *   'onlynew'     --  Only retrieve new messages?
     *   'markseen'    --  Mark messages as seen?
     *   'del'         --  Delete messages after fetching?
     *   'loginfetch'  --  Fetch mail from other accounts on login?
     *   'acctcolor'   --  Should these messages be colored differently
     *                     in mailbox view?
     *
     * @var array
     */
    var $_activeparams = array(
        'id', 'driver', 'type', 'protocol', 'username', 'password', 'server',
        'rmailbox', 'lmailbox', 'onlynew', 'markseen', 'del', 'loginfetch',
        'acctcolor'
    );
Wo liegt der Fehler?

MfG
Michael
smoove
Posts: 13
Joined: 2007-10-05 14:46

Re: Class-Problem

Post by smoove »

Hi,

mach mal nach $current_user = $this->_activeparams['id'];

var_dump($current_user, $size);
die();

dann führ das script mit einem "positiv fall" aus und poste die ausgabe.

mfg. smoove :)
fireball22
Posts: 76
Joined: 2006-04-09 11:13

Re: Class-Problem

Post by fireball22 »

Vielen Dank für deine Hilfe!

Hab das ganze eingebaut und das Script spuckt mir folgendes aus:

Code: Select all

NULL int(1003) 
MfG
Michael
smoove
Posts: 13
Joined: 2007-10-05 14:46

Re: Class-Problem

Post by smoove »

Hi,

das heisst also dass $this->_activeparams['id'] leer ist, warum kann ich dir nicht sagen, da ich das Script weder habe noch kenne, musste leider selber gucken, oder jemand anderes muss sich dazu äussern :/

Edit: ok, habs mir kurz angesehen.
mach mal statt dem var_dump($current_user, $size) ein

var_dump($this->getParameterList());

mfg. smoove :)
fireball22
Posts: 76
Joined: 2006-04-09 11:13

Re: Class-Problem

Post by fireball22 »

Vielen Dank für deine Mühe, also die ganze Ausgabe sieht folgendermaßen aus:

Code: Select all

array(14) { [0]=>  string(2) "id" [1]=>  string(6) "driver" [2]=>  string(4) "type" [3]=>  string(8) "protocol" [4]=>  string(8) "username" [5]=>  string(8) "password" [6]=>  string(6) "server" [7]=>  string(8) "rmailbox" [8]=>  string(8) "lmailbox" [9]=>  string(7) "onlynew" [10]=>  string(8) "markseen" [11]=>  string(3) "del" [12]=>  string(10) "loginfetch" [13]=>  string(9) "acctcolor" } 
Das müsste doch eigentlich zeigen, dass die Array mit dem Wert 'id' existiert...

Mfg
Michael
smoove
Posts: 13
Joined: 2007-10-05 14:46

Re: Class-Problem

Post by smoove »

Hi,

Yep, das zeigt es, es zeigt aber gleichzeitig dass dieses Array absolut leer ist.
So wird das alles also nicht funktionieren, du musst wohl auf anderem weg herausfinden müssen wie die aktive Email Adresse lautet - aber da kann ich dir grade echt nicht weiterhelfen.

mfg. smoove :)
fireball22
Posts: 76
Joined: 2006-04-09 11:13

Re: Class-Problem

Post by fireball22 »

Okay, ich habe nun noch ein Objekt gefunden, was aufjedenfall die User-ID beinhaltet:

Code: Select all

$fm_account = new IMP_Fetchmail_Account();
Nur wie greife ich dann auch die ID in der Array zu?

Code: Select all

var_dump(fm_account);
... gibt folgendes aus:

Code: Select all

object(imp_fetchmail_account)(1) { ["_accounts"]=>  array(2) { [0]=>  array(14) { ["id"]=>  string(6) "Web.de" ["driver"]=>  string(4) "imap" ["type"]=>  NULL ["protocol"]=>  string(8) "pop3auto" ["username"]=>  string(16) "XXX" ["password"]=>  string(11) "XXX" ["server"]=>  string(11) "pop3.web.de" ["rmailbox"]=>  string(0) "" ["lmailbox"]=>  string(5) "INBOX" ["onlynew"]=>  bool(false) ["markseen"]=>  bool(false) ["del"]=>  bool(true) ["loginfetch"]=>  bool(true) ["acctcolor"]=>  NULL } [1]=>  array(14) { ["id"]=>  string(9) "Gmail.com" ["driver"]=>  string(4) "imap" ["type"]=>  NULL ["protocol"]=>  string(12) "pop3sslvalid" ["username"]=>  string(16) "XXX" ["password"]=>  string(11) "XXX" ["server"]=>  string(18) "pop.googlemail.com" ["rmailbox"]=>  string(0) "" ["lmailbox"]=>  string(5) "INBOX" ["onlynew"]=>  bool(false) ["markseen"]=>  bool(false) ["del"]=>  bool(true) ["loginfetch"]=>  bool(true) ["acctcolor"]=>  NULL } } } 
Würde mich sehr freuen, wenn wir das Problem noch hinbekommen!
Vielen Dank für deine Hilfe!

MfG
Michael

EDIT: Zugangsdaten entfernt. Du schuldest den Nutzern, die den Beitrag gemeldet haben, ein kühles Bier.--Roger Wilco
smoove
Posts: 13
Joined: 2007-10-05 14:46

Re: Class-Problem

Post by smoove »

Du hast jetzt nicht grade wirklich das passwort der armen Frau geposted, oder? ôÔ
Roger Wilco
Posts: 5923
Joined: 2004-05-23 12:53

Re: Class-Problem

Post by Roger Wilco »

Daten entfernt. Nächstes mal bitte etwas vorsichtiger mit sensiblen Daten umgehen.
fireball22
Posts: 76
Joined: 2006-04-09 11:13

Re: Class-Problem

Post by fireball22 »

Omg, sorry, da war ich wohl zu voreilig mit dem Absenden der Message, wollte die Daten eigentlich noch entfernen...
Vielen Dank, dass ihr so schnell reagiert habt, bin euch was schuldig ;)

MfG
Michael