Según este error:
Cita: Warning: touch(): open_basedir restriction in effect. File(/temp) is not within the allowed path(s): (/home/promo2k3:/usr/lib/php:/usr/local/lib/php:/tmp) in /home/promo2k3/public_html/subirformulario.php on line 11
Por restricción de esa directiva (open_basedir) tal vez por el uso de "safe_mode" no está permitido hacer "upload" de archivos (que ya parece que está configurado: upload_tmp_dir = /tmp ) en ese servidor ...
Consulta a tu proveedor si no eres tu por esas restricciones .. en teoría deberían añadir a esa directiva (open_basedir) la ruta /tmp o la que definan para los "upload's" vía HTTP de PHP.
Podrías probar también a "forzar" donde quieres que PHP suba los archivos temporales.
Create una carptea sobre el public_html/ (para que quede fuera del alcance de una llamada por http:// (que es donde apunta el "document_root" de tu servidor HTTP normalmente). Por ejemplo "mis_uploads"
Código PHP:
ini_set("upload_tmp_dir","/home/promo2k3/mis_uploads/");
Usalo al principio de tu script .. Si no tienes restringido también el uso de esa función .. ahí por lo menos le dices a PHP (a tu script) que lo que suba lo haga a dicho directorio temporal tuyo .. de tu sitio asignado en ese servidor) .. Tendrás que borrar el archivo "temporal" al terminar el proceso usando: unlink() con la ruta absoluta completa tipo:
Código PHP:
unlink("/home/promo2k3/mis_uploads/".$_FILES['userfile']['tmp_name']);
Un saludo,