Foros del Web » Programando para Internet » PHP »

Creación de usuarios con PHP y MySQL

Estas en el tema de Creación de usuarios con PHP y MySQL en el foro de PHP en Foros del Web. Buenos días. Mirad, he creado un formulario para registrar usuarios cuyo código es el siguiente Código: <?php //COMPROBACIÓN AUTENTIFICACIÓN ADMINISTRADOR session_start(); if(($_SESSION["autentificado"]=="SI") && ($_SESSION["admin"]=='SI')){ include("requires/conexbase.php"); ...
  #1 (permalink)  
Antiguo 10/02/2010, 01:20
 
Fecha de Ingreso: agosto-2003
Ubicación: España - Madrid
Mensajes: 169
Antigüedad: 20 años, 7 meses
Puntos: 0
Creación de usuarios con PHP y MySQL

Buenos días.

Mirad, he creado un formulario para registrar usuarios cuyo código es el siguiente
Código:
<?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.

Etiquetas: creación, mysql, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:42.