Categorías destacadas
programacion php    
Lista de foros

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.

 
BBDD
Entornos de desarrollo
Entretenimiento
Herramientas
Internet
Lenguajes de script
Lenguajes imperativos
Lenguajes orientados a objeto
Otros lenguajes
Plataformas
Teoría
Varios
Copyright © 1998-2011 Programación en Castellano. Todos los derechos reservados
Datos legales | Politica de privacidad | Contacte con nosotros | Publicidad

Diseño web y desarrollo web. Un proyecto de los hermanos Carrero.

Red internet:
Juegos gratis | Servidores dedicados
Más internet: Password | Directorio de weblogs | Favicon