See
this post for an explanation of the funky re-direction.
As for the password, I just retested the script and it works fine for me and never displays my password. You need to enter your password once at the beginning. But echo is turned off so it won't display. The "read PASSWORD" saves your password and the "print -p $USER $PASSWORD" should feed it into the ftp program. Make sure that you have those lines correct. If so, try:
print -p $USER "$PASSWORD"
which might be needed if your password contains funky characters. If this is still failing, try running "ftp -nv" by hand and entering the commands
open hostname
user darthur xyzzy
except change hostname, darthur, and xyzzy to whatever makes sense at your site. This will tell you if your server can accept command in that form. (It would be very bad if it doesn't.)