Hola a todos este es mi primer post, estoy haciendo un formulario de registro para un casting, lo arme en html, e hice un "send.php", el formulario funciona a medias, llega el mensaje desde el formulario, pero no llegan bien linkeadas las imagenes subidas.
Ademas no se como poner avisos para confirmarle al usuario el envio exitoso, o los avisos de que falta algun campo por completar, ademas quisiera añadirle una confirmacion via email de que su formulario fue recibido.
mi nivel de conocimento de php es menos que basico.
adjunto el codigo html
Código HTML:
<div class="formulario_">
<div class="form">
<h2>¿Tienes entre 5 y 12 años y quieres ser parte del exclusivo staff de modelos del Chile Fashion Kids?</h2>
<h3>Participa del Casting llenando el siguiente formulario</h3>
<form id="casting" name="casting" method="POST" action="send.php" enctype="multipart/form-data">
<h4>Datos Postulante </h4>
<label for='nombre'>Nombre:</label>
<input name="nombre" type="text" id="nombre" size="40" >
<label for="edad">Edad: </label>
<input name="edad" type="text" id="edad" size="3">
<br />
<br />
<label for="estatura">Estatura:</label>
<input name="estatura" type="text" id="estatura" size="3">
<label for="peso">Peso:</label>
<input name="peso" type="text" id="peso" size="2">
<label for="talla">Talla:</label>
<input name="talla" type="text" id="talla" size="2">
<label for="calzado">N° Calzado:</label>
<input name="calzado" type="text" id="calzado" size="2">
<br />
<br />
<label for="pelo">Color Pelo:</label>
<input name="pelo" type="text" id="pelo" size="6">
<label for="ojos">Color Ojos:</label>
<input name="ojos" type="text" id="ojos" size="6">
<br />
<h4>Datos Representante (Padres o familiar directo mayor de 18 años.)</h4>
<label for='nombre_rp'>Nombre: </label>
<input name="nombre_rp" type="text" id="nombre_rp" size="50" >
<br />
<br />
<label for='telefono'>Teléfono:</label>
<input name="telefono" type="text" id="telefono" size="9" >
<label for='email'>Email: </label>
<input name="email" type="text" id="email" size="18" >
<br />
<br />
<label for='experiencia'>¿Tienes experiencia en modelaje o fotografía? (Si/No)</label>
<input name="experiencia" type="text" id="experiencia" size="4" >
<br />
<br />
<!-- si pudieran tambien ayudarme a activar esta variable solo si se responde "SI" al campo anterior -->
<label for='comentario'>Si la respuesta es sí, cuéntanos algo de tu experiencia.</label>
<br />
<br />
<textarea id="comentario" name="comentario" cols="35"></textarea>
</p>
<p>
<label for='foto_rostro'>Adjunta foto rostro (Max 1MB) :</label>
<input name="foto_rostro" type="file" size="20">
<input type="hidden" name="MAX_FILE_SIZE" value="10000000">
<br />
<br />
<label for='foto_cuerpo'>Adjunta foto cuerpo completo (Max 1MB) :</label>
<input name="foto_cuerpo" type="file" size="16">
<input type="hidden" name="MAX_FILE_SIZE" value="10000000">
</p>
<p>
<input type="reset" value="Borrar" name='borrar'>
<input name='enviar' type="submit" value="Enviar">
</p>
</form>
</div>
</div>
</div>
adjunto el codigo php
Código PHP:
<?php
$nombre = $_POST['nombre'];
$edad = $_POST['edad'];
$estatura = $_POST['estatura'];
$peso = $_POST['peso'];
$talla = $_POST['talla'];
$calzado = $_POST['calzado'];
$pelo = $_POST['pelo'];
$ojos = $_POST['ojos'];
$nombre_rp = $_POST['nombre_rp'];
$telefono = $_POST['telefono'];
$email = $_POST['email'];
$experiencia = $_POST['experiencia'];
$comentario = $_POST['comentario'];
$foto_rostro = $_POST['foto_rostro'];
$foto_cuerpo = $_POST['foto_cuerpo'];
// Configuración up1
$folder = "img_casting/"; // Carpeta a la que queremos subir los archivos
$maxlimit = 10000000; // Máximo límite de tamaño (en bits)
$allowed_ext = "png,jpg"; // Extensiones permitidas (usad una coma para separarlas)
$overwrite = "no"; // Permitir sobreescritura? (yes/no)
$match = "";
$filesize = $_FILES['foto_rostro']['size']; // toma el tamaño del archivo
$filename1 = strtolower($_FILES['foto_rostro']['name']); // toma el nombre del archivo y lo pasa a minúsculas
if(!$filename1 || $filename1==""){ // mira si no se ha seleccionado ningún archivo
echo $error = "- Ningún archivo selecccionado para subir.<br>";
}elseif(file_exists($folder.$filename1) && $overwrite=="no"){ // comprueba si el archivo existe ya
echo $error = "- El archivo <b>$filename1</b> ya existe<br>";
}
// comprobar tamaño de archivo
if($filesize < 1){ // el archivo está vacío
echo $error .= "- Archivo vacío.<br>";
}elseif($filesize > $maxlimit){ // el archivo supera el máximo
echo $error .= "- Este archivo supera el máximo tamaño permitido.<br>";
}
$file_ext = preg_split("/\./",$filename1); // aquí no tengo claro lo que hace xD
$allowed_ext = preg_split("/\,/",$allowed_ext); // ídem, algo con las extensiones
foreach($allowed_ext as $ext){
if($ext==$file_ext[1]) $match = "1"; // Permite el archivo
}
// Extensión no permitida
if(!$match){
echo $error .= "- Este tipo de archivo no está permitido: $filename1<br>";
}
if($error){
echo "Se ha producido el siguiente error al subir el archivo:<br> $error"; // Muestra los errores
}else{
if(move_uploaded_file($_FILES['foto_rostro']['tmp_name'], $folder.$filename1)){ // Finalmente sube el archivo
echo "<b>$filename1</b> se ha subido correctamente!"; //el mensaje que saldra cuando el archivo este subido
}else{
echo "Error! Puede que el tamaño supere el máximo permitido por el servidor. Inténtelo de nuevo."; // Otro error
}
}
// Configuración up2
$folder = "img_casting/"; // Carpeta a la que queremos subir los archivos
$maxlimit = 10000000; // Máximo límite de tamaño (en bits)
$allowed_ext = "png,jpg"; // Extensiones permitidas (usad una coma para separarlas)
$overwrite = "no"; // Permitir sobreescritura? (yes/no)
$match = "";
$filesize = $_FILES['foto_cuerpo']['size']; // toma el tamaño del archivo
$filename2 = strtolower($_FILES['foto_cuerpo']['name']); // toma el nombre del archivo y lo pasa a minúsculas
if(!$filename2 || $filename2==""){ // mira si no se ha seleccionado ningún archivo
echo $error = "- Ningún archivo selecccionado para subir.<br>";
}elseif(file_exists($folder.$filename2) && $overwrite=="no"){ // comprueba si el archivo existe ya
echo $error = "- El archivo <b>$filename2</b> ya existe<br>";
}
// comprobar tamaño de archivo
if($filesize < 1){ // el archivo está vacío
echo $error .= "- Archivo vacío.<br>";
}elseif($filesize > $maxlimit){ // el archivo supera el máximo
echo $error .= "- Este archivo supera el máximo tamaño permitido.<br>";
}
$file_ext = preg_split("/\./",$filename2); // aquí no tengo claro lo que hace xD
$allowed_ext = preg_split("/\,/",$allowed_ext); // ídem, algo con las extensiones
foreach($allowed_ext as $ext){
if($ext==$file_ext[1]) $match = "1"; // Permite el archivo
}
// Extensión no permitida
if(!$match){
echo $error .= "- Este tipo de archivo no está permitido: $filename2<br>";
}
if($error){
echo "Se ha producido el siguiente error al subir el archivo:<br> $error"; // Muestra los errores
}else{
if(move_uploaded_file($_FILES['foto_cuerpo']['tmp_name'], $folder.$filename2)){ // Finalmente sube el archivo
echo "<b>$filename2</b> se ha subido correctamente!"; //el mensaje que saldra cuando el archivo este subido
}else{
echo "Error! Puede que el tamaño supere el máximo permitido por el servidor. Inténtelo de nuevo."; // Otro error
}
}
$header = 'From: ' . $email . $nombre_rp . " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";
$message = "Representante : " . $nombre_rp . " \r\n" . "Email : " . $email . " \r\n" . "Telefono : " . $telefono . " \r\n";
$message .= "Modelo : " . $nombre . " \r\n" . "Edad : " . $edad . " años de edad " . " \r\n" . "Estatura : " . $estatura . " \r\n" . "Peso : " . $peso . " \r\n" . "Talla : " . $talla . " \r\n" . "Talla Calzado : " . $calzado . " \r\n" . "Color de pelo : " . $pelo . " \r\n" . "Color de ojos : " . $ojos . " \r\n" . "Experiencia : " . $experiencia . " \r\n" . "Comentario experiencia : " . $comentario . " \r\n" . "Foto rostro : http://www.sitioprueba.cl/img_casting/" . $filename1 . " \r\n" . "Foto cuerpo : http://www.sitioprueba.cl/img_casting/" . $filename2 . " \r\n";
$message .= "Sent " . date('d/m/Y', time());
$para = '[email protected]';
$subject = 'Formulario Casting Web';
mail($para, $subject, utf8_decode($message), $header);
?>
eso, espero sus ayudas, y una vez resuelto publicare el codigo corregido para alguien que tambien lo necesite.
Saludos.