PDA

View Full Version : Access denied. after post save


kamilkurczak
07-18-2011, 04:52 PM
Hello,
I wrote my own system to save post on outside forum page (using data manager). Post is saved correctly but after save I have a blank page with : "Access denied." message.

example of my code:
global $vbulletin;
require_once(CWD . '/includes/init.php');
require_once(CWD . '/includes/functions_misc.php');
require_once(CWD . '/includes/functions_databuild.php');

$foruminfo = fetch_foruminfo($forum_id);
$threadinfo = fetch_threadinfo($thread_id);

$postdm =& datamanager_init('Post', $vbulletin, ERRTYPE_ARRAY, 'threadpost');
//$postdm = new vB_DataManager_Post($vbulletin, ERRTYPE_STANDARD);

// set options
//$postdm->setr('showsignature', $post_data['signature']);
$postdm->setr('allowsmilie', $post_data['enablesmilies']);
//$postdm->setr('htmlstate', $post['htmlstate']);

// set data
$postdm->setr('userid', $post_data['userid']);
$postdm->setr('threadid', $post_data['threadid']);
$postdm->setr('parentid', $post_data['parentid']);
//$postdm->set('username', $post_data['username']);
$postdm->setr('title', $post_data['title']);
$postdm->setr('pagetext', $post_data['pagetext']);
$postdm->setr('iconid', $post_data['iconid']);
$postdm->setr('visible', $post_data['visible']);
$postdm->setr('dateline', time());
$postdm->set_info('forum', $foruminfo);
$postdm->set_info('thread', $threadinfo);
$postdm->pre_save();

if(!empty($postdm->errors))
{
return $postdm->errors;
}
else
{

$post_id = $postdm->save();

build_thread_counters($threadinfo);
build_forum_counters($foruminfo);

return $thread_id;
}

can you help me? Thanks

Zachery
07-18-2011, 07:29 PM
Can you show us the screen shot of the actual error?

kh99
07-18-2011, 08:02 PM
...or some more code? Looks like what you posted is one function, do you know if that code is causing the error?

kamilkurczak
07-19-2011, 07:48 AM
this is my complete function to post adding:
public function addPost($forum_id, $thread_id, $post_data = array())
{
global $vbulletin;
require_once(CWD . '/includes/init.php');
require_once(CWD . '/includes/functions_misc.php');
require_once(CWD . '/includes/functions_databuild.php');

$foruminfo = fetch_foruminfo($forum_id);
$threadinfo = fetch_threadinfo($thread_id);

$postdm =& datamanager_init('Post', $vbulletin, ERRTYPE_ARRAY, 'threadpost');
//$postdm = new vB_DataManager_Post($vbulletin, ERRTYPE_STANDARD);

// set options
//$postdm->setr('showsignature', $post_data['signature']);
$postdm->setr('allowsmilie', $post_data['enablesmilies']);
//$postdm->setr('htmlstate', $post['htmlstate']);

// set data
$postdm->setr('userid', $post_data['userid']);
$postdm->setr('threadid', $post_data['threadid']);
$postdm->setr('parentid', $post_data['parentid']);
//$postdm->set('username', $post_data['username']);
$postdm->setr('title', $post_data['title']);
$postdm->setr('pagetext', $post_data['pagetext']);
$postdm->setr('iconid', $post_data['iconid']);
$postdm->setr('visible', $post_data['visible']);
$postdm->setr('dateline', time());
$postdm->set_info('forum', $foruminfo);
$postdm->set_info('thread', $threadinfo);
$postdm->pre_save();

if(!empty($postdm->errors))
{
return $postdm->errors;
}
else
{

$post_id = $postdm->save();

build_thread_counters($threadinfo);
build_forum_counters($foruminfo);

return $thread_id;
}

}

and this function is called by:

protected function processForm(sfWebRequest $request, sfForm $form)
{
$form_name = $form->getName();
$form->bind($request->getParameter($form_name), $request->getFiles($form->getName()));
if ($form->isValid())
{
// start vbulletin add thread part
if(sfConfig::get('app_vbulletin_use'))
{
$user_id = $this->getUser()->getGuardUser()->getId();
$values = $this->form->getValues();

if($form_name == 'post')
{
$vb = new vbConnector();
$post_data = array( 'threadid' => $this->thread_id,
'title' => $values['title'],
'pagetext' => $values['message'],
'userid' => $user_id,
'open' => 1,
'visible' => 1,
'allowsmilie' => 1,
'parentid' => 0,
'iconid' => 1,
'signature' => 0
);
$this->errors = $vb->addPost($this->forum_id, $this->thread_id, $post_data);
}
else
{
$vb = new vbConnector();
$thread_data = array( 'forumid' => $this->forum_id,
'title' => $values['title'],
'pagetext' => $values['message'],
'userid' => $user_id,
'open' => 1,
'visible' => 1,
'allowsmilie' => 1
);
$this->errors = $vb->addThread($this->forum_id, $thread_data);
}

if(!is_array($this->errors))
{

$this->redirect('@forum_thread?forum_id='.$this->forum_id.'&slug='.$this->errors);
}
}
// end vbulletin add thread part

}
}

about error screen. there is only blank page with Access denied. message in top-right corner. nothing more.

kh99
07-19-2011, 04:16 PM
I see a lot of places where "Access denied" may be output by the vb code, but none that seem to be associated with what you posted. Have you tried maybe commenting out parts of the code to see if you can narrow it down?

kamilkurczak
08-01-2011, 06:38 AM
this line causing the problem.
$post_id = $postdm->save();

kamilkurczak
08-03-2011, 09:23 AM
nobody know? please I need help ASAP

--------------- Added 1312370541 at 1312370541 ---------------

this line will solve this problem:
define('VB_ENTRY', 1);

thanks