Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re: why do CGI's mess everything up???

by blokhead (Monsignor)
on Dec 12, 2002 at 13:25 UTC ( [id://219317]=note: print w/replies, xml ) Need Help??


in reply to why do CGI's mess everything up???

Sounds strange. What exactly does happen to the data? Can your script print it out or save it to a temp file to verify that it's in the correct format? My hunch is that the uploaded file isn't any different from the files you've been testing with in the non-CGI environment, with the possible exception of end-of-line characters. However, I don't think you'll be able to get much more than stabs in the dark from the monks here unless you can post the relevant file-parsing code from your CGI script.

blokhead

Replies are listed 'Best First'.
Re: Re: why do CGI's mess everything up???
by Anonymous Monk on Dec 13, 2002 at 13:27 UTC
    Hi, i'm still battling this one.
    THE CGI bit #! usr/bin/perl -w use CGI; print STDOUT $query->header(); print STDOUT $query->start_html( -title=> "results"; -BGCOLOR=>"#ccddff"); # Get the file from the html form $file_contents = $query->param('file'); # read the file in line by line while (defined ($line = <$file_contents>)) { $info = $info.$line; } # prints the file contents but loses all tab-delimited formatting. print STDOUT "$info<P>"; # slurp file into scalar variable $data = do { local $/; <$info>; }; # the following does nothing print STDOUT "$data";
    Is there another way that i can read in the file but preserve the file format?? Also, why doesn't printing  $data work?? cheers
      Hi there anonymonk, thanks for posting the code. A few comments for you:

      • You seem to read in the file just fine. I'm willing to bet the farm that the tab-delimited formatting is still in your $info variable. However, when you print the variable to the browser, it won't display the tabs properly. Your browser should treat all whitespace characters as just spaces, so tab alignment won't work. You can verify this by viewing the source of the output in your browser -- the HTML source should show the tab alignment. I'm sure that if you printed out <pre> tags around the data, it would appear better in the browser output.
      • You have a problem when you try to slurp the file contents into $data. More specifically, you try to use the diamond <> operator on a string ($info), which won't work. You can only use this operator on filehandles. This is why nothing was showing up. If you had warnings turned on, you would have seen an error to this effect.
      Otherwise, your code looks good. Of course, I would be remiss if I didn't strongly encourage you to use strict and warnings! This is Perl Monks after all!

      blokhead

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://219317]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others chilling in the Monastery: (4)
As of 2024-04-26 06:48 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found