Deseo crear un sitio web en base a usuarios.
para ello cree una tabla con campos en mi base de datos:
Código MySQL :
1.CREATE TABLE `usuarios` ( 2. `id` INT(11) NOT NULL AUTO_INCREMENT, 3. `usuario` VARCHAR(20) NOT NULL, 4. `password` VARCHAR(10) NOT NULL, 5. `descripcion` TEXT character SET utf8 collate utf8_spanish_ci, 6. `email` VARCHAR(45) character SET utf8 collate utf8_spanish_ci DEFAULT NULL, 7. `fecha` DATE NOT NULL, 8. PRIMARY KEY (`id`) 9.)
tengo varios archivos, primero tengo un index:
Código PHP :
1.<?php session_start(); 2. 3.echo 'Bienvenido, '; 4. 5.if (isset($_SESSION['k_username'])) { 6. echo '<b>'.$_SESSION['k_username'].'</b>.'; 7. echo '<p><a href="logout.php">Logout</a></p>'; 8.}else{ 9. echo '<p><a href="login.php">Login</a></p> 10. <p><a href="registrar.php">Registrar</a></p>'; 11.} 12.?>
luego un login
Código PHP :
1.<form action="validar_usuario.php" method="post">2.Usuario:<input type="text" name="usuario" size="20" maxlength="20" />3.<br />4.Password:<input type="password" name="password" size="10" maxlength="10" />5.<br />6.<input type="submit" value="Ingresar" />7.</form>
luego un validar usuario
Código PHP :
1.<?php session_start(); 2. 3.//datos para establecer la conexion con la base de mysql. 4.mysql_connect('localhost','usuario','password')or die ('Ha fallado la conexión: '.mysql_error()); 5.mysql_select_db('mi_base')or die ('Error al seleccionar la Base de Datos: '.mysql_error()); 6. 7.function quitar($mensaje) 8.{ 9. $nopermitidos = array("'",'\\','<','>',"\""); 10. $mensaje = str_replace($nopermitidos, "", $mensaje); 11. return $mensaje; 12.} 13. 14.if(trim($HTTP_POST_VARS["usuario"]) != "" && trim($HTTP_POST_VARS["password"]) != "") 15.{ 16. // Puedes utilizar la funcion para eliminar algun caracter en especifico 17. //$usuario = strtolower(quitar($HTTP_POST_VARS["usuario"])); 18. //$password = $HTTP_POST_VARS["password"]; 19. 20. // o puedes convertir los a su entidad HTML aplicable con htmlentities 21. $usuario = strtolower(htmlentities($HTTP_POST_VARS["usuario"], ENT_QUOTES)); 22. $password = $HTTP_POST_VARS["password"]; 23. 24. 25. $result = mysql_query('SELECT password, usuario FROM usuarios WHERE usuario=\''.$usuario.'\''); 26. if($row = mysql_fetch_array($result)){ 27. if($row["password"] == $password){ 28. 29. $_SESSION["k_username"] = $row['usuario']; 30. 31. echo 'Has sido logueado correctamente '.$_SESSION['k_username'].' <p>'; 32. echo '<a href="index.php">Index</a></p>'; 33. 34. //Elimina el siguiente comentario si quieres que re-dirigir automáticamente a index.php 35. 36. /*Ingreso exitoso, ahora sera dirigido a la pagina principal. 37. <SCRIPT LANGUAGE="javascript"> 38. location.href = "index.php"; 39. </SCRIPT>*/ 40. 41. }else{ 42. echo 'Password incorrecto'; 43. } 44. }else{ 45. echo 'Usuario no existente en la base de datos'; 46. } 47. mysql_free_result($result); 48.}else{ 49. echo 'Debe especificar un usuario y password'; 50.} 51.mysql_close(); 52.?>
aparte otra para dar de alta al usuario y un logout
Todo funciona bien, se dan de alta los usuarios. el problema viene cuando quiero bloquear ciertas paginas para que solo tengan acceso los usuarios.
Tengo entendido que solo necesito una funcion que debo colocar al principio de la pagina, en la cual busca en la base de datos el usuario y pasword que estan en la cokkie (no se si este codigo que copie lo genere) y si lo encuentra abre la pagina, si no, me regresa a la pagina deregistro. Suena sencillo pero ya estuve buscando y no eh tenido exito.
Encontre un codigo que suena logico, pero no me funciona
Código PHP :
<? session_start(); if(!isset($_SESSION['s_username']))header("location: entrar.html"); ?>
alguna idea?