mejor:
En el codigo HTML, debe haber un <form action="post"></form>
El que recibe, lo hace asi:
//Funcion que limpia las variables y asegura contra inyección SQL
function addslashes__recursive($var){
foreach ($var as $k => $v)$new_var[addslashes($k)]=addslashes__recursive
($v); return $new_var;
}
//Usando la funcion
$_POST=addslashes__recursive($_POST);
//Recibiendo variables.
$nombre = $_POST["nom"];
$apellido = $_POST["ape"];
$coleycurso = $_POST["colegio"];
Ahora bien, en el codigo que pusiste dice:
mysql_query("INSERT INTO alumnos (nombre,apellido,colegio)
VALUES ('$nombre', '$apellido', '$sexo', '$coleycurso')");
Osea, aclaras que tu tabla tiene 3 campos, nombre, apellido, colegio, pero introduces 4 campos, sexo se agrega, el cual no se recibe en ningun lado, osea que puede estar ocasionando un error, porque deberia entrar algo.
Lo que supongo te falta es:
$sexo = $_POST["sexo"];
Y tambien, ejecutas tu consulta sin hacer una conexión, lo mejor seria hacerla asi:
$consulta = "INSERT INTO alumnos (nombre, apellido, sexo, colegio)
VALUES ('$nombre', '$apellido', '$sexo', '$coleycurso'";
Donde $datos_conexion seria igual a:
$hostname = 'localhost';
$username = 'user';
$password = '****'
Y creo que con eso se arregla.
Haber si nos cuentas como anda.
Saludos