posts erstellen von aussen

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Gast

posts erstellen von aussen

Beitrag von Gast »

gibt es ne einfache möglichkeit mit einem php script ein topic im phpbb zu erstellen?
ich möchte die comments zu den news auf meiner seite ins forum packen und muss dazu ja automatisch erstmal ein neues topic erstellen.
ich hab zwar direkt zugriff auf die datenbank und könnte es da reinschreiben, blos ist es ein wenig aufwendig, da ich erst die nächste topic id rausfinden müsste und etc.
die function submit_post in functions_post.php kapier ich leider nicht ganz.

sorry wenn die antwort dazu schon ürgendwo im forum steht, hab über die such function nix gefunden.
Benutzeravatar
itst
Ehrenadmin
Beiträge: 7418
Registriert: 21.08.2001 02:00
Wohnort: Büttelborn bei Darmstadt
Kontaktdaten:

Beitrag von itst »

Die posting.php ist Dein Freund. Mit dem Parameter "?mode=newtopic" und den anderen Daten aus dem Formular, das Du einfach kopieren könntest.
Sascha A. Carlin,
phpBB.de Ehrenadministrator
:o
Gast

Beitrag von Gast »

blos gehts dann nur als gast user
mit nem anderem user müsste ich mich ja erst einloggen, oder nimmt phpbb einfach den usernamen und pw wenn ich dem das einfach per parameter übergebe?
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Ich würde eine Kopie von posting.php erstellen und den Code, wo die übergebenen Variablen aufbereitet werden sowie überprüft wird ob der angemeldete Benutzer überhaupt posten darf durch deinen eigenen ersetzen. Wichtig ist daß du:
  • $HTTP_POST_VARS füllst (guck dir ggf. im Quellcode einer generierten posting.php im Browser an, welche Variablen übergeben werden)
  • $userdata füllst (einfach 'SELECT * FROM <userstabelle> WHERE user_id=<gewünschteuserid>' ausführen und mit mysql_fetch_array auslesen). Überschreiben musst du das was bei '//Start session management' steht
  • Die Ausgabe unterdrückst (Oder anpasst oder was du willst)
ET^LEO

Ich habs so gemacht:

Beitrag von ET^LEO »

Code: Alles auswählen

/***************************************************************************
 * post.php by Legacy of LEO (leo@et-clan.de)
 ***************************************************************************/
if(!$subject or !$message) { echo "ERROR: no Subject or message!"; die; }
define('IN_PHPBB', true);
$phpbb_root_path='./';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
include($phpbb_root_path . 'includes/bbcode.'.$phpEx);
include($phpbb_root_path . 'includes/functions_post.'.$phpEx);


// CONFIG FOR NEW TREAD
$urlbase='http://www.et-clan.de/phpbb2/';	//Link to PHPBB2
$forum_id=8; 					//Forum
$bbcode_on=1; 					//BBCODE ON=1 OFF=0
$html_on=1;					//HTML ON=1 OFF=0
$smilies_on=0;					//SMILIES ON=1 OFF=0
$topic_type='0';				//TOPIC TYPE NORMAL=0 IMPORTEND=1 ANNOUNCE=2
$attach_sig='0';				// Signum attache ON=1 OFF=0
$mode='newtopic';				// should not be changed!
// CONFIG END


// Start session management
$userdata = session_pagestart($user_ip, PAGE_POSTING);
init_userprefs($userdata);
$username = ( $userdata['session_logged_in'] ) ? $userdata['username'] : '';
// End session management

prepare_post($mode, $post_data, $bbcode_on, $html_on, $smilies_on, $error_msg, $username, $bbcode_uid, $subject, $message, $poll_title, $poll_options, $poll_length);
submit_post($mode, $post_data, $return_message, $return_meta, $forum_id, $topic_id, $post_id, $poll_id, $topic_type, $bbcode_on, $html_on, $smilies_on, $attach_sig, $bbcode_uid, str_replace("\'", "''", $username), str_replace("\'", "''", $subject), str_replace("\'", "''", $message), str_replace("\'", "''", $poll_title), $poll_options, $poll_length);
update_post_stats($mode, $post_data, $forum_id, $topic_id, $post_id, $user_id);

echo $urlbase.'viewtopic.php?t='.$topic_id;
Das speicherst du im deinem PHPBB verzeichniss.
alles was du jetz zutuhen hast ist das ding mit:
post.php?subject=(titel des treads)&message=(inhalt des treads)
aufzurufen.
Antworten

Zurück zu „Coding & Technik“