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