Foros del Web » Programando para Internet » PHP »

Error al redireccionar luego de login

Estas en el tema de Error al redireccionar luego de login en el foro de PHP en Foros del Web. Hola como estan? tengo la siguiente situacion... Un formulario paginas a las que puede acceder cualquier usuario y otras que solo las ven los usuarios ...
  #1 (permalink)  
Antiguo 13/05/2011, 08:41
 
Fecha de Ingreso: agosto-2009
Mensajes: 72
Antigüedad: 14 años, 8 meses
Puntos: 2
Error al redireccionar luego de login

Hola como estan? tengo la siguiente situacion...

Un formulario paginas a las que puede acceder cualquier usuario y otras que solo las ven los usuarios registrados....

Si el usuario antes que nada en la web ingresa con sus datos y se loguea, no hay problema luego para la "navegabilidad" en el sitio, pero si no lo hace y quiere ingresar a una seccion "privada, no publica" le pide login... hasta ahi todo bien y logico... el tema que lo que yo quiero lograr es que cuando le pida el ingreso al querer ingresar a una seccion prohibida al publico, que en el caso de ser exitoso el login lo lleve a la pagina a la que queria acceder... no que lo lleve al menu principal o panel de control, no se si fui claro...

El codigo que tengo es este:

Código PHP:

<?
session_start
(); 
if (
session_is_registered("miembros")) {
    
header("Location: menu.php");
    exit;
}

$db = New dbconn();
$db->conect();

$ingreso 0;
$erro_msj '';
if (isset(
$_POST["action"])) {

    
// Evita formularios de otro lado que no sean desde el servidor
    
if (strstr($_SERVER['HTTP_REFERER'],$_SERVER['SERVER_NAME'])) {

        
$user mysql_real_escape_string(trim($_POST["user"]));
        
$pass trim($_POST["pass"]);

        
// Encripto la contraseña.
        
$pass crypt($pass,"colegio");

        
$sql "SELECT blablabla WHERE blablabla";
                

        
$db->query($sql);

        if (
$db->num_rows) {
            
session_start();
            
session_register("miembros");
            
$_SESSION["miembros"] = $db->next();
            
$ingreso 1;
        }

        
$erro_msj '<b>Usuario o Contraseña incorrecta.</b> Vuelva a intentarlo.';
    }
}
?>
Código PHP:

<? if ($ingreso) { ?>

        <? if (!empty($_POST["recordar"])) { ?>

            <script>
            setCookie('usuario','<?=$user;?>',14);
            </script>
                
        <? } else { ?>

            <script>
            setCookie('usuario','');
            </script>

        <? ?>

    <table cellpadding=0 cellspacing=0 border=0>
    <tr><td bgcolor='#D1D1D1' style='padding:1px;'>
        <table cellpadding=0 cellspacing=0 border=0 width=100%>
        <tr><td bgcolor='#EDEDED' style='padding:10px;padding-left:35px;padding-right:35px;'>
            <table cellpadding=0 cellspacing=0 border=0>
            <tr><td class='arial t12 c7 h140 tbold' align=center>Ingresando a zona de usuarios registrados</td></tr>
            <tr><td height=25></td></tr>
            <tr><td align=center><img src='/images/img_preload.gif'></td></tr>
            <tr><td height=25></td></tr>

            <tr><td class='arial t11 c7' align=center>Si esta página permanece durante más de 5 segundos, pulse <a href='/miembros/salir.php' class='arial t11 c8'>Aquí</a> para recargarla.</td></tr>
            <tr><td height=15></td></tr>
            <tr><td align=center>
                <table cellpadding=0 cellspacing=0 border=0>
                <tr>
                <td><img src='/images/icon/icon_candado.gif'></td>
                <td width=10></td>
                <td class='arial t11 c8'>Acceso a Zona Segura</td>
                </tr>
                </table>

            </td></tr>
            <tr><td height=15></td></tr>
            </table>
        </td></tr>
        </table>
    </td></tr>
    </table>

    <script>

    setTimeout ("document.location.href='menu.php';", 1500); 
    </script>

    <? } else { ?>




    <table cellpadding=0 cellspacing=0 border=0 width='698'>
    <tr>
    <td width=468 valign=top>


        <div class='cuerpo-box'>
        <div valign=top class='cuerpo-box-top'><img src='/images/txt/txt_miembros_registrados.gif' title='Miembros - Usuarios registrados'></div>
        <div class='cuerpo-box-contenido'>

            <table cellpadding=0 cellspacing=0 border=0 width=440>

            <? if ($erro_msj != '') { ?>

                <tr><td class='fondo-accesos-3 arial t11 c10 h140' valign=top><?=$erro_msj;?></td></tr>
                <tr><td height="10"></td></tr>
            <? ?>


            <tr><td class='fondo-accesos-2 arial t11 c8 h140' valign=top>Acceda a todos los servicios  ingresando su nombre de usuario y su contraseña</td></tr>
            <tr><td height="10"></td></tr>

            <tr><td height="20"></td></tr>
            <tr><td valign=top style='padding-top:4px;' align=center>
                <form method="POST" name=login action="/miembros/index.php">
                <input type="hidden" name="action" value="login">
                <input type="hidden" name="url" value="">
                <table cellpadding=0 cellspacing=0 border=0>
                <tr>
                <td width=59 align=right class='arial t11 c8'>Usuario:</td>
                <td width=5></td>
                <td ><input type='text' name='user' class='input-box' maxlength='32' style='width:200px;height:18px;' title='Ingrese nombre de usuario' require=1 rmensaje='Ingrese su nombre de usuario'></td>
                </tr>

                <tr><td colspan=3 height=14></td></tr>

                <tr>
                <td align=right class='arial t11 c8'>Contraseña:</td>
                <td width=5></td>
                <td><input type='password' name='pass' class='input-box' maxlength='32' style='width:200px;height:18px;' title='Ingrese contraseña' require=1 rmensaje='Ingrese la contraseña'></td>
                </tr>

                <tr><td colspan=3 height=11></td></tr>

                <tr><td colspan=3 align=right>
                    <table cellpadding=0 cellspacing=0 border=0>
                    <tr>
                    <td><label for='recordar' class='arial t11 c8' title='Activa recordar usuario en esta PC'>* Recordar <b>mi usuario</b> en esta PC</label></td>
                    <td width=1></td>
                    <td><input type='checkbox' name='recordar' id='recordar' style='marding:0;padding:0;' value=1></td>
                    </tr>
                    </table>
                </td></tr>
                <tr><td colspan=3 height=10></td></tr>

                <tr><td colspan=2 align=right>
                    <div align="center"></div>
                    <div align="center"></div>
                    </td>
                  <td align=right><div align="center"><a href="javascript:validarformulario(document.login);"><img src='/images/bt/bt-ingresar.gif'></a></div></td>
                </tr>
                <tr><td colspan=3 height=40></td></tr>

                </table>
                </form>
            </td></tr>

            <tr><td class='fondo-accesos-2 arial t11 c8'>Registrese <a href='registro.php' class='arial t11 c8 tbold'>Aquí</a> si es la primera ver que ingresa a este servicio y todavía no posee una contraseña de acceso.</td></tr>
            <tr><td height=20></td></tr>


            <tr><td class='fondo-accesos-2 arial t11 c8'>¿Olvido su contraseña? Ingrese <a href='olvido_clave.php' class='arial t11 c8 tbold'>Aquí</a> para recuperarla.</td></tr>


            <tr><td height=77></td>
            </tr>
            </table>


                <script>
                var usuario = getCookie('usuario');
                if (usuario != null) {
                    document.login.user.value = usuario;
                }
                </script>
        </div>
        </div>


    </td>
    <td width=10></td>
    <td width=220 valign=top>


        <div class='cuerpo-box'>
        <div valign=top class='cuerpo-box-top'><img src='/images/txt/txt_ayuda.gif' title='Ayuda'></div>
        <div class='cuerpo-box-contenido'>

            <table cellpadding=0 cellspacing=0 border=0 width=191>
            <tr><td height=20></td></tr>
            <tr><td height=1 background='/images/comun/puntos-1.gif'></td></tr>
            <tr><td heigth=26 class='fondo-accesos'><a href='/portada/ayuda.php' class='arial t11 c8 tdunderline'>Preguntas Frecuentes</a></td></tr>

            <tr><td height=1 background='/images/comun/puntos-1.gif'></td></tr>
            <tr><td heigth=26 class='fondo-accesos'><a href='/portada/mapa.php' class='arial t11 c8 tdunderline'>Mapa del sitio</a></td></tr>


            <tr><td height=1 background='/images/comun/puntos-1.gif'></td></tr>
            <tr><td height=20></td></tr>

            <tr><td height=41></td></tr>
            </table>
        </div>
        </div>



    </td>
    </tr>
    </table>


    <? ?>


</td></tr>
</table>
</div>
  #2 (permalink)  
Antiguo 13/05/2011, 09:08
Avatar de silvanha  
Fecha de Ingreso: marzo-2006
Ubicación: En mi mundo de sueños
Mensajes: 653
Antigüedad: 18 años, 1 mes
Puntos: 65
Respuesta: Error al redireccionar luego de login

Creo que! no es un error, si no más bien una funcionalidad que deseas agregar, creo que podrías guardar en una variable el lugar desde el cual quiso acceder (la URL completa o la página, tu sabrás como tienes organizado tu sitio), lo envías a autentificarse, y después con esa variable lo regresas a donde estaba..

Cuestión de imaginación..

saludts! ;)
__________________
●•· No hay nada imposible..
●•· Vico-X.. ;)
  #3 (permalink)  
Antiguo 13/05/2011, 09:09
Avatar de dmm84  
Fecha de Ingreso: marzo-2011
Mensajes: 164
Antigüedad: 13 años, 1 mes
Puntos: 13
Respuesta: Error al redireccionar luego de login

podrias guardar en una sesion el link del sitio al que queria acceder y si es exitoso pues recuperar la informacion de esa sesion y llevarle a la noticia
__________________
Mas vale un codigo que mil palabras
  #4 (permalink)  
Antiguo 13/05/2011, 09:19
 
Fecha de Ingreso: agosto-2009
Mensajes: 72
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Error al redireccionar luego de login

Gracias por las respuestas!! soy medio queso, por eso queria preguntarles a ver como haria eso? porque para eso justamente pregunte! :)
  #5 (permalink)  
Antiguo 13/05/2011, 09:42
Avatar de silvanha  
Fecha de Ingreso: marzo-2006
Ubicación: En mi mundo de sueños
Mensajes: 653
Antigüedad: 18 años, 1 mes
Puntos: 65
Respuesta: Error al redireccionar luego de login

O sea que el código que pones no es tuyo??.. Ese tipo de programación no es para alguien que sea "medio queso"...

Tu eres el que sabe desde que sitios estas solicitando el acceso con autentificación, lo guardas, no se si es para entrar al panel var="panel.php", y después lo mandas a esa variable.. que no se en tu código donde este

saludos!
__________________
●•· No hay nada imposible..
●•· Vico-X.. ;)
  #6 (permalink)  
Antiguo 13/05/2011, 09:46
 
Fecha de Ingreso: agosto-2009
Mensajes: 72
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Error al redireccionar luego de login

Cita:
Iniciado por silvanha Ver Mensaje
O sea que el código que pones no es tuyo??.. Ese tipo de programación no es para alguien que sea "medio queso"...

Tu eres el que sabe desde que sitios estas solicitando el acceso con autentificación, lo guardas, no se si es para entrar al panel var="panel.php", y después lo mandas a esa variable.. que no se en tu código donde este

saludos!
Claro, el tema es que estoy a cargo de una web que no programe yo... ahora entenderas porque eso de que "el codigo no es de un queso"... igual, gracias por preocuparte, vere como hacer para guardar ese dato... cual es la variable que me indica la pagina a la que queria ir? me podrias dar un ejemplo?

Gracias :)
  #7 (permalink)  
Antiguo 13/05/2011, 09:51
Avatar de silvanha  
Fecha de Ingreso: marzo-2006
Ubicación: En mi mundo de sueños
Mensajes: 653
Antigüedad: 18 años, 1 mes
Puntos: 65
Respuesta: Error al redireccionar luego de login

jejeje hombre no soy adivina, al menos en el código que pones podría ser el "$_POST["action"]", pero ni idea, eso necesitas checarlo y empezar a desentrañar el código completo.. así lo veo difícil..

Un tip es que vayas página a página según una autentificacin.. y veas el nombre de las variables.. sorry por no ser de más ayuda, pero de verdad que así lo veo complicado

suerte!
__________________
●•· No hay nada imposible..
●•· Vico-X.. ;)
  #8 (permalink)  
Antiguo 13/05/2011, 10:03
 
Fecha de Ingreso: agosto-2009
Mensajes: 72
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Error al redireccionar luego de login

Bueno gracias igual chavala, vere si hay alguien que pueda darme alguna manito! saludos y exitos para ti tambien!
  #9 (permalink)  
Antiguo 13/05/2011, 11:58
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Error al redireccionar luego de login

Eso es extremadamente sencillo:

En la página que necesitas hacer validación de sesión:
Código PHP:
Ver original
  1. if (!session_register('miembros')) {
  2. $_SESSION['url_access'] = $_SERVER['PHP_SELF'];
  3. header('location: menu.php');
  4. exit();
  5. }

En el archivo menu.php
Código PHP:
Ver original
  1. //tus validaciones, bla bla bla, etc
  2. $urlAcess = $_SESSION['url_access'];
  3. $_SESSION['url_access'] = null;
  4. unset($_SESSION['url_access']);
  5.  
  6. header('location: '.$urlAcces);
  7. exit();

Obviamente debes darle un tratado a la variable $urlAccess, ya que esta toma la url completa de donde accedió por ejemplo /pagina/restringida.php

Ahora, debes saber que session_register en PHP 5.3.x ah sido asignada como obsoleta y esta completamente desaconsejado su uso
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #10 (permalink)  
Antiguo 14/05/2011, 02:06
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 10 meses
Puntos: 832
Respuesta: Error al redireccionar luego de login

A ver si entendí bien: el usuario hace clic en un enlace a cuyo contenido que no puede acceder si no está logueado. Entonces aparece un formulario de registro. El usuario se loguea y al pulsar el botón el sistema debe redireccionarlo a la página que quería ver, cierto?.

Creo que la forma más fácil de lograrlo es con $_GET:

- La página de login debe capturar la URL del enlace y colocarla en la barra de dirección, de manera que luzca así:

Código HTML:
http://sitio.com/login.php?redireccionar=http://sitio.com/url-del-enlace.html
- Luego es sencillo porque sólo es cuestión de colocar $_GET['redireccionar'] dentro del atributo action="" del form. Una vez el usuario pulse submit, será llevado a la página que quería ver.

Etiquetas: login, redireccionamiento
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 03:36.