The problem, as identified by dws and tadman is that the use of File::Find is completely wrong.

The line $File::Find::dir = $upload_dir; is having no effect whatsoever and is not intended for use this way.

When you call find(), you are supplying the base of the subtree that the routine will search. As @ARGV will normally have no contents at all, or at least none that would be useful to you for this purpose, the @ARGV ? @ARGV : '.' almost certainly means that you are searching the subtree starting at '.', which is whatever place in the file system your CGI script is being invoked from.

Your ../cgi-bin/ directory perhaps? This would explain why you are getting the same numbers back each time. To correct this, you need to supply the upload directory directly to the find() function.

use File::Find; my $total_size = 0; find(sub { $total_size += -s }, $upload_dir );

In the short-term, that may well cure your problem. In the long term, you really should read up on the use of taint, and starting checking that you have at least got something in the $email_address variable before blindly appending it to your upload path.

You should seriously consider reading ovid's CGI programming course and pay special attention to lesson three unless you want your site to be overrun by the worlds script kiddies, because currently you are very vulnerable.


Okay you lot, get your wings on the left, halos on the right. It's one size fits all, and "No!", you can't have a different color.
Pick up your cloud down the end and "Yes" if you get allocated a grey one they are a bit damp under foot, but someone has to get them.
Get used to the wings fast cos its an 8 hour day...unless the Govenor calls for a cyclone or hurricane, in which case 16 hour shifts are mandatory.
Just be grateful that you arrived just as the tornado season finished. Them buggers are real work.


In reply to Re: Re: Re: Stumped with File::Find and -s by BrowserUk
in thread Stumped with File::Find and -s by bsexton1qBob Sexton

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.