Hola,
Yo empezaria a acostumbrarme a usar los arrays superglobales $_POST, $_GET y demas, porque sino tu codigo va a depender de que esten el register_globals a on, lo que en PHP han puesto por defecto a off (y conociendo a ciertos administradores de servidores, no cambiaran). Ademas, es mas seguro, como comenta Cluster en las FAQs.
Otra cosa, ademas de comprobar si tiene valor, tambien deberias comprobar (y forzar) de que sea del tipo que esperas. Si, por ejemplo, $curso debe ser un numero entero, podrias usar settype() (
www.php.net/settype) para convertirlo a un entero.
Y si la variable solo puede tener 2 valores (o un numero finito), tambien deberias comprobarlo. En tu caso, deberias comprobar que $opt es 0 o 1.
Saludos.