Problema al crear usuarios con PHP y MySQL

Fran
11 de Febrero del 2010
Buenos días.

Mirad, he creado un formulario para registrar usuarios cuyo código es el siguiente

<?php
//COMPROBACIÓN AUTENTIFICACIÓN ADMINISTRADOR
session_start();
if(($_SESSION["autentificado"]=="SI") && ($_SESSION["admin"]=='SI')){

include("requires/conexbase.php");

/*Recibimos las variables por el metodo POST*/
$user = htmlspecialchars(trim($_POST['user']));
$passa = trim($_POST['passa']);
$passb = trim($_POST['passb']);
$nombre= htmlspecialchars(trim($_POST['nombre']));
$apellido1= htmlspecialchars(trim($_POST['apellido1']));
$apellido2= htmlspecialchars(trim($_POST['apellido2']));
$admin = trim($_POST['admin']);


if($passa==null | $nombre==null | $apellido1==null | $apellido2==null | $user==null | $admin==null){
echo "<br><center><strong>Lo sentimos, algunos campos del formulario anterior están vacíos.";
echo "<br>En unos segundos volverá a la página anterior.</strong></center>";
?>
<meta http-equiv="refresh" content="3; url=alta_usuarios.php" />
<?
} else {
/*Hacemos la consulta */
$query = sprintf("SELECT login FROM usuarios WHERE usuarios.login='%s'", mysql_real_escape_string($login));
$result=mysql_db_query($db,$query,$conection);
if(mysql_num_rows($result)){
echo "<br><center><strong>El usuario ya existe</center></strong>";
?>
<meta http-equiv="refresh" content="3; url=alta_usuarios.php" />
<?
} else {
mysql_free_result($result);

/* Ahora comprobamos que los dos pass coinciden */
if($passa!=$passb) {
echo "<br><center><strong>Lo sentimos, pero no coinciden las contrase&ntilde;as.";
echo '<br>En unos segundos volverá a la página anterior.</center></strong>';
?>
<meta http-equiv="refresh" content="3; url=alta_usuarios.php" />
<?
} else {

// Encriptamos "Ciframos" el password y volcamos los datos en nuestra BD
$passa=sha1(md5($passa));
$query = sprintf("INSERT INTO usuarios (login, nombre, apellido1, apellido2, password, admin) VALUES ('%s','%s','%s', '%s','%s', '%s')", mysql_real_escape_string($user), mysql_real_escape_string($nombre), mysql_real_escape_string($apellido1),mysql_real_escape_string($apellido2), mysql_real_escape_string($passa), mysql_real_escape_string($admin));
$result=mysql_db_query($db,$query,$conection);
if(mysql_affected_rows()){
echo "<br><center><strong>Usuario introducido correctamente";
echo "<br>En unos segundos volverá a la página anterior.";
?>
<meta http-equiv="refresh" content="3; url=alta_usuarios.php" />
<?
} else {
echo "<br><center><strong>Error introduciendo el usuario.</center></strong>";
echo "<br>En unos segundos volverá a la página anterior.</strong></center>";
?>
<meta http-equiv="refresh" content="3; url=alta_usuarios.php" />
<?
}
}
}
}
}else {
header("location:index.php");
}
?>


He de decir, que las variables las cojo de un formulario anterior, en una página anterior.
Los usuarios son creados correctamente, el problema está en que al crearlos, me salgo de mi sesión e inicio sesión con el nombre de usuario que acabo de crear, es decir, si estoy conectado como administrador y creo un nuevo usuario llamado Juan, al crear el usuario y actualizarse la página, aparezco automáticamente conectado como Juan.
De igual forma, cuando el proceso de creación de usuarios ha dado un fallo o algo similar, se sale de mi sesión de Administrador y entra en una sesión "en blanco" que no existe.

¿Alguna idea de la parte de código que puede estar mal?

Muchas gracias.
Un saludo.