Problema con form y adjuntar archivo

Iniciado por erikcatala, 6 Septiembre 2015, 21:47 PM

0 Miembros y 1 Visitante están viendo este tema.

erikcatala

Tengo un form que me funciona a la perfecion, pero queria añadir una opcion para adjuntar un archivo pero no hay forma, nunca lo consigo. Esto es lo que tengo...

HTML:
Código (html4strict) [Seleccionar]
<section id="main" class="container 75%">
<header>
<h2>Enviar text</h2>
</header>
<div class="box">
<form action="archius.php" method="post">
<div class="row uniform 50%">
<div class="6u 12u(mobilep)">
<input type="text" name="name" id="name" value="" placeholder="Nom i cognom" required/>
</div>
<div class="6u 12u(mobilep)">
<input type="email" name="email" id="email" value="" placeholder="Correu electrònic" required/>
</div>
</div>
<div class="row uniform 50%">
<div class="12u">
<input type="text" name="subject" id="subject" value="" placeholder="Raó" required/>
</div>
</div>
<div class="row uniform 50%">
<div class="12u">
<textarea name="message" id="message" placeholder="Escriu el teu missatge" rows="6" required></textarea>
</div>
</div>
<div class="row uniform">
<div class="12u">
<ul class="actions align-center">
<li><input id="file" type="file" name="file" value="Adjuntar ficher" required/></li>
</ul>
</div>
</div>
<div class="row uniform">
<div class="12u">
<ul class="actions align-center">
<li><input id="submit" type="submit" name="submit" value="Enviar" /></li>
</ul>
</div>
</div>
</form>
</div>
</section>


PHP:
Código (php) [Seleccionar]
<?php
$name 
$_POST["name"];
$email $_POST["email"];
$message $_POST["message"];
$file $_POST["file"];
$subject $_POST["subject"];
$para "asdasd@asdasd.com";
$titulo "Acadèmia";
$header "De: " $email;
$msjCorreo "Nom: $name\nCorreu: $email\nRaó: $subject\nArchiu: $file\n\nMissatge:\n$message";

if (
$_POST["submit"]) {
if (
mail($para$titulo$msjCorreo$header)) {
echo 
'<script language="javascript">
alert("Misatge enviat.");
window.location.href = "/archius.html";
</script>'
;
} else {
echo 
"Error.";
}
}
?>



Por cierto, no se porque algunas letras me salen raras en el correo, acentos y eso... Es por utf-8 como lo podria arreglar?

#!drvy

Lo estas haciendo muy mal. Un archivo ('type=file') NO se trata como un $_POST ni mucho menos. Tendrías que parsear el archivo, convertirlo a base64 y enviarlo de una forma completamente diferente.

Si no te quieres complicar, te recomiendo que utilices alguna librería ya hecha para esto como lo es
https://github.com/PHPMailer/PHPMailer

Tiene buena documentación y es bastante fácil de utilizar.

Saludos