• Publicidad

Redireccionar a página principal

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Redireccionar a página principal

Notapor rafa » 2006-02-09 04:13 @217

Hola, un saludo para todos, tengo un pequeño problemilla, es el siguiente :

Tengo una página principal en perl donde hay varios enlaces, en esta es donde controlo a los usuarios que entran, pero hay algunos que entran directamente a las paginas de los enlaces sin pasara por la principal, me gustaria como podria obligar a los usuarios a entrar a las distintas paginas desde la pagina principal.

Un saludo y gracias
rafa
Perlero nuevo
Perlero nuevo
 
Mensajes: 20
Registrado: 2004-05-14 05:04 @252

Publicidad

Notapor kidd » 2006-02-09 10:14 @468

Hola:

Se me ocurren dos maneras.

1. Checa el referrer para verificar que vienen de la página principal, esto lo puedes lograr usando las variables de entorno.

2. Implementando el uso de sesiones, de esa manera rediriges a los usuarios a la página principal para que inicien una sesión en caso de que no tengan una ya inicializada. Esto se puede lograr de manera sencilla usando el módulo CGI::Session.


SALUDOS
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

PAGINA PRINCIPAL

Notapor rafa » 2006-02-13 08:38 @401

Gracias, lo mirare como me dices.
Un Saludo
rafa
Perlero nuevo
Perlero nuevo
 
Mensajes: 20
Registrado: 2004-05-14 05:04 @252

pagina principal

Notapor macgregor » 2006-02-13 09:26 @435

Una opcion es añadir javascript a todas tus paginas comprovando que el "url.value" de la pagina anterior es igual a la url de nuestra pagina principal (http://www.mipagina.com/index.html).
si no se cumple pon un popup avisando y no dejes que hagan nada.

Otra opcion es el uso de sesiones. Si tienes usuarios definidos en una base de datos (o algun archivo de texto) y quieres que una vez se identifiquen puedan navegar libremente por tu web esta es la mejor opcion.
Puedes mirarte el modulo que te ha dicho kidd.

Yo me he visto obligado a hacer algo parecido en una web y lo resolvi utilizando sesiones. Los usuarios se validaban en una base de datos y mediante cookies con javascript guardaba el identificador de sesion en el pc del usuario.
Mirate este mensaje, aqui pongo como lo hice, con el codigo mas o menos claro :D

http://perlenespanol.com/foro/viewtopic.php?t=748

Un saludo.
MACGREGOR [TM]
Avatar de Usuario
macgregor
Perlero nuevo
Perlero nuevo
 
Mensajes: 80
Registrado: 2004-12-09 07:32 @355
Ubicación: españa

PAGINA PRINCIPAL

Notapor rafa » 2006-02-21 03:40 @194

Hola, tengo este script pero no me funciona, me da error en la pagina :


my @referers = ('www.tudominio.com.ar', '*.tudominio.com.ar', 'tudiminio.com.ar');
&check_url;

sub check_url {

my $check_referer = 0;

if ($ENV{'HTTP_REFERER'}) {
foreach my $referer (@referers) {
if ($ENV{'HTTP_REFERER'} =~ m|https?://([^/]*)$referer|i) {
$check_referer = 1;
last;
}
}
}
else {
$check_referer = 1;
}

if ($check_referer != 1) { &error('verificar','host') }
}

no detecto donde puede estar el error.
Gracias anticipadas por tu amabilidad.
Un Saludo
rafa
Perlero nuevo
Perlero nuevo
 
Mensajes: 20
Registrado: 2004-05-14 05:04 @252

Notapor kidd » 2006-02-21 09:53 @453

Umm, podría ser algo así:


Código: Seleccionar todo
my @referers = ('dominio.com.ar');

check_url();


sub check_url {

my $check_referer = 0;

my $page_referer = $ENV{'HTTP_REFERER'};

    if (defined($page_referer)) {
        for my $referer (@referers) {
            if ($page_referer =~ m|^http(?:s)?\://(?:[^/]*)$referer|i) {
                $check_referer = 1;
                last;
            }
        }
    }
    else {
        $check_referer = 1;
    }


    if ($check_referer != 1) {
        error('verificar','host')
    }


}



SALUDOS
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Re: Redireccionar a página principal

Notapor explorer » 2006-02-21 14:06 @629

Una solución drástica sería hacer un filtrado a nivel del servidor web (en caso de ser un servidor Apache) utilizando el utilísimo módulo mod_rewrite:
Código: Seleccionar todo
RewriteEngine On
RewriteCond %{HTTP_REFERER}     !dominio\.com\.ar
RewriteCond %{REQUEST_FILENAME} !index\.html
RewriteRule ^/                  http://dominio.com.ar/index.html [L,R]
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados