webForumDet fria alternativet

Ett script som bara skickar vidare...

5 svar · 344 visningar · startad av MoneyOpps.nu

MoneyOpps.nuMedlem sedan maj 2002125 inlägg
#1

Hur gör man ett script som bara kollar några variabler i url:n och sen skickar vidare till en annan adress?

Det är en .pl-fil det gäller om det spelar någon roll.

JoakimMedlem sedan dec. 199986 inlägg
#2

Vad menar du med kollar? Skall det sparas, eller skall variablerna påverka vart besökaren blir hänvisad?

// Joakim

nordanMedlem sedan juni 2000929 inlägg
#3

Så här kanske

www.doman.se/scriptet.pl?url=1
#!/usr/bin/perl
use CGI;
$url = CGI::param('url');
if($url == 1)
{
	print "Location:http://www.aftonbladet.se \n\n";
}
elsif($url == 2)
{
	print "Location: http://www.expressen.se\n\n";
}
else
{
	print "Content-type: text/html\n\n";
	print "Oops";
}
HansenMedlem sedan aug. 2000383 inlägg
#4

Kanske så här:

#!/usr/bin/perl

use strict;
use warnings;

use CGI;

my $q  = new CGI;
my $id = $q->param('id');

if ( defined $id && $id =~ /^\d+$/ ) {
    # select url from url where id = $id
    # update url set visits=visits+1 where id=$id
    # print $q->redirect($url);
}
else {
    print
        $q->header,
        $q->start_html( -title => 'Hoppsan' ),
        $q->p("Ogiltigt id: $id"),
        $q->end_html;
}

* två förslag samtidigt, inte illa ;o) *

MoneyOpps.nuMedlem sedan maj 2002125 inlägg
#5

Tack för eran hjälp.
Det var precis det jag var ute efter.

Ska testa om det fungerar senare ikväll.
Tack!

kimuMedlem sedan apr. 20033 inlägg
#6

Kanske lite sent nu. Men här är en variant av Hansens kod som inte kräver CGI-modulen, så du slipper den tid det tar att starta den. Men kör du mod_perl så är det hugget som stucket.

#!/usr/bin/perl

use strict;
use warnings;

my(%query, $key, $value);

map {($key, $value) = split /=/; $query{$key}=$value} split(/;|&/, $ENV{"QUERY_STRING"});

my $id = $query{"id"};

if ( defined $id && $id =~ /^\d+$/ ) {
    # select url from url where id = $id
    # update url set visits=visits+1 where id=$id
    # print "Location: $url\r\n\r\n";
}
else {
    print "Content-type: text/html\r\n\r\n",
            "<html><head><title>Hoppsan</title></head>",
            "<body><p>Ogiltigt id</p></body></html>";
}
Genererad på 385 ms · cache AV · v20260730165559-full.f96bc7eb