Fijate bien en la documentación de move_uploaded_file():
www.php.net/move_uploaded_file
el primer parámetro es la ruta del archivo origen (el _tmp) y el segundo el nombre y ruta del archivo en destino ...
El uso que haces del nombre del archivo para $archivo ..podría darte problemas usalo:
if (move_uploaded_file ($archivo_tmp,$archivo_name))
y todo esta declarado asi, pero nada
$archivo_name= $HTTP_POST_FILES['archivo']['name'];
$archivo_size= $HTTP_POST_FILES['archivo']['size'];
$archivo_type= $HTTP_POST_FILES['archivo']['type'];
$archivo_tmp= $HTTP_POST_FILES['archivo']['tmp_name'];
Por lo demás .. no se vé que formulario HTML usas .. pero la codificación de este es importante.
Recuerda que siempre puedes hacer un "echo" a esas variables y observar que datos trae.
Por lo demás . .yo NO usaría $HTTP_POST_FILES sino $_FILES más seguro (a partir de PHP 4.1.0)
------
Los otros problemas que tienes no te entiendo. Recuerda que los que aquí intentamos responder no conocemos las condiciones de tus pruebas o sistema .. Yo no sé que hace si un usuario hace "login" o donde van a parar esos archivos .. Sólo te puedo decir que el "move_uploaded_file()" mueve archivos hacia la ruta que indiques .. el nombre de ese directorio o si no está creado hay que crearlo es otro tema . .pero deberías centrar mejor la pregunta.
Un saludo,