Dos cosillas:
Si quieres cerciorarte de que lo que te suben son imagenes gif o jpeg, utiliza la funcion getImageSize, que entre otras cosas te devolverá el formato de la imagen, independientemente de la extension.
Por otro lado en la instruccion:
Código PHP:
move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $nombre_archivo)
Estas moviendo la imagen temporal a $nombre_archivo, pero es que esa variable no contiene el path (el directorio) donde tiene que salvarse.
la solucion será mas o menos:
Código PHP:
move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $cadenaTexto . "/" . $nombre_archivo)
suponiendo queen cadena texto este el directorio que quieres crear.
Ten mucho ojito con dicha $cadenaTexto, porque parece que la envias con el método post, con lo que algun cabroncete puede falsificar tu formulario, poner una $cadenaTexto = "../../../" y escribir un fichero en "cualquier lado".
Un saludo
Zerjillo