Hallo, Gast! (Registrieren)

Wir wünschen allen Besuchern frohe und besinnliche Weihnachten!

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
PM Handler - keine Empfänger
#1
Hi,

ich habe folgenden Code zum automatischen Versenden von PMs geschrieben / mir zusammen kopiert Wink

PHP-Code:
    global $mybb;
    
    
$qry_pmempfaenger "SELECT userid FROM Tabelle";
    
$result_pmempfaenger mysql_query($qry_pmempfaenger);
    
    while(
$pmempfaenger_row mysql_fetch_object($result_pmempfaenger))
    {
    
    require_once 
MYBB_ROOT."inc/datahandlers/pm.php";
    
    
$pmhandler = new PMDataHandler();
       
    
$subject "Subj";
    
$message "Hi,
        
    (dies ist eine autmoatisch generierte PM)"
;

    
    
$pm = array(
        
'subject' => $subject,
        
'message' => $message,
        
'toid' => $pmempfaenger_row->userid,
        
'fromid' => 1
        
);

    
$pmhandler->set_data($pm);
    if(!
$pmhandler->validate_pm())
        return 
false;
    else
    {
        
$pmhandler->insert_pm();
        
//return true;
    
}

    } 

User 1 hat alle PNs in seinem Ausgang, das passt also. Allerdings steht bei Empfänger überall "Keine Angabe (Nicht gesendet)"

Sad
Zitieren
#2
Der PM Handler erwartet die Namen der Empfänger und nicht deren ID.
PHP-Code:
global $mybb;
    
    
$qry_pmempfaenger "SELECT username FROM Tabelle";
    
$result_pmempfaenger mysql_query($qry_pmempfaenger);
    
    while(
$pmempfaenger_row mysql_fetch_object($result_pmempfaenger))
    {
    
    require_once 
MYBB_ROOT."inc/datahandlers/pm.php";
    
    
$pmhandler = new PMDataHandler();
       
    
$subject "Subj";
    
$message "Hi,
        
    (dies ist eine autmoatisch generierte PM)"
;

    
    
$pm = array(
        
'subject' => $subject,
        
'message' => $message,
        
'fromid' => 1
        
);
    
$pm['to'][] = $pmempfaenger_row->username;
    
$pmhandler->set_data($pm);
    if(!
$pmhandler->validate_pm())
        return 
false;
    else
    {
        
$pmhandler->insert_pm();
        
//return true;
    
}

    } 


//Edit:
Gerade gesehen, dass es auch mit ID's geht. Allerdings müssen die trotzdem in einem Array liegen, also so wie ich es gemacht habe. Kannst also meine Lösung mit deiner kombinieren Wink
Zitieren
#3
Danke schon mal für die schnelle Antwort, jetzt kommt aber

Fatal error: Cannot use [] for reading in E:\xampp\htdocs\123.php on line 106

Zeile 106 ist $pm['to'][] => $pmempfaenger_row->username;
Zitieren
#4
Du müsstest die Zeile unter das array() schreiben, innerhalb klappt das nicht. Außerdem musst du anstatt "=>" wieder "=" benutzen.
PHP-Code:
$pm['toid'][] = $pmempfaenger_row->userid
Zitieren
#5
Argh das verflixte ">" Blush

Jetzt klappts, dankeschön!
Zitieren