ecco un altro script per smf
Codice PHP:
<? 
/*    
Licenza: 
Quest'opera è stata rilasciata sotto la licenza Creative Commons Attribuzione-Non commerciale-Condividi allo stesso modo 2.5 Italia. 
Per leggere una copia della licenza visita il sito web http://creativecommons.org/licenses/by-nc-sa/2.5/it/ o spedisci una lettera a Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.       
-------------------------------- 
Autore: Arminio Patrick 
Sito web: www.patrick91.it  || www.inkscapeitalia.org
For: smf version 1.1.2 
 
ENGLISH 
Copyright
 
This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 2.5 Italy License. 
To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/2.5/it/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. 
-------------------------------- 
Autor: Arminio Patrick 
Website: www.patrick91.it  || www.inkscapeitalia.org
For: smf version 1.1.2 
*/ 
 
class smf 
//variabili 
   
var $sticky// 1 se la discussione è in risalto  
   
var $id_categoria//id della categoria 
   
var $id_membro//id dell'user 
   
var $oggetto// 
   
var $corpo//corpo del messaggio 
 
//funzione per recuperare i dati dell'utente 
   
private function datiUser() { 
//query per le info dell'user 
   
$post_utente "SELECT * FROM smf_members WHERE ID_MEMBER = '$this->id_membro'"
//eseguo la query 
   
$row_post_utente mysql_query($post_utente); 
//metto in un array associativo i dati dell'utente 
   
$datiUser mysql_fetch_assoc($row_post_utente); 
   return 
$datiUser
   } 
 
//funzione per aggiornare i post dell'utente 
   
private function aggiornaDatiUser($post_vecchi) { 
//aggiungo uno al numero di post dell'utente 
   
$post_aggiornati $post_vecchi 1
//query 
   
$aggiorna_post_user "UPDATE smf_members SET posts = '$post_aggiornati' WHERE ID_MEMBER = '$this->id_membro'"
//eseguo la query 
   
mysql_query($aggiorna_post_user);    
   } 
 
//funzione per recuperare i dati della categoria 
   
private function datiBoard() { 
//query per le info della categoria 
      
$info_board "SELECT * FROM smf_boards WHERE ID_BOARD = '$this->id_categoria'"
//eseguo la query 
      
$row_board mysql_query($info_board); 
//metto in un array associativo i dati della categoria 
   
$datiBoard mysql_fetch_assoc($row_board); 
   return 
$datiBoard
   } 
 
//funzione per aggiornare i dati della categoria (post, topic, ultimo msg) 
   
private function aggiornaDatiBoard($post_board_vecchi$topic_board_vecchi$id_msg) { 
//aggiungo uno al numero di post dell'utente 
   
$post_board_aggiornati $post_board_vecchi 1
   
$topic_board_aggiornati $topic_board_vecchi 1
//query 
   
$aggiorna_board "UPDATE smf_boards SET ID_LAST_MSG = '$id_msg', numTopics = '$topic_board_aggiornati', numPosts = '$post_board_aggiornati' WHERE ID_BOARD = '$this->id_categoria'"
   
mysql_query($aggiorna_board);    
   } 
 
//funzione per inserire il TOPIC e generare l'id 
   
private function inserisciTopic() { 
//creo la query per inserire il topic 
   
$query_topic "INSERT INTO smf_topics (isSticky, ID_BOARD, ID_MEMBER_STARTED) VALUES ('$this->sticky', '$this->id_categoria', '$this->id_membro')"
//avvio la query 
   
mysql_query($query_topic); 
//recupero l'id 
   
$id_topic mysql_insert_id(); 
   return 
$id_topic
   } 
 
//funzione per inserire il MESSAGGIO e generare l'id 
   
private function inserisciMsg($id_topic$nome_membro) { 
//orario 
   
$orario mktime(); 
//indirizzo IP 
   
$ip $_SERVER['SERVER_ADDR']; 
//creo la query per inserire il messaggio 
   
$query_msg "INSERT INTO smf_messages (ID_TOPIC, ID_BOARD, posterTime, ID_MEMBER, subject, posterName, posterIP, body, icon) VALUES ('$id_topic', '$this->id_categoria', '$orario', '$this->id_membro', '$this->oggetto', '$nome_membro', '$ip', '$this->corpo', 'xx')"
//avvio la query 
   
mysql_query($query_msg); 
//recupero l'id per indicare al topic il post di inizio e di fine :| che sono uguali, almeno per la prima volta :P 
   
$id_msg mysql_insert_id();  
   return 
$id_msg
   } 
 
//funzione per per aggiornare il TOPIC 
   
private function aggiornaTopic($id_msg$id_topic) { 
//query 
   
$aggiorna_topic "UPDATE smf_topics SET ID_FIRST_MSG = '$id_msg', ID_LAST_MSG = '$id_msg' WHERE ID_TOPIC = '$id_topic' LIMIT 1"
//avvio la query 
   
mysql_query($aggiorna_topic); 
   } 
 
//funzione per inserire il topic e il messaggio 
   
function vai() { 
//prendi i dati dell'user 
   
$informazioni_user $this->datiUser();    
//nome 
   
$nome_user $informazioni_user['memberName']; 
//post 
   
$post $informazioni_user['posts']; 
//email 
   
$email $informazioni_user['emailAdress']; 
//id topic 
   
$id_topic $this->inserisciTopic(); 
//aggiorna i post dell'utente 
   
$this->aggiornaDatiUser($post); 
//id messaggio 
   
$id_msg $this->inserisciMsg($id_topic$nome_user); 
//aggiorna il topic 
   
$this->aggiornaTopic($id_msg$id_topic); 
//dati Board 
   
$dati_board $this->datiBoard(); 
//post 
   
$post_board $dati_board['numPosts']; 
//topic 
   
$topic_board $dati_board['numTopics']; 
//aggiorna la board 
   
$this->aggiornaDatiBoard($post_board$topic_board$id_msg); 
   } 

?>
Invece ecco qui il codice per utilizzarla

Codice PHP:
<? 
require_once('class.php'); 
//qui bisogna creare una connessione a mysql 
$smf = new smf(); 
$smf->sticky "0";  //se 1 in rilievo
$smf->id_categoria "1";  //qui dovete mettere l'id della categoria
$smf->id_membro "1"//qui l'id dell user
$smf->oggetto "Primo messaggio"
$smf->corpo "Se lo leggi, funziona"
$smf->vai(); //inserisce il topic 
?>
enjoy