Hallo, Gast! (Registrieren)

Wir wünschen allen Besuchern frohe Ostern!

Letzte Ankündigung: MyBB 1.8.37 veröffentlicht (04.11.23)


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste
Eigenes Script mit myBB verbinden
#1
Hallo,

ich hätte mal eine kompliziertere Frage.
Und zwar, möchte ich ein Script schreiben, über das ein User ein Formular abschickt. Die Daten davon sollen dann im Forum gepostet werden.

In welche mySQL Tabelle muss ich die Daten einspeichern, dass es nachher so aussieht, als hätte ich einen Post erstellt und was muss ich dabei noch beachten?

Vielen Dank für eure Hilfe

Stalker
Patrioten reden nur davon, dass sie für ihr Land sterben, niemals davon, dass sie für ihr Land töten.
Zitieren
#2
Siehe: https://www.mybb.de/forum/showthread.php?tid=20204
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#3
Vielen dank für deine Antwort Dragon.

Wo muss diese Datei dann genau liegen?
Mein Forum liegt in /forum/
Das Formular soll/muss in /joinus/ liegen.

Muss ich den Code dann folgendermaßen anpassen?
PHP-Code:
require_once "../forum/".MYBB_ROOT."inc/datahandlers/post.php"//<--
$posthandler = new PostDataHandler("insert");
$posthandler->action "thread";
$posthandler->admin_override true// Optional, ich habe es lieber drin ^^

$uid $mybb->user[uid];
$username $mybb->user[username];
$fid 0;  // Forum in das der Thread gepostet werden soll
$message $db->escape_string($_POST[message]);
$subject "Formular von ".$username;

$new_thread = array(
                
"fid" => $fid,
                
"subject" => $subject,
                
"uid" => $uid,
                
"username" => $username,
                
"message" => $message,
                
"ipaddress" => get_ip(),
        );

$posthandler->set_data($new_thread);
$validate $posthandler->validate_thread();
if (
$validate)
{
        
$tinfo $posthandler->insert_thread();
        
$tid $tinfo[tid];
        
redirect("showthread.php?tid=$tid");
}
else
{
        
error("Es ist ein Fehler w&auml;hrend der Threaderstellung aufgetreten");

PS: Das Thema soll von nicht von dem User, der das Formular abschickt erstellt werden, sondern von einem "Joinus Bot"
Patrioten reden nur davon, dass sie für ihr Land sterben, niemals davon, dass sie für ihr Land töten.
Zitieren
#4
Das funktioniert nur, wenn du die global.php einbindest. (Dazu gibt es diverse Themen in diesem Forum.)
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#5
Heißt das dann, dass mein Code so aussähe?

PHP-Code:
include ('../forum/global.php'); 
... und dann der Rest?

Ich habe zwar gesucht (Begriff "global.php") aber nur drei auf mich unpassende Threads gefunden.
Patrioten reden nur davon, dass sie für ihr Land sterben, niemals davon, dass sie für ihr Land töten.
Zitieren
#6
Eigentlich so:
PHP-Code:
chmod('../forum/');
include (
'./global.php'); 
Aber sonst richtig.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#7
Müsste das nicht
PHP-Code:
chdir('../forum/');
include (
'./global.php'); 
heißen?
Was ist der Unterschied zwischen der Politik und der Informatik?
In der Informatik ignoriert man führende Nullen...
Zitieren
#8
Ah, okay.

Mal ne Frage zu den Variablen.
PHP-Code:
$uid $mybb->user[uid]; // wo wird $mybb->user[uid] definiert? Und wie kann ich, wenn die Beiträge immer auf eine Person laufen sollen, die uid rausfinden? 
$username $mybb->user[username]; // reicht das, wenn ich das so ersetze: $username = "Test User"; ?
$fid 0;  // Forum in das der Thread gepostet werden soll
$message $db->escape_string($_POST[message]); // das ersetze ich dann durch meine Message? Also: $message = "Test"; ?
$subject "Formular von ".$username// dürfte mir auch klar sein ;) 
Patrioten reden nur davon, dass sie für ihr Land sterben, niemals davon, dass sie für ihr Land töten.
Zitieren
#9
$mybb->user wird durch das Einbinden der global.php definiert und beinhaltet die Daten des derzeitig eingeloggten Users (oder des Gastes), der die Seite aufgerufen hat.

Hast du den Testuser als Benutzer im Forum registriert? Wenn ja, kannst du einfach $username und $uid mit den Daten des Testusers füllen (also z.Bsp. $uid = 15; $username = "Testuser"; ), da brauchst du eigentlich das $mybb->user nicht.
Wenn nicht, müsstest du anstelle der uid einen anderen Wert eintragen, der keinen anderen user erwischen kann (also auch nicht 0, die ist für Gäste reserviert)


Das mit $message und $subject hast du richtig erkannt: Einfach deinen Inhalt reinschreiben.
Was ist der Unterschied zwischen der Politik und der Informatik?
In der Informatik ignoriert man führende Nullen...
Zitieren
#10
@Zwoetzen: thx für die Antwort.

Eine Frage zu $message. Verwende ich dafür den BB Code oder kann ich auch HTML Code nutzen (wär mir lieber).
Wenn ich BB Code nutzen muss, wie mach ich dann Zeilenumbrüche? \n oder einfach "Enter" drücken.

mfg
Stalker.
Patrioten reden nur davon, dass sie für ihr Land sterben, niemals davon, dass sie für ihr Land töten.
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  [Thema eingefroren]MyBB mit MediaWiki verbinden Jan 14 5.586 01.05.2013, 14:23
Letzter Beitrag: Jockl
  Wordpress Loginbox mit MyBB verbinden Benni_Cop 4 3.289 26.04.2010, 09:54
Letzter Beitrag: StefanT