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:
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".<?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>
Código:
El problema es que <?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 } ?>
Código:
me imprime en pantalla el nombre de usuario pero <?php echo $sesion->get("usuario"); ?>
Código:
no me imprime la ID.<?php echo $sesion->get("usuarioid"); ?>
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