Regresar a la página www.ComoCrearTuWeb.com
Resultados 1 al 15 de 15

Tema: Login no pilla muy bien.-.

  1. #1
    Me va gustando esto... Habitante
    Fecha de Ingreso
    16 feb, 12
    Mensajes
    69
    Poder de Reputación
    4

    Login no pilla muy bien.-.

    Hola foreros... tengo un problema en mi sistema de login al cual me estoy enfrentando en estos momentos...



    Tengo un sistema de login que hice a base de un tuto... el usuario tiene que estar registrado para poder loguearse...

    Al loguearse todo va bien y ya solo me falta ponerle la editacion de los perfiles...


    Pero cuando cambio la URL en la barra de navegacion y pongo 'logueado2.html' entra sin siquiera arrojar errores de que no estas logueado... por decir entra sin un login... o cuando pongo en el URL 'logueado.php' (que es el archivo que tiene todas las instrucciones) simplemente dice bienvenido y me redirecciona a 'logueado2' (le puse un meta a 'logueado.php' para que dijera: "bienvenido usuario en unos momentos seras redirigido a tu perfil el cual podras editar' y luego despues de 5 segundos lo redirijiera a 'logueado2.html'(donde se supone que es su perfil)

    mi pregunta es, como hago para que esas pagina esten restringidas? para que cuando entre alguien sin loguearse (que haya cambiado la simple URL) le arroje un gran error diciendo que no esta logueado... he buscado toda la mañana y no encuentro respuestas les dejare los codigos de logueado y logueado2 GRACIAS


    AQUI ESTAN LOS CODIGOS:


    'logueado.php':

    <?php

    session_start();
    if ($_SESSION['logged'] == 'yes')
    {
    echo 'Bienvenido '.$_SESSION['USERNAME'].'!!!!, en unos segundos seras redirigido a tu perfil el cual podrás editar y en el cual podrás darte de alta';

    }

    else {

    echo 'Favor de iniciar sesión, en la pagina de inicio';
    }

    ?>

    <html>
    <head><title>:: BIENVENIDO!! ::
    </title><META HTTP-EQUIV="REFRESH" CONTENT="5;URL=http://www.pruebacourse.x10.mx/logueado2.html">
    </head>
    </html>



    'logueado2.html':


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Documento sin t&iacute;tulo</title>
    </head>

    <body>


    este es tu perfil
    <a href="logout.php?status=loggedout"> Log Out </a>
    </body>
    </html>

  2. #2
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    1,468
    Poder de Reputación
    13
    Hola:

    Simplemente porque debes poner en cada página que quieres restringir lo primero que pusiste en logueado.php:

    Código PHP:
    session_start();
    if( 
    $_SESSION['logged'] == 'yes' ) {
    echo 
    'Bienvenido ' $_SESSION['USERNAME'] . '!!!!, en unos segundos seras redirigido a tu perfil el cual podrás editar y en el cual podrás darte de alta';
    } else {
      echo 
    'Favor de iniciar sesión, en la pagina de inicio';

    Ahora, si te interesa, así lo hago yo (si no te importa, entonces no sigas leyendo XD):

    Código PHP:
    <?php
      session_start
    ();
      if( 
    $_SESSION['logueado'] != 'yes' ) :
        
    header'Location: index.php' ); // Suponiendo que index sea el formulario donde se inicia sesión (sin más contenido que eso)
      
    else :
    ?>
    <!DOCTYPE html>
    <html>
      <head>...
    </html>
    <?php endif; ?>
    [login.php]
    Código PHP:
    <?php
      session_start
    ();
      if( 
    $_SESSION['logueado'] == 'yes' ) :
        
    header'Location: logueado.php' );
      else :
    ?>
    <!DOCTYPE html>
    <html>
    <head>
    <title>Iniciar sesi&oacute;n</title>
    </head>
    <body>
    <!-- la implementación de login.php te la dejo a ti -->
    <form id="login-form" action="login.php"  method="post">
    <input type="text" name="user_name" />
    <input type="password" name="pass" />
    <input type="submit" />
    </form>
    </body>
    </html>
    <?php endif; ?>
    De esta forma, sólo si han iniciado sesión podrán ver el contenido, de lo contrario serán redirigidos a la página para iniciar sesión; por el contrario, si han iniciado sesión, serán redirigidos a la página de inicio para lo usuarios (podría ser su perfil).

    Saludos.

  3. #3
    Me va gustando esto... Habitante
    Fecha de Ingreso
    16 feb, 12
    Mensajes
    69
    Poder de Reputación
    4
    Hola skaparate... primeramente gracias por tu pronta respuesta que ya marque como positiva... me parece muy buena tu idea pero yo tengo un cuadrito en el index de la pagina para que inicien sesion... creo que tu lo que hiciste en 'login.php' es hacer una nueva redireccion a otro formulario no?? como hago para que sean redirigidos al index?? en ves de mostrarles un formulario si no han ingresado a su cuenta (si solo han cambiado el url)


    GRACIAS!!! MR TRUJIS

  4. #4
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    1,468
    Poder de Reputación
    13
    como hago para que sean redirigidos al index?? en ves de mostrarles un formulario si no han ingresado a su cuenta (si solo han cambiado el url)
    Eso lo harás escribiendo el siguiente código (específicamente con la función header();) al comienzo de cada archivo que requiera los usuarios logueados:

    Código PHP:
    <?php
      session_start
    ();
      
    // Si NO ha iniciado sesión se redirigirá a lo que sea que hay en el después de [B]Location:[/B] en la función header();
      // En el fondo, tienes que poner la URL del script para iniciar sesión.
      
    if( $_SESSION['logueado'] != 'yes' ) :
        
    header'Location: http://midominio.algo/iniciar_sesion.php' ); // Suponiendo que index sea el formulario donde se inicia sesión (sin más contenido que eso)
      
    else :
    ?>
    <!-- Aquí iría el contenido html si el usuario esta logueado -->
    <?php 
      
    endif; // Esta línea termina el if( $_SESSION['logueado'] != 'yes' ) :
    ?>
    Creo que eso soluciona tu duda, sino avísame :P.

    Saludos.

  5. #5
    Me va gustando esto... Habitante
    Fecha de Ingreso
    16 feb, 12
    Mensajes
    69
    Poder de Reputación
    4
    Hola skaparate, he intentado de la forma que me dices pero sigue fallando, al cambiar la barra de navegacion por 'logueado2.php' sigue entrando sin autorizacion, sigue mostrando el 'perfil' sin un previo login.... que puede ser lo que estoy haciendo mal??? como me desespera esto :S

    dejare otra vez los codigos haber si encuentras el error... no use tu forma pero hice lo que me dijiste de verificar que existiera la sesion en cada pagina y aun asi sigue entrando aunque yo cambie el link:


    'login.php':

    <?php
    session_start();
    require_once('funciones.php');

    conectar('localhost', 'mrtruji_login2', 'pass', 'mrtruji_sistemaregistro');



    //Recibir

    $USERNAME = strip_tags($_POST['USERNAME']);
    $PASSWORD = strip_tags($_POST['PASSWORD']);

    $query = @mysql_query('SELECT * FROM logueados WHERE USERNAME="'.mysql_real_escape_string($USERNAME).'" AND PASSWORD="'.mysql_real_escape_string($PASSWORD).'" ');
    if($existe = @mysql_fetch_object($query))
    {
    $_SESSION['logged'] = 'yes';
    $_SESSION['USERNAME'] = $USERNAME;
    echo '<script>window.location="logueado.php"</script>';
    }else{
    header("location: useropassincorrectos.html");

    }


    ?>


    'logueado.php':

    <?
    session_start();
    if ($_SESSION['logged'] == 'yes')
    {
    echo 'Bienvenido '.$_SESSION['USERNAME'].'!!!!, en unos segundos seras redirigido a tu perfil el cual podrás editar y en el cual podrás darte de alta
    }

    else {

    echo 'Favor de iniciar sesión, en la pagina de inicio';
    }

    ?>

    <html>
    <head><title>:: BIENVENIDO!! ::
    </title><META HTTP-EQUIV="REFRESH" CONTENT="5;URL=http://www.pruebacourse.x10.mx/perfil.php">
    </head>
    </html>



    'logueado2.php'(lo cambie por 'perfil.php'):



    <?
    session_start();
    if ($_SESSION['logged'] == 'yes')
    {
    echo 'Bienvenido '.$_SESSION['USERNAME'].'!!!!, este es tu perfil';
    }

    else {

    echo 'Favor de iniciar sesión, en la pagina de inicio';
    }

    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Documento sin t&iacute;tulo</title>
    </head>

    <body>


    <a href="logout.php?status=loggedout"> Log Out </a>
    </body>
    </html>

  6. #6
    Esto empieza a ser un vicio... Habitante Avatar de codomodragon
    Fecha de Ingreso
    11 nov, 09
    Ubicación
    Venezuela
    Mensajes
    1,232
    Poder de Reputación
    13
    oie men si tanto rollo te general las session por que no usas cookies, son mucho mas sencillas y para mi gusto funcionales que las session para estos casos.

    si no sabes como ponerla te puedo prestar los códigos del sistema de usuarios que estoy generando para cctw (que conste, es para uso de los usuarios del foro no para la pagina ensi de cctw XD)
    esta casi terminado y para lo que buscas funcionaria perfectamente (solo falta el visual del modulo de moderación de usuarios xD)
    OMG WTF BBQ
    Disculpen cualquier error o metidota de pata, la universidad me tiene loco y candado.

    www.mangasve.com.ve el lugar venezolano del manga

    http://www.rauch.cl/cctw.jpg

  7. #7
    Me va gustando esto... Habitante
    Fecha de Ingreso
    16 feb, 12
    Mensajes
    69
    Poder de Reputación
    4
    Hola CODOMODRAGON, gracias por preocuparte y por la respuesta... me encantaría que hicieras eso por mi, es mejor trabajar con los cookies? no es mas pesado para el hosting y la pagina en sí??... es un sistema de login? con perfiles o de que se trata amigo??
    GRACIAS... SI QUIERES TE PUEDO PASAR MI MSN, PARA PONERNOS DE ACUERDO...

    MRTRUJIS

  8. #8
    Esto empieza a ser un vicio... Habitante Avatar de codomodragon
    Fecha de Ingreso
    11 nov, 09
    Ubicación
    Venezuela
    Mensajes
    1,232
    Poder de Reputación
    13
    bueno fíjate el sistema solo consiste en un par de cookies y otros cuantos if es extremadamente sencillo y ligero para al cervidor (asta donde se XD)
    te paso los códigos por mensajería privada del foro para evitar liberar el código ya que todavía esta en face beta y no lo quiero liberar asta que este 100% completado
    OMG WTF BBQ
    Disculpen cualquier error o metidota de pata, la universidad me tiene loco y candado.

    www.mangasve.com.ve el lugar venezolano del manga

    http://www.rauch.cl/cctw.jpg

  9. #9
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    1,468
    Poder de Reputación
    13
    Aunque vayas a utilizar COOKIES te responderé: es porque no estas envolviendo todo el código dentro del if... else:

    Código:
    <?php
      session_start();
      if ($_SESSION['logged'] != 'yes') { // <<<<-------- Fíjate aquí; si NO se ha iniciado sesión se muestra el mensaje
        echo 'Favor de iniciar sesión, en la pagina de inicio';
      } else { // De lo contrario se muestra el contenido de la página; el mensaje de bienvenida debería ir dentro del <body> no antes de la página en sí:
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Documento sin t&iacute;tulo</title>
    </head>
    
    <body>
    <?php echo '<p>Bienvenido ' . $_SESSION['USERNAME'] . '!!!!, este es tu perfil</p>'; ?>
    <a href="logout.php?status=loggedout"> Log Out </a>
    </body>
    </html>
    <?php
      } // <----- aquí termina el else
     ?>
    De esta manera estas condicionando lo que se muestra. Antes lo que hacías era:

    <?
    session_start();
    if ($_SESSION['logged'] == 'yes') {
    echo 'Bienvenido '.$_SESSION['USERNAME'].'!!!!, en unos segundos seras redirigido a tu perfil el cual podrás editar y en el cual podrás darte de alta
    } else {
    echo 'Favor de iniciar sesión, en la pagina de inicio';
    }
    ?>

    * Preguntar Inició sesión (if( $_SESSION['logged'] == 'yes' )):
    ** Si había iniciado sesión (o sea que $_SESSION['logged'] tiene un valor 'yes') mostrabas el mensaje de bienvenida y además el contenido -> correcto.
    ** De lo contrario mostrabas un mensaje de error y además mostrabas el contenido de la página (} else { echo "mensaje"; }) -> aquí está el error.

    Saludos y espero que haya quedado más claro :D.

    P.D.: cuidado con las COOKIES, son más inseguras que las sesiones :P.

  10. #10
    Me va gustando esto... Habitante
    Fecha de Ingreso
    16 feb, 12
    Mensajes
    69
    Poder de Reputación
    4
    Hola skaparate, gracias por tu preocupacion en mi sistema de login... desafortunadamente aun y cambiando los codigos, sigue insegura la pagina, cambiando el URL puedes entrar al 'perfil'... trataré con las cookies haber si me resulta positivo, te quiero dar las gracias por tu preocupacion. Cualquier duda te preguntaré...


    GRACIAS!! mrtrujis

  11. #11
    Esto empieza a ser un vicio... Habitante Avatar de codomodragon
    Fecha de Ingreso
    11 nov, 09
    Ubicación
    Venezuela
    Mensajes
    1,232
    Poder de Reputación
    13
    recuerda que no solo es usar cookies lo que te propongo, si no usar un sistema total mente nuevo, para gestionar usuarios adaptable a cualquier pagina xD
    OMG WTF BBQ
    Disculpen cualquier error o metidota de pata, la universidad me tiene loco y candado.

    www.mangasve.com.ve el lugar venezolano del manga

    http://www.rauch.cl/cctw.jpg

  12. #12
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    1,468
    Poder de Reputación
    13
    Entonces debe ser porque no logras borrar las sesiones correctamente (el problema al cerrar sesión del otro tema :P), pues las variables siguen existiendo.

    Saludos y suerte con las "galletas".

  13. #13
    Esto empieza a ser un vicio... Habitante Avatar de codomodragon
    Fecha de Ingreso
    11 nov, 09
    Ubicación
    Venezuela
    Mensajes
    1,232
    Poder de Reputación
    13
    Son de chispas de chocolate si quieres también te convido una :D

    PD: aprovecho para comentar y demostrar que esto no es spam para acotar que si tu crear una cookie en el directorio www.(tudominio).com/usuarios/ debes borrarla en el mismo directorio, ósea no puedes borrarlas en www.(tudominio).com/usuarios/borrar/, solo donde las creaste, esto también es = asta donde se con las sesiones
    OMG WTF BBQ
    Disculpen cualquier error o metidota de pata, la universidad me tiene loco y candado.

    www.mangasve.com.ve el lugar venezolano del manga

    http://www.rauch.cl/cctw.jpg

  14. #14
    Esto empieza a ser un vicio... Habitante
    Fecha de Ingreso
    02 may, 11
    Ubicación
    Santiago, Chile
    Mensajes
    1,468
    Poder de Reputación
    13
    Sólo que las sesiones expiran después de un tiempo (se crean en un directorio temporal), en cambio las galletas persisten y por ello hay que borrarlas. Si la oferta va en serio, sería interesante ver el código que estas creando :D codomodragon.

    Saludos.

  15. #15
    Esto empieza a ser un vicio... Habitante Avatar de codomodragon
    Fecha de Ingreso
    11 nov, 09
    Ubicación
    Venezuela
    Mensajes
    1,232
    Poder de Reputación
    13
    las cookie también expiran si las programas para ser inútiles después de un tiempo :D
    pero en fin la oferta si va en serio, y ya le mande los códigos de la versión beta, cuando los termine los publicare aquí en el foro, casi todos los módulos están listos y solo falta en si el visual xD
    OMG WTF BBQ
    Disculpen cualquier error o metidota de pata, la universidad me tiene loco y candado.

    www.mangasve.com.ve el lugar venezolano del manga

    http://www.rauch.cl/cctw.jpg

Temas Similares

  1. La funcion empty no me pilla...
    Por mrtrujis en el foro Foro General
    Respuestas: 2
    Último Mensaje: 13/04/2012, 00:17
  2. LOGIN >_<
    Por ((*natsi*)) en el foro Formularios
    Respuestas: 1
    Último Mensaje: 03/12/2007, 13:15
  3. Login
    Por lopeote7 en el foro Formularios
    Respuestas: 4
    Último Mensaje: 06/10/2007, 23:54

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •