Quiero usar
createPost($msgOptions, $topicOptions, $posterOptions);
y para su validación estoy usando $smcFunc['htmlspecialchars'] de la siguiente manera
$titulo = $smcFunc['htmlspecialchars']($_POST['titulo'], ENT_QUOTES);
$cuerpo= $smcFunc['htmlspecialchars']($_POST['cuerpo'], ENT_QUOTES);
es correcto y suficiente? o smf necesita de más para desinfectar algún formulario extra
y al respecto que pasa si inserto un id de un foro que no existe, es necesario que haga otra consulta para validar si el id del foro ingresado existe? o createPost ya valida eso :c
$topicOptions = array(
'board' => $board_id,
'mark_as_read' => true,
);
al usar $smcFunc automaticamente ya estas protegiendote de varios dolores de cabeza.
generalmente yo uso el escape_string para todo lo relacionado a string al momento de realizar el agregado a nivel de base de datos.
con relacion a tu otra pregunta, segun recuerdo ya smf controla que el foro exista para poder realizar la accion.