I don't know what it is... but PHP is acting very weird today... or I am 
becoming crazy... can anyone tell me which one?

I have this function:
function Upload($source_file,$source_filename,$dest_dir,$allowed_types=array())
{
global $upload_errmsg;

if( count($allowed_types) )
{
   $file_ext=ArquivoExt($source_filename);
   $ext_found=in_array($file_ext,$allowed_types);
   //die("source=$source_filename");
   //var_dump($ext_found);
   //die;
   if( !$ext_found )
   {
     $upload_errmsg="O arquivo \"$source_filename\" não está entre os tipos 
autorizados";
     //die("errmsg=$upload_errmsg");
     return false;
   }
}
... some more code here ..
return true;
}

the first crazy behaviour is... I use a test file called something.jpg, 
ArquivoExt() returns me the extension of a given filename, in this case 
"jpg". $allowed_types contains "gif","jpg" and "png" so that in_array() 
should return true... and it does... but get this... if I uncomment that 
var_dump() guess what it outputs?

bool(true) bool(false)

very weird... how can one var_dump() call gives me two outputs?
This double output doesn't occur if I uncomment the "die" after the 
var_dump(). It only outputs bool(true) in that case.

Now for the second weird behaviour... since no matter what, $ext_found will 
always be false (due to the previous weirdness) it will always enter the 
IF... but the weird thing is when the caller of Upload() prints 
$upload_errmsg it only outputs:

O arquivo "" não está entre os tipos autorizados

where is the filename? I've checked it tons of times... If I uncomment the 
second die, right after the $upload_errmsg assignment, it outputs ok, with 
the filename.

Now, can someone explain me this VERY WEIRD behaviour??



--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to