>$SAFEFILENAME = ereg_replace ("[[:punct:]]+[[:blank:]]+", "", $FILENAME);
>
>But that does not seem to be working, and I have not been able to figure 
>out why.

It's better to specifically *ALLOW* certain characters than to try to list
all the ones you do *NOT* allow:

    # Get rid of gnarly characters in filenames:
    $filename = ereg_replace('[^a-zA-Z0-9_\\.-]', '', $photo_name);
    $filename = $filename ? $filename : chr(rand(ord('A'),ord('Z'))) .
chr(rand(ord('A'),ord('Z'))) . chr(rand(ord('A'),ord('Z'))) .
chr(rand(ord('A'),ord('Z')));
    if (!ereg('[a-zA-Z0-9_-]+[\\.]*[a-zA-Z0-9_-]*', $filename)){
     $filename = chr(rand(ord('A'),ord('Z'))) . chr(rand(ord('A'),ord('Z')))
. chr(rand(ord('A'),ord('Z'))) . chr(rand(ord('A'),ord('Z'))) . $filename;
    }

Here, I throw out anything that's not alphanumeric, underscore (_), dot
(\\.), or dash (-)

I also accept that fact that some goofball will end up have a file name with
*NOTHING* useful in it, and then I just make a random filename up.

Damned if I know why I felt the need for that last if(){} part...

Maybe ord('Z') should be ord('Y') and I was getting whatever comes after Z
some of the time???

Or perhaps that just adds four more characters on when I *DO* need to make
up random names?

That part looks pretty broken to me right now, but maybe I just need some
sleep.

-- 
Like Music?  http://l-i-e.com/artists.htm


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to