Ver Mensaje Individual
  #17 (permalink)  
Antiguo 06/11/2012, 09:31
rolygc
 
Fecha de Ingreso: abril-2009
Ubicación: en un lugar de la mancha
Mensajes: 236
Antigüedad: 15 años
Puntos: 38
Respuesta: tengo algun problema con el sistema de logueo :/

Hola aki te he hecho unos arreglos espero te ayude

formulario_sesion.php

Código PHP:
<?php session_start(); ?>

<?php 

function filtrarInt($int)
{
    
$int = (int) $int;
        
    if (
is_int($int) )
    {
        return 
$int;
    }
    
    return 
0;
}
    
?>


<!DOCTYPE html>
<html lang="es">    <!-- En HTML 5 con esta declaracion esta perfecto-->

<head>

    <meta charset=utf-8>
    <title>GobernaciónSD | Inicio de Sesion</title> 
    <link rel="stylesheet" type="text/css" href="../gob_styles/formulario_sesion.css" />    <!-- la declaracion del file de CSS va dentro del HEAD-->
    
    <style> <!-- tus estilos mejor organizados-->
    
        .font{font-size:300%;text-align:center;color:#333;font-family:aerial}
        .input-label{display:block;width:120px;float:left;font-weight:bold;}
        #usuario{width:120px;}
        #pwd{width:120px;}
        #error-msg{color:red;}
        .list{list-style-type:none;font-size:135%;margin-left:auto;margin-right:auto;}
        .ulclass{margin-left:auto;margin-right:auto;} <!-- esta clase aki en el HMTL la tienes como ulclass y en tu CSS la tienes como ul_class -->
        
    </style>

</head>

<body>

    <p><hr></p>
    
    <p  class="font"><b>Inicia tu Sesión</b><br><hr></p>
    
    <div class="sesion_div">
 
        <form action="http://gobernacionsd.comyr.com/php/control.php" method="post" name="form">
 
                        <input type="hidden" name="inicio" value="1" />

            <ul class="ulclass">
                <li class="list">
                    <label for="usuario" class="input-label">Usuario:</label> <!-- los labels para los input field -->
                    <input type="text" id="usuario" name="usuario" /> <!-- mejor declarar el size con css y asi todos los navegadores entenderan el mimso size -->
                </li> 
            </ul>
            
            <ul class="ulclass">
                <li class="list">
                    <label for="pwd" class="input-label">Contraseña:</label>
                    <input type="password" id="pwd" name="pwd" />
                </li>
            </ul>
            
            <ul class="ulclass">
                <li class="list"><input type="submit"  name="submit" value="Entrar" /></li>
            </ul>
        
        </form>
    
        <?php if(isset($_GET['error']) && filtrarInt($_GET['error']) == 1): ?>
            
            <p id="error-msg"> <?php echo "Usuario o contraseña incorrecto, inténtelo de nuevo"?> </p>
            
        <?php endif; ?>    
            
        <?php if(isset($_GET['error']) && filtrarInt($_GET['error']) == 2): ?>
            
            <p id="error-msg"> <?php echo "La sesión no ha iniciado. Tienes que iniciar sesión."?> </p>
        
        <?php endif; ?>    
        
    </div>
 
</body>
</html>

control.php

Código PHP:
<?php

session_start
();

include(
"conexionverif.php");
 
$conexion mysql_connect($host$user$pw) or die("No se pudo realizar la conexion con el servidor.");
mysql_select_db($db$conexion) or die("No se puede seleccionar BD");
 
function 
filtrarPostInt($int)
{
        if(isset(
$_POST[$int]) && !empty($_POST[$int]))
        {
            
$_POST[$int] = filter_input(INPUT_POST$intFILTER_VALIDATE_INT);
            return 
$_POST[$int];
        }

        return 
0;
}

function 
filtrarAlfanumerico($text)

    if(isset(
$_POST[$text]) && !empty($_POST[$text]))
    {
        
$_POST[$text] = (string) preg_replace('/[^A-Z0-9_]/i'''$_POST[$text]);
        return 
trim($_POST[$text]);
    }
}
 
function 
filtrarDatos($datos)
{
    if(isset(
$_POST[$datos]) && !empty($_POST[$datos]))
    {
        
$_POST[$datos] = strip_tags($_POST[$datos]);
            
        if(!
get_magic_quotes_gpc())
        {
            
$_POST[$datos] = mysql_escape_string($_POST[$datos]);
        }
            
        return 
trim($_POST[$datos]);
    }
}

function 
getLogin($user$pwd$conn)
{
    
$query mysql_query("SELECT * FROM cms_session WHERE usuario = '$usuario' AND pwd = MD5('$pwd)"$conn);
    return 
mysql_num_rows($query);
}
 
if ( 
filtrarPostInt('inicio') == 1)
{
    if (!
filtrarAlfanumerico('usuario') || !filtrarDatos('pwd') )
    {
        
header("Location:http://www.gobernacionsd.comyr.com/formularios/formulario_sesion.php?error=1");
        exit;
    }

    
$login getLogin(
            
filtrarAlfanumerico('usuario'),
            
filtrarDatos('pwd'),
            
$conexion
        
); 

    if ( 
$login )
    {
        
$_SESSION['auth']      = true;
        
$_SESSION['usuario'] = $usuario;
        
        
/*
        * Aki en formulario_insercion.php es donde debes chequear el codigo ke tienes en seguridad.php
        * Y a partir de aki en todas las paginas protegidas por inicio de session debes chequear ke el 
        * user este logueado, puedes hacer una funcion y chequear en cada pagina con ella.
        */
        
        
header("Location:http://gobernacionsd.comyr.com/formularios/formulario_insercion.php");
        exit;
    }
}

header("Location:http://www.gobernacionsd.comyr.com/formularios/formulario_sesion.php?error=1");

?>

seguridad.php

Código PHP:
<?php

session_start
();

/*
* Esto deberia ser una funcion ke se pueda acceder desde todas las paginas para chequear que el user
* verdaderamente se autentifico.
*/
 
if ( !$_SESSION['auth'] )
{
    
header("location:http://www.gobernacionsd.comyr.com/formularios/formulario_sesion.php?error=2");
    exit;
}
 
?>
buena suerte

Última edición por rolygc; 06/11/2012 a las 09:39