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', $vbulletin, ERRTYPE_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);
?>