Foros del Web » Programando para Internet » PHP »

tengo algun problema con el sistema de logueo :/

Estas en el tema de tengo algun problema con el sistema de logueo :/ en el foro de PHP en Foros del Web. buenas, tengo un problema con el sistema de logueo q he implementado, bueno, e implementado varios pero al momento de validar parece como si no ...
  #1 (permalink)  
Antiguo 05/11/2012, 14:25
 
Fecha de Ingreso: septiembre-2012
Ubicación: santo domingo
Mensajes: 53
Antigüedad: 11 años, 6 meses
Puntos: 0
tengo algun problema con el sistema de logueo :/

buenas, tengo un problema con el sistema de logueo q he implementado, bueno, e implementado varios pero al momento de validar parece como si no encontrara los datos en la bd y para probar eso cree una tabla de busqueda, y si encuentra los datos, solo pasa cuando intento iniciar la sesion, aqui les dejo el codigo de los parametros para iniciar la sesion:


sesion.php:

Código:
<?php 
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");

session_start();



$usuario = stripslashes($_POST['usuario']);
$pwd = stripslashes($_POST['pwd']);
$usuario = mysql_real_escape_string($_POST['usuario']);
$pwd = mysql_real_escape_string($_POST['pwd']);


$resultado = mysql_query("SELECT * FROM cms_session WHERE usuario='$usuario' AND pwd='$pwd'", $conexion);
$fila = mysql_num_rows($resultado) or die(mysql_error());

if($fila==1)
{
	$_SESSION['id']="1";
	$_SESSION['usuario']=$usuario;
	$_SESSION['contraseña']=$pwd;
	header("location:http://www.gobernacionsd.comyr.com/formularios/formulario_insercion.php");
}

else
{
	header("location:http://www.gobernacionsd.comyr.com/formularios/formulario_sesion.php?error=err");
}
 

?>
alguna idea de q pasa? :/
  #2 (permalink)  
Antiguo 05/11/2012, 14:49
Avatar de punk-devil  
Fecha de Ingreso: febrero-2008
Ubicación: Tuxtla Gutiérrez, Chiapas, Mexico
Mensajes: 19
Antigüedad: 16 años, 2 meses
Puntos: 3
Respuesta: tengo algun problema con el sistema de logueo :/

Algunas recomendaciones de seguridad con tu código (y tal vez el problema):

1.- A la variable $usuario y $pwd primero les asignas stripslashes($_POST["variable"]) y luego vuelves a asignarles mysql_real_escape_string($_POST['variable']) por lo cual estás sobreescribiendo lo que ya hizo stripslashes, ademas de que con mysql_real_escape_string ya no es necesario que hagas el stripslashes.

2.- Por lo que se ve, estás obteniendo la contraseña sin encriptar, y por lo visto tambien la estás guardando en la base de datos del mismo modo (potencial fallo de seguridad), por lo que recomendaria usar md5 (u algun método de encriptación mas seguro) y también compararla igual.

3.- Otro fallo importante de seguridad es el guardar el ID, nombre de usuario y contraseña en las variables de sesión, ya que de ese modo algun atacante podría revelar esos datos. Lo recomendable sería usar un TOKEN y una cookie para definir si el usuario se encuentra logueado.
  #3 (permalink)  
Antiguo 05/11/2012, 15:28
 
Fecha de Ingreso: septiembre-2012
Ubicación: santo domingo
Mensajes: 53
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: tengo algun problema con el sistema de logueo :/

tenia el md5, es solo q cuando usaba el script de busqueda con md5 no encontraba nada y cuando le quite el md5 ya lo encontraba, en cuanto a lo demas soy novato en esto y no habia escuchado de los tokens xD q son?
  #4 (permalink)  
Antiguo 05/11/2012, 15:36
 
Fecha de Ingreso: septiembre-2012
Ubicación: santo domingo
Mensajes: 53
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: tengo algun problema con el sistema de logueo :/

Cita:
Iniciado por juanfh246 Ver Mensaje
tenia el md5, es solo q cuando usaba el script de busqueda con md5 no encontraba nada y cuando le quite el md5 ya lo encontraba, en cuanto a lo demas soy novato en esto y no habia escuchado de los tokens xD q son?
sobre las cookies, tengo un sistema de logeo con cookies y pasa lo mismo, aki te dejo el codigo:


sesion_cookies.php

Código:
<?php 
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");

$usuario = stripslashes($_POST['usuario']);
$pwd = stripslashes($_POST['pwd']);
$pwd_protegida = stripslashes(md5($pwd));
$usuario = mysql_real_escape_string($_POST['usuario']);
$pwd = mysql_real_escape_string($_POST['pwd']);
$pwd_protegida = mysql_real_escape_string(md5($pwd));

$query = "SELECT * FROM cms_session WHERE usuario='$usuario' AND pwd='$pwd_protegido'";
$resultado = mysql_query($query, $conexion);


if(mysql_num_rows($resultado) > 0)
{
	$id = mysql_result($resultado, 0);
	setcookie("gobernacionsd", "$id", time() + 3600);
	header("location:http://www.gobernacionsd.comyr.com/formularios/formulario_insercion.php");
}
?>
  #5 (permalink)  
Antiguo 05/11/2012, 16:18
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 2 meses
Puntos: 53
Respuesta: tengo algun problema con el sistema de logueo :/

intenta cambiando esto

Código PHP:
Ver original
  1. $resultado = mysql_query("SELECT * FROM cms_session WHERE usuario='$usuario' AND pwd='$pwd'", $conexion);
por esto
Código PHP:
Ver original
  1. $sql="SELECT * FROM cms_session WHERE usuario='$usuario' AND pwd='$pwd'";
  2. $resultado = mysql_query($sql, $conexion);
  3. print $sql;

observa como esta realizando la consulta , copia lo que te imprima y ejecutalo
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #6 (permalink)  
Antiguo 05/11/2012, 16:30
 
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 :/

Coloca tambien el session_start() al inicio.
  #7 (permalink)  
Antiguo 05/11/2012, 17:14
 
Fecha de Ingreso: septiembre-2012
Ubicación: santo domingo
Mensajes: 53
Antigüedad: 11 años, 6 meses
Puntos: 0
Pregunta Respuesta: tengo algun problema con el sistema de logueo :/

Cita:
Iniciado por PIRRUMAN Ver Mensaje
intenta cambiando esto

Código PHP:
Ver original
  1. $resultado = mysql_query("SELECT * FROM cms_session WHERE usuario='$usuario' AND pwd='$pwd'", $conexion);
por esto
Código PHP:
Ver original
  1. $sql="SELECT * FROM cms_session WHERE usuario='$usuario' AND pwd='$pwd'";
  2. $resultado = mysql_query($sql, $conexion);
  3. print $sql;

observa como esta realizando la consulta , copia lo que te imprima y ejecutalo
puse un user y un pass a ver si salia y funciono, me imprimio esto:

SELECT * FROM cms_session WHERE usuario='juanf' AND pwd='juan'


... luego le cambie en print q en vez de imprimir el mysql_query me imprima un mysql_num_rows y tiene como resultado 1 (con los datos correctos), noc porq no inicia la sesion y me da el error que deberia darme si el resultado es 0 :s ahora estoy mas confundido lol

Última edición por juanfh246; 05/11/2012 a las 17:22
  #8 (permalink)  
Antiguo 05/11/2012, 17:36
 
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 :/

Intenta esta

Código PHP:

if(mysql_num_rows($resultado) > 0)

// cambialo por

if(mysql_num_rows($query) > 0
espero te ayude, buena suerte
  #9 (permalink)  
Antiguo 05/11/2012, 17:37
 
Fecha de Ingreso: septiembre-2012
Ubicación: santo domingo
Mensajes: 53
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: tengo algun problema con el sistema de logueo :/

ahora me encuentro con otro problema, no me da error al loguearme pero le puse q me mande a un formulario de insercion de noticias y en ese formulario tengo una peque;a seguridad q si $_SESSION['id_user'] !=="1" me devuelva a la pagina de logueo, pero en el archivo de sesion.php le indique que si el num_row es igual a 1, el $_SESSION['id_user']=="1", entonces porq no lo manda con ese valor al formulario de insercion? :/
  #10 (permalink)  
Antiguo 05/11/2012, 17:39
 
Fecha de Ingreso: septiembre-2012
Ubicación: santo domingo
Mensajes: 53
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: tengo algun problema con el sistema de logueo :/

Cita:
Iniciado por rolygc Ver Mensaje
Intenta esta

Código PHP:

if(mysql_num_rows($resultado) > 0)

// cambialo por

if(mysql_num_rows($query) > 0
espero te ayude, buena suerte
:) grax, sin cambiarselo ya el mysql_num rows no da problemas ahora es con una variable lol en el msj anterior a este explique. solo q cuando puse ese mensaje no habia visto el tuyo aun xD
  #11 (permalink)  
Antiguo 05/11/2012, 17:51
 
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 :/

OK creo ke debes empezar organizadamente para seguir el hilo del error.

crea un script con logout.php

Código PHP:

// destruir la session
session_destroy();

// redireccionar a donde tengas tu formulario de inicio
header('location: a_tu_formulario.php' ); 
Código PHP:

<form method="post" action="a_tu_script_de_logueo.php">
     <input type="hidden" name="inicio" value="1" />

     <label for="usuario">Usuario: </label><input type="text" id="usuario" name="usuario" />
     <label for="pwd">Password: </label><input type="password" id="pwd" name="pwd" />

     <input type="submit" value="Login" />
</form>

<?php

if ( isset($_POST['inicio']) && $_POST['inicio'] == 1)
{
       
$usuario mysql_real_escape_string($_POST['usuario']);
       
$pwd      mysql_real_escape_string($_POST['pwd']);

      
// chequear usuario
      
$query "SELECT id FROM cms_session WHERE usuario = '$usuario' AND pwd = MD5('$pwd')";

      if ( 
mysql_num_rows($query) > )
      {
            
header('location: ACCESO_PERMITIDFO.php' );
            exit;   
       }

       echo 
"<br /> <hr /> <br /> ACCESO DENEGADO CHEUQEUA TUS DATOS";

}



?>
buena suerte
  #12 (permalink)  
Antiguo 05/11/2012, 19:17
 
Fecha de Ingreso: septiembre-2012
Ubicación: santo domingo
Mensajes: 53
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: tengo algun problema con el sistema de logueo :/

tengo el salir.php y un seguridad.php q esta incluido en el formulario de insercion q es a donde te manda sesion.php cuando te logueas.

cuando ejecuta el seguridad.php me devuelve al formulario de inicio de sesion, porq al parecer la variable autentificacion no es igual a uno lo q es extra;o porq en el sesion.php indique q si la fila de mysql_num_rows coincidia entonces la variable $_SESSION['autentificacion']="1" sera igual a uno pero cuando me manda al seguridad.php me devuelve como si la variable o no existiera o no tiene ese valor :S


salir.php:
Código PHP:
Ver original
  1. [CODE]<?
  2.  
  3.  
  4. header("location:http://www.gobernacionsd.comyr.com/formularios/formulario_sesion.php");
  5.  
  6. ?>[/CODE]

seguridad.php:
Código PHP:
Ver original
  1. [CODE]<?php
  2.  
  3. if($_SESSION['autentificacion']!="1"){
  4. header("location:http://www.gobernacionsd.comyr.com/pruebas/formularios/formulario_sesion.php");
  5. exit();
  6. }
  7.  
  8. ?>[/CODE]
  #13 (permalink)  
Antiguo 05/11/2012, 19:27
 
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 :/

en tu script de seguridad.php pon

Código PHP:

var_dump
($_SESSION); 
para ver ke te esta llegando y ke tpo estas recibiendo, porke toy viendo ke estas chequeando como si fuera un string y si las estas asignando como integer y depsues chequeas con exactitud no te va a devolver ke son iguales.

= asignacion
== chequear igualdad
=== chequear igualdad y tipo de variable
  #14 (permalink)  
Antiguo 05/11/2012, 20:55
 
Fecha de Ingreso: septiembre-2012
Ubicación: santo domingo
Mensajes: 53
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: tengo algun problema con el sistema de logueo :/

Cita:
Iniciado por rolygc Ver Mensaje
en tu script de seguridad.php pon

Código PHP:

var_dump
($_SESSION); 
para ver ke te esta llegando y ke tpo estas recibiendo, porke toy viendo ke estas chequeando como si fuera un string y si las estas asignando como integer y depsues chequeas con exactitud no te va a devolver ke son iguales.

= asignacion
== chequear igualdad
=== chequear igualdad y tipo de variable
hice lo q me dijiste y arriba salio:
array(5) { ["id_user"]=> string(1) "1" ["user"]=> string(5) "juanf" ["autentificado"]=> string(1) "1" ["autentificacion"]=> string(1) "1" ["usuario"]=> string(5) "juanf" }....

esta vez en vez de poner $_SESSION['autentificacion']!="1" lo puse como $_SESSION['autentificacion']!=="1"

q me dice el resultado de var_dump??
  #15 (permalink)  
Antiguo 05/11/2012, 21:22
 
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 :/

Ok esto es lo que esta llegando en las variables de SESSION a tu script de seguridad.php si te fijas es string el tipo de variable autentificado porque le asignas el valor como string '1' y también estas asignando otro valor de autentificacion para que ?? Igual user y usuario. De todas formas están llegando los datos bien a seguridad.php pero tienes algún error en otra parte de tu script.

Puedes postear el formulario y el código de seguridad.php donde recoges el valor del formulario y lo procesas completo para ver más detalles. También intenta chequear con esto a ver sí el error está en la variable de SESSION autentificado

Cambia if ( $_SESSION['autrntificado'] != '1')

if ( empty($_SESSION['usuario']){
echo 'Acceso denegado.';
exit;
}
else{
header('location: permitido.php');
}
  #16 (permalink)  
Antiguo 05/11/2012, 22:22
 
Fecha de Ingreso: septiembre-2012
Ubicación: santo domingo
Mensajes: 53
Antigüedad: 11 años, 6 meses
Puntos: 0
Pregunta Respuesta: tengo algun problema con el sistema de logueo :/

hice lo q me dijiste, cambie isset por empty y me devolvio a la pag de logueo igual, parece q las variables no se estan creando correctamente, aqui te dejo el archivo q me guarda el proceso ejecutado al loguearme, cambie el nombre de autentificado por id_user y le di un valor int en vez de string xD(por si piensas q estaba asi por error xD)

aki te dejo los codigos:


control.php:
Código PHP:
Ver original
  1. <?
  2. include("conexionverif.php");
  3.  
  4. $conexion = mysql_connect($host,$user,$pw) or die("No se pudo realizar la conexion con el servidor.");
  5.     mysql_select_db($db,$conexion) or die("No se puede seleccionar BD");
  6.  
  7.  
  8. $usuario=mysql_real_escape_string($_POST['usuario']);
  9. $pwd=mysql_real_escape_string($_POST['pwd']);
  10.  
  11.  
  12. $pass=md5($password);
  13.  
  14. $sql="SELECT * FROM cms_session WHERE usuario='$usuario' AND pwd=md5('$pwd')";
  15. $resultado = mysql_query($sql, $conexion);
  16. $filas = mysql_num_rows($resultado);
  17.  
  18. if($filas==1){
  19. $_SESSION['id_user']=1;
  20. $_SESSION['usuario']=$usuario;
  21. header("Location:http://gobernacionsd.comyr.com/formularios/formulario_insercion.php");
  22. }
  23. else{
  24. header("Location:http://www.gobernacionsd.comyr.com/formularios/formulario_sesion.php?error=err");
  25. }
  26. ?>



formulario de inicio de sesion
Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <link rel="stylesheet" type="text/css" href="../gob_styles/formulario_sesion.css" />
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>GobernaciónSD | Inicio de Sesion</title>
  6. </head>
  7. <p><hr></p>
  8. <p  class="font" style="font-size:300%;text-align:center;color:#333;"><b>Inicia tu Sesion</b><br><hr></p>
  9. <div class="sesion_div">
  10.  
  11. <form action="../php/control.php" method="post" name="form">
  12.  
  13. <ul class="ulclass">
  14.     <li class="list"><b style="display:block;width:120px;float:left;">Usuario:</b><input type="text" name="usuario" size="15"/></li>
  15. </ul>
  16. <ul class="ulclass">
  17.     <li class="list"><b style="display:block;width:120px;float:left;">Contraseña:</b><input type="password" name="pwd" size="15"/></li>
  18. </ul>
  19. <ul class="ulclass">
  20.                  <li class="list"><input type="submit"  name="submit" value="Entrar" size="15"/></li>
  21. </ul>
  22. </form>
  23. <p style="color:red;">
  24. <?php
  25. if(isset($_GET['error'])){
  26. echo "usuario o contraseña incorrecto, intentelo de nuevo";
  27. }
  28. if(isset($_GET['error2'])){
  29. echo "La sesion no ha iniciado, Tienes q iniciar sesion.";
  30. }
  31. ?>
  32. </p>
  33. </div>
  34.  
  35. </body>
  36. </html>

seguridad.php
Código PHP:
Ver original
  1. <?php
  2.  
  3. if(empty($_SESSION['usuario'])){
  4. header("location:http://www.gobernacionsd.comyr.com/formularios/formulario_sesion.php?error2=1");
  5. exit();
  6. }
  7.  
  8. ?>

ves algo mal? :/
  #17 (permalink)  
Antiguo 06/11/2012, 09:31
 
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
  #18 (permalink)  
Antiguo 06/11/2012, 13:42
 
Fecha de Ingreso: septiembre-2012
Ubicación: santo domingo
Mensajes: 53
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: tengo algun problema con el sistema de logueo :/

gracias man :) ... pero el problema aun persiste parece ser q la variable $_SESSION['auth'] no se crea o llega sin valor porq me devuelve al inicio de sesion este script me tiene de cabeza hahah.. no entiendo q pasa lol.

cuando quito el seguridad la sesion inicia e incluso tengo una parte donde me dice "bienvenido + el usuario" y me aparece bienvenido y el usuario con el cual me loguee solo q cuando entra automaticamente no sale el usuario pero si cierro y abro la pag de insercion me aparece el usuario, es una loquera haha xD
  #19 (permalink)  
Antiguo 06/11/2012, 13:50
 
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 :/

cambia el

function getLogin($user, $pwd, $conn)
{
$query = mysql_query("SELECT * FROM cms_session WHERE usuario = '$user' AND pwd = MD5('$pwd)", $conn);
return mysql_num_rows($query);
}

se me fue el usuario = '$usuario' y debe ser $user

mira a ver ahora y depsues escribe debajo de

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

print_r($login);

a ver ke te devuelve
  #20 (permalink)  
Antiguo 06/11/2012, 20:13
 
Fecha de Ingreso: septiembre-2012
Ubicación: santo domingo
Mensajes: 53
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: tengo algun problema con el sistema de logueo :/

man, el mysql_num_rows me da el siguiente error:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/a9271669/public_html/php/control2.php on line 48

es el q esta dentro de la funcion getLogin... esa parte contiene lo siguiente:


Código PHP:
Ver original
  1. function getLogin($user, $pwd, $conn)
  2. {
  3.     $query = mysql_query("SELECT * FROM cms_session WHERE usuario = '$user' AND pwd = MD5('$pwd)", $conn);
  4.     return mysql_num_rows($query);
  5. }
  #21 (permalink)  
Antiguo 06/11/2012, 22:21
 
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 :/

Ese error significa ke hubo algo mal en el query de SQL revisa ke la tabla tuya se llame cms_session y ke las columnas usuario y pwd existan
  #22 (permalink)  
Antiguo 08/11/2012, 07:30
 
Fecha de Ingreso: septiembre-2012
Ubicación: santo domingo
Mensajes: 53
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: tengo algun problema con el sistema de logueo :/

la sintaxis esta correcta, la tabla se llama cms_session y las columnas son id, usuario y pwd x_x no deberia dar error

Etiquetas: formulario, logueo, mysql, sistema, sql, tabla, alguna, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:19.