Ver Mensaje Individual
  #5 (permalink)  
Antiguo 01/08/2013, 17:15
diego_weichafe
 
Fecha de Ingreso: enero-2013
Ubicación: santiago de chile
Mensajes: 9
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Protejer directorio web y acceder solo con $_SESSION

para comenzar el login uso (cuando se envia el formulario y se revisa si esta todo correcto):

Código PHP:
Ver original
  1. <?php
  2. ob_start(); // outer buffer
  3. ob_start(); // inner buffer to catch URL rewrites and other post processing
  4. ?>
  5. <link href="sisprod/style.css" rel="stylesheet" type="text/css"><?php
  6. //datos para establecer la conexion con la base de mysql.
  7. mysql_connect('xx','root','xx')or die ('Ha fallado la conexión: '.mysql_error());
  8. mysql_select_db('zzz')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
  9. function quitar($mensaje)
  10. {
  11.     $nopermitidos = array("'",'\\','<','>',"\"");
  12.     $mensaje = str_replace($nopermitidos, "", $mensaje);
  13.     return $mensaje;
  14. }
  15. if(trim($_POST["usuario"]) != "" && trim($_POST["password"]) != "")
  16. {
  17.     // Puedes utilizar la funcion para eliminar algun caracter en especifico
  18.     //$usuario = strtolower(quitar($HTTP_POST_VARS["usuario"]));
  19.     //$password = $HTTP_POST_VARS["password"];
  20.     // o puedes convertir los a su entidad HTML aplicable con htmlentities
  21.     $usuario = strtolower(htmlentities($_POST["usuario"], ENT_QUOTES));
  22.     $password = $_POST["password"];
  23.     $passwordMD5 = MD5($password);
  24.     $result = mysql_query('
  25.     SELECT
  26.     zzz.admin.clave,
  27.     zzz.admin.rut
  28.     FROM zzz.admin
  29.     WHERE rut=\''.$usuario.'\'');
  30.     if($row = mysql_fetch_array($result)){
  31.         if($row["clave"] == $passwordMD5){
  32.             $_SESSION["k_username"] = $row['rut'];
  33.            
  34.             echo'
  35.             <div class="divtablalogin">
  36.             <table><tr><th>Has sido logueado correctamente</th></tr><tr><th>'.$_SESSION['k_username'].'</th></tr>
  37.             <tr><th>PRESIONE EL ENLACE</th></tr>
  38.             <tr>
  39.         <th><div align="middle"><a href="sisprod/index.php">Entrar al Sistema</a></div></th><tr></table></div>';
  40.            
  41.            
  42.             //Elimina el siguiente comentario si quieres que re-dirigir automáticamente a index.php
  43.             /*Ingreso exitoso, ahora sera dirigido a la pagina principal.
  44.             <SCRIPT LANGUAGE="javascript">
  45.             location.href = "index.php";
  46.             </SCRIPT>*/
  47.         }else{
  48.             echo '<div class="divtablalogin"><table><tr><th>Password incorrecto</th></tr>
  49.             <tr>
  50.         <th><div align="middle"><a href="login.php">Inicio</a></div></th><tr>
  51.            
  52.             </table></div>';
  53.         }
  54.     }else{
  55.         echo '<div class="divtablalogin"><table><tr><th>Usuario no existente en la base de datos</th></tr><tr>
  56.         <th><div align="middle"><a href="login.php">Inicio</a></div></th><tr>
  57.        
  58.         </table></div>';
  59.     }
  60.     mysql_free_result($result);
  61. }else{
  62.     echo '<div class="divtablalogin"><table><tr><th>Debe especificar un usuario y password</th></tr><tr><th><div align="middle"><a href="login.php">Inicio</a></div></th></tr></table></div>';
  63. }
  64. ?>


Luego para mostrar la session iniciada en el index.php uso:

Código PHP:
Ver original
  1. <?php
  2. echo 'Bienvenido, ';
  3. if (isset($_SESSION['k_username'])) {
  4.     echo '<b>'.$_SESSION['k_username'].'</b>.';
  5.     echo '<p><a href="http://.../logout.php">Cerrar Sesión</a></p>';
  6. }
  7. ?>

Como deberia arreglar mi codigo??

Última edición por diego_weichafe; 01/08/2013 a las 17:21