Ya que lo solucionastes .. sólo un "tip" de optimización de código:
Código PHP:
function inserta_datos()
{
$su = mysql_query("insert into ".LINKS_TABLE." values('', '$category', '$title' , '$capacidad' , '$mensaje' , '$calle' , '$ciudad', '$region' , '$telefono' , '$email' , '$nombre' , '$link', NOW(), '')");
return mysql_insert_id();
}
No hace falta que asignes el valor del resultado de ejecutar mysql_insert_id() a una variable para luego devolverla como resultado de la llamada a tu función via return .. Puedes hacerlo ahí mismo en el return ..
Con ese "tip" ahorras un mínimo de recursos del servidor (proceso en asignar variables y memoria en mantenera ese instante) .. Total, esa variable, por el ambito de la función (y el cual lo has comprobado pues no la declarabas como global y pretendias leerla como tal) no te sirve de nada ..
Y .. bueno .. si no usas en esa función más tu variable $su también podrías eliminarla y ejecutar el mysql_query() directamente si no esperas nada de el (pues podrías usarlo en un condicional para determinar si fué ejecutada la consulta o no correctamente .. )
Un saludo,