passthru returns the return value as the second argument in the function, which is your var $t, so that's the return value. In your case, the return value is 2, which is probably an error.
passthru() spits out data by default, no need to print or echo anything.
Oh! You have to give mysqldump the user you want to login as, web server runs as nobody, so that's what mysqldump is trying to log in as.
passthru('mysqldump -uchris -pXXXXXX general' $t);
On a side note, use single quotes for strings that have no vars or escaped chars in them, it's noteably faster for php to parse through them (yes I've actually done tests), just my tip of the day. 🙂