Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/07/2014, 19:14
javy
 
Fecha de Ingreso: septiembre-2002
Mensajes: 153
Antigüedad: 21 años, 7 meses
Puntos: 1
Enviar ID para sesion

Hola a todos:

Mi nombre es Javy y tengo un problemilla... para variar...

El caso es que tengo una página (index.php) con un formulario de ingreso (usuario y clave)

Código:
<?php
	// NECESARIO PARA CREAR SESIONES
	require_once("incluye/sesion.php");
	// INICIA SESIÓN
	$sesion = new sesion();
	// SI EL FORMULARIO HA SIDO ENVIADO, SE VALIDA
	// MENSAJE DE ERROR
	$error = '';
	if(isset($_POST['submit'])){
	// SE CREAN LAS VARIABLES
	$usuarioid = $_POST['usuarioid'];
	$usuario = $_POST['usuario'];
	$clave = $_POST['clave'];
	// SE VALIDA QUE SEAN VERDADERAS LAS VARIABLES
	if(validarUsuario($usuarioid,$usuario,$clave) == true)
	{
	$sesion->set('usuario',$usuario);
	// SI SON VERDADERAS, MANDA A SIGUIENTE PÁGINA
	header("location: checklogin.php");
	} else { // SI SON FALSAS	
	header("location: checkloginerror.php");
	}
	}
	// VALIDA EL NOMBRE Y LA CLAVE DE USUARIO
	function validarUsuario($usuarioid,$usuario,$clave)
	{
	// CONECTAR A LA BASE DE DATOS
	$conexion = new mysqli("localhost","sopor_invitado","clavebbdd","nombrebbdd");
	// SE HACE LA CONSULTA
	$consulta = "SELECT usuarioid, AES_DECRYPT(clave,'clave2') FROM usuarios WHERE usuario = '$usuario';";
	// RECOGE EL RESULTADO
	$result = $conexion->query($consulta);
	
	if($result->num_rows > 0){
	$fila = $result->fetch_assoc();
	// COMPARA LA CLAVE DE USUARIO
	if(strcmp($clave,$fila["AES_DECRYPT(clave,'clave2')"]) == 0)
	// DEVUELVE VERDADERO
	return true;
	else
	// DEVUELVE FALSO
	return false;
	}
	else
	// DEVUELVE FALSO
	return false;
	}
?>
<body>

<form method="post" class="login" action="<?php echo $_SERVER['PHP_SELF']; ?>">
                        <h2>Registro</h2>
                        <input type="text" name="usuario" id="usuario" class="login-input" placeholder="Usuario" autofocus>
                        <input type="password" name="clave" id="clave" class="login-input" placeholder="Contraseña">
                        <input type="submit" name="submit" id="submit" value="ENTRAR" class="login-submit">
                    </form>

</body>
Con este código, si el susario esta correcto, en la página "checklogin.php" te da las gracias y un botón para ir a la siguiente página "control.php".

Código:
<?php
	// NECESARIO PARA CREAR SESIONES
	require_once("incluye/sesion.php");
	// INICIA SESIÓN
	$sesion = new sesion();
	// VERIFICA AL USUARIO Y LA ID
	$usuarioid = $sesion->get('usuarioid');
	$usuario = $sesion->get('usuario');
	// SI NO ES CORRECTO, VUELVE A PÁGINA PRINCIPAL
	if($usuario == false){	
		header("Location: initchecklogin.php");		
	} else { //SI EL USUARIO ES CORRECTO, CARGA LA PÁGINA
?>
<body>
<div class="article-texto"><!--COMIENZO DIV ARTICLE-TEXTO-->
                    <div class="login"><!--COMIENZO DIV LOGIN-->
                    	<h2>¡Bienvenido!<p>"<?php echo $sesion->get("usuario"); ?>"</p>
                        <p>"<?php echo $sesion->get("usuarioid"); ?>"</p></h2>
                        <a class="botonir" href="control.php" target="_self">ENTRAR</a>
                    </div><!--FINAL DIV LOGIN-->
                </div><!--FINAL DIV ARTICLE-TEXTO-->
</body>
</html>
	
	<?php 
	}	
	?>
El problema es que
Código:
<?php echo $sesion->get("usuario"); ?>
me imprime en pantalla el nombre de usuario pero
Código:
<?php echo $sesion->get("usuarioid"); ?>
no me imprime la ID.

Mi idea (a no ser que esté equivocado) es mandar esa ID de página en página para mantener la sesión... o que no se pueda abrir ninguna página si no se loguean...

Gracias a todos y un saludo:

Javy