El error te dice que no hay modo de ejecutar la función... la variable no tiene el valor adecuado... usualmente es porque no hubo resultados pero mencionas haz verificado los datos sean correctos...
Prueba con esto:
Código PHP:
<?
$usuario = $_POST['usuario'];
$num_cta = $_POST['num_cta'];
$password = $_POST['password'];
$ban = $_POST['ban'];
include('conexion.php');
$link = Conecta();
$q = "Select Clave_Alum, Num_Cta from Alumnos where Clave_Alum='$password' and Num_Cta='$num_cta'";
$result = mysql_query($q) or die (mysql_error());
if (mysql_num_rows($result)==0) {
?>
<script language="JavaScript">
alert("Password o Número de Cuenta Incorrecto");
history.back();
</script>
<?
}
else
{
$row = mysql_fetch_array($result);
$num_cta = $row["Num_Cta"];
?>
<form method="POST" action="menu_alumnos.php" name="form1" target="_self">
<input type="hidden" name="num_cta" value="<? echo ("$num_cta"); ?>">
<script language="javascript">
document.form1.submit();
</script>
<?
}
// } esta llave supongo va con la que borré :-D
?>
</form>
Solo añadí un par de validaciones... obviamente quité la función para conectarse y una llave ("}") que estaba por ahí y no ví el por qué... arribita de $q .. igual quité las etiquetas que abren y cierran PHP...
Al menos debería de aparecerte un mensaje diferente y ese debería dar más pistas de lo que está fallando...
Suerte!