in reply to Re^4: Use CGI to run a Perl script via web server (updated)
in thread Use CGI to run a Perl script via web server

the code fails

What does that mean?

  • Comment on Re^5: Use CGI to run a Perl script via web server (updated)

Replies are listed 'Best First'.
Re^6: Use CGI to run a Perl script via web server (updated)
by suvajit123 (Initiate) on May 26, 2017 at 06:28 UTC

    The code fails with 500: Internal Server Error. But if I don't use IPC::System::Simple and Net::LDAP, then it works fine.

    About reading the variable $sso, it is reading from CGI but unless used a shift flag it cannot be parsed into the Perl api further. I hope this could have been done by METHODS "GET" or "POST" as well, but unfortunately I am not sure how to use those in this scenario.

    As always, thanks for the insights.

      Try this simple form entry CGI. If this works add your real code into the subroutines

      #!/usr/bin/perl use strict; use CGI; use CGI::Carp 'fatalsToBrowser'; # remove when finished testing use Net::LDAP; use IPC::System::Simple qw(system capture); # input # create CGI query object to get the SSO from URL my $q = new CGI; my $sso = $q->param( "sso" ); $sso =~ s/[^0-9]//g; # remove non digit # process my $msg; if ($sso){ # check LDPA my @entries = search_LDAP($sso); if (@entries == 1){ $msg = process_sso($sso,$entries[0]); } else { $msg = qq!<h2 style="color:red">ERROR: Wrong SSO [$sso] or User do +es not exist in OneAD LDAP </h2>!; } } else { $msg = q!<h2 style="color:red">ERROR : parameter sso is empty</h2>!; } # html page print $q->header(),$q->start_html('Application Management System'); print $msg; print qq!<hr/><form action="" method="post"> SSO : <input type="text" name="sso" value="$sso"/> <input type="submit"/> </form>!; print $q->end_html; sub search_LDAP { my $sso = shift; return ('test') } sub process_sso { my ($sso,$usr) = @_; my $msg = "<h2>Processing SSO $sso</h2>"; return $msg; }
      poj