Link to home
Start Free TrialLog in
Avatar of syu1
syu1

asked on

output using Html format.

this is the code I want to output from a database,  but  it only output for
unix console, I want the output using Html format, how ?


#!/usr/local/bin/perl -w

# Use the DBM module.
use Getopt::Long;
use English;
use AnyDBM_File;

# Set up the command line options.
my $ret            = GetOptions ("d|database:s");
#my $database    = $opt_d || die "Usage: $0 -d database\n";

#my $database      ="/cgi-bin/process/hctu/she/testDir/convert.dbm";
my $database   = "convert.dbm";
my (%contents,$count,$type,$name,$price,$desc,$record);

# Open the DBM database file.
dbmopen (%contents, $database, 0700) || die "Could not open DBM file $database : $!\n";

# Force the top of page.
$FORMAT_LINES_LEFT = 0;
$count = 0;

# Start printing out the dbm information.
for $number (sort keys %contents)
{
   # Get the contents from the hash.
   $record = $contents{$number};

   # Split the record up.
   ($type,$name,$price,$desc) = split (/\|/, $record);
   $count++;

   # Write it...
   write;
}

# Close the DBM database.
dbmclose %contents;

# Top of picture formats.
format STDOUT_TOP=
Count Item #  Item Type  Item Name      Price     Description   Page @>>>>>>
$FORMAT_PAGE_NUMBER
============================================================================
.

format STDOUT=
@>>>> @|||||| @<<<<<<<<< @<<<<<<<<<<<<< $@####.## ^<<<<<<<<<<<<<<<<<<<<<<<<<
$count,$number,$type,$name,$price,$desc
~                                                 ^<<<<<<<<<<<<<<<<<<<<<<<<<
$desc
~                                                 ^<<<<<<<<<<<<<<<<<<<<<<<<<
$desc
.




this is the unix output!

ount Item #  Item Type  Item Name      Price     Description   Page       1
============================================================================
    1   100   Hardware   Hammer         $   25.00 A thing to hit nails with.
    2   122   Hardware   Nail           $    0.15 A thing to be hit by a
                                                  hammer. (see hammer)
    3   142   Hardware   Sander         $   10.15 Used to sand all sorts of
                                                  things, except sand.
    4   206   Household  Kitchen Sink   $  100.00 Lost the last time I went
                                                  on vacation. (next time
                                                  this I won't check it in)
    5   210   Household  Windows        $   45.00 User friendly and does not
                                                  need to be plugged in.
    6   242   Household  Vacuum         $  300.00 I'm not sure what this is
                                                  used for; but people seem
                                                  to have them anyway.
    7   266   Household  Microwave      $  100.00 Kitchen item. (Also see
                                                  hot water heater)
    8   312   Garden     Rake           $   25.00 Used to rake leaves, cut
                                                  grass and break noses if
                                                  left lying on the ground.
    9   344   Garden     Gravel         $   30.00 Why bother the dog is
                                                  going to dig through it
                                                  again anyway.
   10   362   Garden     Top Soil       $   10.00 Is there such a thing as
                                                  "Bottom Soil"?
   11   384   Garden     Mosquitoes     $    0.00 Some are large as a dog
                                                  and will carry you away.
   12   500   Sports     Hockey Stick   $   10.00 Used to push the puck
                                                  around.
   13   502   Sports     Bike           $  400.00 Sits in the garage and
                                                  collects dust.
   14   556   Sports     First Aid Kit  $   25.00 Used more times than not
                                                  unfortunately.
   15   602   Misc       Dog Food       $    1.50 The stuff the cat eats.
   16   624   Misc       Cat Food       $    0.75 The stuff the dog eats.
   17   644   Misc       Socks          $    1.00 What both the dog and cat
                                                  destroy.

Avatar of guadalupe
guadalupe

Try this:

print "Content-type: text/html\n\n";

print "<pre>\n";

# Start printing out the dbm information.
for $number (sort keys %contents)
{
   # Get the contents from the hash.
   $record = $contents{$number};

   # Split the record up.
   ($type,$name,$price,$desc) = split (/\|/, $record);
   $count++;

   # Write it...
   write;
}
print "</pre>\n";

Didn't put it as an answer as I'm not sure but give it a try...  try from the command line first then from a web browser...
Avatar of syu1

ASKER

thanks , the command line is ok, but the web browser doesnt works at all.


Avatar of syu1

ASKER

thanks , the command line is ok, but the web browser doesnt works at all.


What happens when you run it from the browser...?

Could it be a problem of permissions?

Try doing a chmod of 755 to give all users permission to execute the script.
Avatar of syu1

ASKER

it is just empty page , is seems nothing print out.

I change like following, it is still empty page, but
the header is print out, I have use chmod, it is nothing to to with it,

thanks!
What happens when you run it from the browser...?

Could it be a problem of permissions?

Try doing a chmod of 755 to give all users permission to execute the script.
And what do you get from the command line...?
Are you outputting anything before the  MIME type header...?  Make sure that this is the veryt first print line that goes to standard out (that is to say the first print that doesn't explicitly specify some file handle)

print "Content-type: text/html\n\n";



And what doe you see in the browser wibd when you call it...?
ASKER CERTIFIED SOLUTION
Avatar of Hardaway
Hardaway

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial