View Single Post
  #23  
Old 09-26-2007, 06:12 PM
CarlitoBrigante's Avatar
CarlitoBrigante CarlitoBrigante is offline
 
Join Date: Nov 2002
Location: Iceland
Posts: 182
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

This is how you should do it; of course, leaving this as it is means inviting malicious users to abuse it, but I think you mentioned this was part of a bigger AJAX script. Another suggestion, which I have not implemented here because I do not know exactly what each variable will contain, is to always use vBulletin GPC variable instead than accessing $_GET directly. In fact, while it's true that DataManagers do data validation for you, you may never know when you are going to use the data in some other bits of the code; better safe than sorry, always.

PHP Code:
<?php
// ####################### SET PHP ENVIRONMENT ###########################
error_reporting(E_ALL & ~E_NOTICE);

// #################### DEFINE IMPORTANT CONSTANTS #######################
define('THIS_SCRIPT''ajaxpost');
define('LOCATION_BYPASS'1);
define('NOPMPOPUP'1);

// ################### PRE-CACHE TEMPLATES AND DATA ######################
// get special phrase groups
$phrasegroups = array();
// get special data templates from the datastore
$specialtemplates = array();
// pre-cache templates used by all actions
$globaltemplates = array();
// pre-cache templates used by specific actions
$actiontemplates = array();

// ######################### REQUIRE BACK-END ############################
require_once('./global.php');

// ######################### CONFIGURATION ###########################
// Forum where you want to post
$ajaxposter_forumid 5;
// Title of the thread
$ajaxposter_title "Some Title...";

// input
$name $_GET['name'];
$lat $_GET['lat'];
$lon $_GET['lon'];
$uid intval($_GET['uid']);
$gid $_GET['gid'];
$desc $_GET['desc'];
$phone $_GET['phone'];
$addr $_GET['addr'];
$addr2 $_GET['addr2'];
$city $_GET['city'];
$state $_GET['state'];
$zip $_GET['zip'];
$cat $_GET['cat'];

// fetch userinfo
if (!$userinfo fetch_userinfo($uid))
{
    die(
"Invalid User!");
}
// initialize datamanager
$threaddm =& datamanager_init('Thread_FirstPost'$vbulletinERRTYPE_ARRAY'threadpost');
// set data
$foruminfo fetch_foruminfo($ajaxposter_forumid);
$threaddm->set_info('forum',$foruminfo);
$threaddm->set_info('user',$userinfo);
$threaddm->set('userid',$userinfo['userid']);
$threaddm->set('forumid',$ajaxposter_forumid);
$threaddm->set('title',$ajaxposter_title);
$threaddm->set('pagetext'$desc);
$threaddm->set('open'1);
$threaddm->set('allowsmilie'1);
$threaddm->set('visible'1);
// error checks
$threaddm->pre_save();
if (!empty(
$threaddm->errors))
{
    echo (
$threaddm->errors);
}
// save
$threadid $threaddm->save();
unset(
$threaddm);
// rebuild caches
require_once('includes/functions_databuild.php');
build_thread_counters($threadid);
build_forum_counters($ajaxposter_forumid); 
?>
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.03016 seconds
  • Memory Usage 1,806KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_php
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete