Lo que quiero hacer es, mediante un formulario en html, que los usuarios que visiten mi web puedan subir una foto a mi servidor usando dicho formulario y mediante PHP y que se me envíe (una vez que el usuario envió dicho form) una notificación a mi e-mail con los datos de la persona y el nombre de la foto que subió. Todo esto me anda a medias, más abajo les dejo el código que fui armando de buscar en internet y juntando pequeñas partes de distintos códigos.
Lo que me falla es lo siguiente:
1. quiero especificar una carpeta donde se vayan guardando las fotos, porque actualmente me las sube sueltas en la raíz del servidor y me queda muy desorganizado.
2. El mail me llega bien con los datos NOMBRE, EMAIL, FECHA DE NACIEMIENTO Y COMENTARIO, pero no puedo hacer que me llegue el nombre de la foto que fue subida.
3. Y por último si es posible que cuando se envíe el formulario o dé error, en vez de darme el mensaje: " "El archivo ha sido cargado correctamente" o "Ocurrió algún error al subir el fichero. No pudo guardarse", me envíe a dos HTML distintos, por ejemplo: envioOK.html y errorEnvio.html
Gracias por la ayuda que puedan darme!! necesito mucho esto, gracias!
Este es el código que estoy usando en el PHP:
Código :
<? //tomo el valor de un elemento de tipo texto del formulario $nombre = $_POST["nombre"]; $email = $_POST["email"]; $fecha = $_POST["fecha"]; $fotoarchivo = $_POST["userfile"]; $comentario = $_POST["comentario"]; //datos del arhivo $nombre_archivo = $HTTP_POST_FILES['userfile']['name']; $tipo_archivo = $HTTP_POST_FILES['userfile']['type']; $tamano_archivo = $HTTP_POST_FILES['userfile']['size']; //compruebo si las características del archivo son las que deseo if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg")) && ($tamano_archivo < 500000))) { echo "La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de 100 Kb máximo.</td></tr></table>"; }else{ if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $nombre_archivo)){ $cuerpo = "Un usuario subio una foto en el Blog de Los Nocheros\n"; $cuerpo .= "Nombre: " . $HTTP_POST_VARS["nombre"] . "\n"; $cuerpo .= "E-mail: " . $HTTP_POST_VARS["email"] . "\n"; $cuerpo .= "Fecha de Nacimiento: " . $HTTP_POST_VARS["fecha"] . "\n"; $cuerpo .= "Foto subida: " . $HTTP_POST_VARS["userfile"] . "\n"; $cuerpo .= "Comentarios: " . $HTTP_POST_VARS["comentario"] . "\n"; //mando el correo... mail("[email protected]","Nueva foto subida por usuario",$cuerpo); echo "El archivo ha sido cargado correctamente."; }else{ echo "Ocurrió algún error al subir el fichero. No pudo guardarse."; } } ?>
Este es mi formulario en HTML:
Código :
<form action="subir.php" method="post" enctype="multipart/form-data" name="form1"> <table width="35%" border="0" cellspacing="5" cellpadding="0"> <tr> <td valign="top"><input name="userfile" type="file" id="userfile"></td> </tr> <tr> <td valign="top"> </td> </tr> <tr> <td valign="top"> </td> </tr> <tr> <td width="55%" valign="top"><label> <input name="nombre" type="text" id="nombre" value="Tu nombre" size="30"> </label></td> </tr> <tr> <td valign="top"><label> <input name="email" type="text" id="email" value="E-mail" size="30"> </label></td> </tr> <tr> <td valign="top"><input name="fecha" type="text" id="fecha" value="Fecha de nacimiento" size="30"></td> </tr> <tr> <td valign="top"><textarea name="comentario" cols="45" rows="10" id="comentario">Descripción o comentario de la foto</textarea></td> </tr> <tr> <td valign="top"><label> <input type="submit" name="Submit" value=" Enviar todo "> </label></td> </tr> </table> </form>