in reply to Re^2: show a message only during the sleep time
in thread show a message only during the sleep time

Well, you have write the "..." javascript -- the elipsis was just a place holder (and note that we want to add javascript code by using the <body onLoad=""> attribute, NOT embed the body tag inside script tags). Also, note the clunkiness of print statements for this.. (and this is pretty general advice) at the minimum, at least use here-docs, and also keep in mind a more robust solution like Template::Toolkit or HTML::Template. So, back to the problem at hand, this is what i was envisioning:
print <<EOF; <html> <head> <title>ntop startup script</title> <STYLE TYPE='text/css'> h3 { color: red } a { text-decoration: none; font: bold 14pt/16pt Ariel, serif } a:hover { color: red } /* when mouse is over link */ </style> <script language="javascript"> function hideWaitMsg(){ var obj = getElementById('wait_msg_text'); obj.visible = false; } </script> </head> <body bgcolor='#c0c0d0' onLoad="hideWaitMsg()"> <center> <p><br></p> <p><br></p> <div id="wait_msg_text">pls wait, ntop will be started</div> EOF
That's the basic setup .. note that i just guessed at the javascript code in the hideWaitMsg() function -- that part is left as an excercise for the reader.

Replies are listed 'Best First'.
Re^4: show a message only during the sleep time
by cc (Beadle) on Jul 24, 2005 at 19:17 UTC
    thanks a lot !

    but I get:
    Software error: Can't find string terminator "EOF" anywhere before EOF at /usr/local/w +ww/cgi-bin/ntop/ntop4.cgi line 20.
    my system has a problem with this line:
    print <<EOF;

    I have:
    # pkg_info | grep perl mod_perl2-2.0.1,2 Embeds a Perl interpreter in the Apache2 server perl-5.8.7 Practical Extraction and Report Language
    do I need to install additional perl module ?
      well, obvious question is, do you have a 'EOF' line in your code? :) Note that the string "EOF" is arbitrary, too. Search for "here-document" in perldoc perldata for more info, but two simple examples:
      print <<EOF; Hello World !!! EOF print <<BLAH; Hello World !!! BLAH
      If you still have problems, please post the code along w/the error message.
        I've got this error message before,
        because I must edit this sript directly on the unix machine.
        If I edit on the windoze and transfer to unix,
        I get this error message.
        anyway this script works only from command line:
        #!/usr/bin/perl -w use strict; use warnings; use CGI; my $query = new CGI; use CGI::Carp qw(fatalsToBrowser); $|=1; print <<EOF; <html> <head> <title>ntop startup script</title> <STYLE TYPE='text/css'> h3 { color: red } a { text-decoration: none; font: bold 14pt/16pt Ariel, serif } a:hover { color: red } /* when mouse is over link */ </style> <script language="javascript"> function hideWaitMsg(){ var obj = getElementById('wait_msg_text'); obj.visible = false; } </script> </head> <body bgcolor='#c0c0d0' onLoad="hideWaitMsg()"> <center> <p><br></p> <p><br></p> <div id="wait_msg_text">pls wait, ntop will be started</div> EOF system `/usr/local/www/cgi-bin/ntop/ntop.sh stop` or die "cannot stop +ntop: $!"; sleep(8); my $cc = `sudo /usr/local/www/cgi-bin/ntop/ntop.sh start` or die "cann +ot start ntop: $!"; print "<font face=\"arial,helvetica\" size=2 color=\"#006600\">status: +</font> ",$cc,"<br><br>\n"; print "<font face=\"arial,helvetica\" size=2 color=\"#FF0000\"> pls do not forget to shutdown, if you're not using </font> \n"; print "\n"; print "<p><br></p>"; print "pls wait for 5 seconds before you click on this link:\n"; print "<br><br>"; print "<a href=\"https://192.168.0.3:3001\"><b><U>NTOP</b></U></a>\n"; print "<p><br></p>"; print "<p><br></p>"; print "<p><br></p>"; print "<p><br></p>"; print "Maintained by <a href=\"mailto:admin@\domain.net\"><font face=\ +"arial,helvetica\" size=3> admin</a></font>\n"; print "</center>"; print "</body>"; print "</html>"; exit($cc);

        In the browser I get:
        "Internal Server Error"
        It seems the whole HTML code must be inside of
        print <<EOF;
        EOF