Prima di tutto, il codice html perchè lo scrivi da PHP?
Fai molta più fatica.... cmq... non fa niente...

In grassetto ti ho scritto la parte che mancava!
codice:
<FORM METHOD=\"POST\" ACTION=\"insert_text.php\">
[...]
<td width=\"100%\" valign=\"middle\"><font face=\"Verdana\" size=\"1\">";

//elenco argomenti

$sql= "SELECT * FROM envo_textnews_top";
$risultati_mysql=mysql_query($sql);
echo "<select name=\"topicname\">
<option value=\"\" selected>";
while ($riga = mysql_fetch_array($risultati_mysql))
{
  $topicid=$riga["topicid"];
  $topicname=$riga["topicname"];
  $topicimage=$riga["topicimage"];
  echo"<option value=\"$topicname\">$topicname</option> ";
}

echo" </select></td>";
echo "<INPUT TYPE=\"hidden\" NAME=\"topicid\" value=\"$topicid\"> ";
<INPUT TYPE=\"SUBMIT\" VALUE=\"Invia\" name=\"submit\"><INPUT TYPE=\"reset\" VALUE=\"Cancella\">
[...]
</FORM>
Nel file non serve dichiarare nulli gli autoincrement, quindi omettili direttamente

codice:
 $sql="INSERT INTO envo_textnews (data, topicid, title, text, posted) 
VALUES ('$data', '$topicid', '$title', '$text', '$posted')";
prova a vedere se già ti funziona... se no ci sono altri errori....