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.
5 svar · 344 visningar · startad av MoneyOpps.nu
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.
Vad menar du med kollar? Skall det sparas, eller skall variablerna påverka vart besökaren blir hänvisad?
// Joakim
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";
}
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) *
Tack för eran hjälp.
Det var precis det jag var ute efter.
Ska testa om det fungerar senare ikväll.
Tack!
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>";
}