Om gegevens over de bezoekers van mijn faq pagina te registreren maak ik gebruik van enkele cgi scripts. Alles werkt perfect, qua registratie. Er is echter 1 probleempje. De antwoorden op de faq's laat ik openen in een popup. Als ik in deze popup een link defineer met target=_parent dan opent de link toch in het popup venster. Varianten als target=_blank werken wel. Blijkbaar is de parent onbekened.
Op deze manier roep ik de popup aan in de faq pagina;
<a class=link href="" target="nieuw" onclick="NieuwVenster('http://mkt.energiedirect.nl/dd/cgibin/log.cgi?label='+label+'&url=http://www.energiedirect.nl/Faq/faq01.htm'); return false;">Wat is dubbeldirect?</a>
Dit zijn de betreffende scripts;
function NieuwVenster(URL) {
window.open(URL, "nieuw", "width=360,height=420,top=260,left=640");
}
en het cgi script;
#!/usr/bin/perl
&get_form;
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time());
if ($mday < 10) { $mday = "0$mday"; }
$mon = $mon + 1;
if ($mon < 10) { $mon = "0$mon"; }
if ($hour < 10) { $hour = "0$hour"; }
if ($min < 10) { $min = "0$min"; }
if ($sec < 10) { $sec = "0$sec"; }
$year += 1900;
$log_time = "$year$mon$mday ($hour:$min:$sec)";
open(LOG, ">>faqdd.log");
print LOG "$log_time;$ENV{'REMOTE_ADDR'};$FORM{url};$FORM{label}\n";
close(LOG);
$redirect = "$FORM{url}?label=$FORM{label}";
#print "Content-type: text/html\n\n";
#print $redirect;
&redirect_user;
exit;
#
sub get_form {
if ($ENV{"REQUEST_METHOD"} eq 'GET') {
$buffer = $ENV{'QUERY_STRING'};
} else {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
}
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$FORM{$name} = $value;
}
}
sub redirect_user {
print "Location: $redirect\n\n\n";
}
Op deze manier roep ik de popup aan in de faq pagina;
<a class=link href="" target="nieuw" onclick="NieuwVenster('http://mkt.energiedirect.nl/dd/cgibin/log.cgi?label='+label+'&url=http://www.energiedirect.nl/Faq/faq01.htm'); return false;">Wat is dubbeldirect?</a>
Dit zijn de betreffende scripts;
function NieuwVenster(URL) {
window.open(URL, "nieuw", "width=360,height=420,top=260,left=640");
}
en het cgi script;
#!/usr/bin/perl
&get_form;
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time());
if ($mday < 10) { $mday = "0$mday"; }
$mon = $mon + 1;
if ($mon < 10) { $mon = "0$mon"; }
if ($hour < 10) { $hour = "0$hour"; }
if ($min < 10) { $min = "0$min"; }
if ($sec < 10) { $sec = "0$sec"; }
$year += 1900;
$log_time = "$year$mon$mday ($hour:$min:$sec)";
open(LOG, ">>faqdd.log");
print LOG "$log_time;$ENV{'REMOTE_ADDR'};$FORM{url};$FORM{label}\n";
close(LOG);
$redirect = "$FORM{url}?label=$FORM{label}";
#print "Content-type: text/html\n\n";
#print $redirect;
&redirect_user;
exit;
#
sub get_form {
if ($ENV{"REQUEST_METHOD"} eq 'GET') {
$buffer = $ENV{'QUERY_STRING'};
} else {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
}
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$FORM{$name} = $value;
}
}
sub redirect_user {
print "Location: $redirect\n\n\n";
}