Hallo, Gast! (Registrieren)

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


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
MYBB_ROOT fehler.
#21
Warum bindet ihr denn nicht die global.php oder init.php ein? Nur den Datahandler einzubinden kann schnell dazu führen, dass fehlende Abhängigkeiten entstehen.

Nur ein paar Zeilen Code helfen uns bei der Fehlersuche auch nicht. Hängt am besten einfach mal das ganze Skript an und erklärt kurz wann und wie das Skript aufgerufen wird.
Wenn ich den oben stehenden Code als pm.php abspeicher und aufrufe, kann ja nichts passieren, weil ja jede Menge Informationen und Variablen fehlen.

Skript anhängen, Problem erklären, Aufruf schildern – dann können wir euch weiterhelfen.

Zitieren
#22
Hiho,
GENAU DAS war mein problem.
Lösung: global.php mit einbinden.
jetzt habe ich ein anderes Problem(...):
sobald ich die Funktion in eine if-schleife packe, die prüft ob von der Seite schon etwas gesendet wurde über ein Formular, löppt er nicht mehr...
Habe auch global.php nochmal eingebunden, in_mybb nochmals auf 1 gesetzt...
tot, kommt keine PN an...

PHP-Code:
if($_POST['money'] != '' && $_POST['users'] != ''){
    
define("IN_MYBB"1);
    require(
"global.php");        
    global 
$db$mybb;
    require_once 
MYBB_ROOT."inc/datahandlers/pm.php";

$pmhandler = new PMDataHandler();
$pm = array(
        
"subject" => 'Du hast eine Zahlung erhalten',
        
"message" => 'message. [quote]COMMENT[/quote]',
        
"icon" => "-1",
        
"toid" => array(1337),
        
"fromid" => '1075',
        
"do" => '',
        
"pmid" => ''
    
);
    
$pm['options'] = array(
        
"signature" => "0",
        
"disablesmilies" => "0",
        
"savecopy" => "0",
        
"readreceipt" => "0"
    
);
$pmhandler->set_data($pm); 
if(
$pmhandler->validate_pm())
{
        
$pmhandler->insert_pm();

else
{
        
// Do some debugging stuff 
        
$errors $pmhandler->get_friendly_errors();
        echo 
$errors;
        exit;


Durch das Formular wird aber "user" und "money" gesetzt, das witzige ist ja alles andere in dieser schleife wird noch ausgeführt.
Ich habe den code jetzt extra so geschrieben um zu garantieren dass in jedem fall (wenn durch das formular etwas abgeschickt wurde), eine PN gesendet werden soll.
Der Code unter der if-zeile in einer einzelnen PHP klappt perfekt. weiße seite, im postfach kommt die PN an.
Den kompletten code kann ich hier schlecht posten, da sind teile von einem Premium-Plugin (MyPlaza Turbo) bei.

kann mir wer sagen warum es ausgerechnet in der schleife dann nicht mehr klappt?
MfG
Iserlohner

PS: habe schonmal rausgefunden dass "toid" immer ein array sein muss, das hatte mich auch locker ne stunde aufgehalten Toungue
Zitieren
#23
Was ist jetzt dein Problem? Wenn die weiße Seite kommt, wird die PN gesendet, sonst kommen die Fehler.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#24
das problem ist, dass einfach keine PN gesendet wird, und auch kein fehler kommt...

sobald es in dieser if-schleife ist, einige andere schleifen folgen noch, dieser part wird aber IMMER ausgeführt, wird die PN nicht versendet.

schreibe ich noch "|| 1==1 damit die schleife auf jeden fall ausgeführt wird dann klappt es auch, aber normalerweise müsste es auch ausgeführt werden wenn ich die daten normal abschicke, denn alles andere in der schleife an dieser stelle wird auch gemacht... :/
ich werde wohl nicht drum herum kommen den code umzustrukturieren...

MfG
Zitieren
#25
Wenn $pmhandler->validate_pm() True ist, sollte die PN verschickt werden. Wenn nicht, musst du genau analysieren, was falsch ist. Ich habe keine Idee dazu.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren