Parent onbekend in cgi scripting?

Pagina: 1
Acties:

  • Klapperdeklap
  • Registratie: Oktober 2003
  • Laatst online: 17-05 23:10
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";
}

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 10-05 18:53

Bosmonster

*zucht*

Een popup heeft ook geen parent. Misschien bedoel je de opener? Kweet niet of je die direct in de target kunt gebruiken (target="opener"), anders moet je het even via een javascriptje doen (opener.location.href='url')

Met CGI heeft het in ieder geval niks te maken.. dus dat script kun je wel weg halen. Als het wel nodig was geweest waren code-tags geen overbodige luxe geweest ;)

[ Voor 28% gewijzigd door Bosmonster op 20-02-2004 09:56 ]


  • RM-rf
  • Registratie: September 2000
  • Laatst online: 26-05 19:49

RM-rf

1 2 3 4 5 7 6 8 9

je kunt het enkel doen met
code:
1
2
<a href="linkinparentvenster.html" target="_blank" 
    onclick="opener.location.href = this.href; return;">linkinparentvenster</a>


als javascript aanstaat zal de link in het oorspronkelijke venster geopend worden, als javascript niet aanstaat negeert hij de onclick en opent een nieuw venster voor de link.

het perlscript is verder niet van belang, maar geeft wel de indruk van een compleet onwerkbare structuur, laat je al je links via een log-script verlopen? dat is enorm onpraktisch en lastig qua onderhoud.
slimmer is dan gebruik te maken van serverside includes (misschien al automatisch via httpd.conf) of kun je zelfs kijken of een slimme logs-analayse tool niet gewoon voldoet (het perlscript heeft geen meerwaarde tov. een goed ingestelde webalizer oid.)

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen