Mirad, he creado un formulario para registrar usuarios cuyo código es el siguiente
Código:
He de decir, que las variables las cojo de un formulario anterior, en una página anterior.<?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ñ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"); } ?>
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.