Beiträge: 103
Themen: 24
Registriert seit: 27.02.2008
MyBB-Version: 1.4*
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.
Beiträge: 25.762
Themen: 269
Registriert seit: 20.09.2005
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Beiträge: 103
Themen: 24
Registriert seit: 27.02.2008
MyBB-Version: 1.4*
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ä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.
Beiträge: 25.762
Themen: 269
Registriert seit: 20.09.2005
Das funktioniert nur, wenn du die global.php einbindest. (Dazu gibt es diverse Themen in diesem Forum.)
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Beiträge: 103
Themen: 24
Registriert seit: 27.02.2008
MyBB-Version: 1.4*
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.
Beiträge: 25.762
Themen: 269
Registriert seit: 20.09.2005
Eigentlich so:
PHP-Code:
chmod('../forum/');
include ('./global.php');
Aber sonst richtig.
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Beiträge: 490
Themen: 49
Registriert seit: 22.12.2006
MyBB-Version: 1.6.2
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...
Beiträge: 103
Themen: 24
Registriert seit: 27.02.2008
MyBB-Version: 1.4*
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.
Beiträge: 490
Themen: 49
Registriert seit: 22.12.2006
MyBB-Version: 1.6.2
12.03.2008, 18:55
(Dieser Beitrag wurde zuletzt bearbeitet: 12.03.2008, 18:57 von Zwoetzen.)
$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...
Beiträge: 103
Themen: 24
Registriert seit: 27.02.2008
MyBB-Version: 1.4*
@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.