No funciona por qué tu configuración de PHP no acepta variables externas que vengan definidas como globales .. es necesario que se accedan por el array superglobal en el que llegan:
Código PHP:
<?
elseif($_GET['accion']=="guardar"){
Y los valores a comparar han de ir entre comillas (son strings/cadenas . .no "constantes").
Por si acaso .. luego me preguntaras que el registro se crea pero no tiene nada en el: ni nombre, ni cargo . .etc. Esto es más de lo miso .. debes acceder a tus variables externas por sus arrays correpondientes!!!!!!!!!.
Un saludo,