Foros del Web » Programando para Internet » PHP »

Poner fichero adjunto en un formulario. ¿Cómo?

Estas en el tema de Poner fichero adjunto en un formulario. ¿Cómo? en el foro de PHP en Foros del Web. Hola a todos, Soy muy novato en esto y he echo cien mil pruebas y no hay manera, me he leído una y otra vez ...
  #1 (permalink)  
Antiguo 29/05/2007, 09:55
Avatar de escoti  
Fecha de Ingreso: enero-2005
Mensajes: 35
Antigüedad: 19 años, 3 meses
Puntos: 0
Poner fichero adjunto en un formulario. ¿Cómo?

Hola a todos,

Soy muy novato en esto y he echo cien mil pruebas y no hay manera, me he leído una y otra vez foros que hablan de ello pero no me sale.

Tengo un formulario y los datos me llegan correctamente pero necesito que me envíen un fichero adjunto y no se como ponerlo, os copio el código para que lo veáis y a ver si me podéis decir que tengo que añadir por favor.

FICHERO FORMULARIO.HTML

<body>
<form action="send.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
<p>Nombre:
<label>
<input type="text" name="textfield" />
</label>
</p>
<p>Telefono:
<label>
<input type="text" name="textfield2" />
</label>
</p>
<p>E-mail:
<label>
<input type="text" name="textfield3" />
</label>
</p>
<p>Adjuntar:
<label>
<input type="file" name="file" />
</label>
</p>
<p>Observaciones:
<label>
<textarea name="textfield4"></textarea>
</label>
</p>
<p>
<label>
<input type="submit" name="send.php" value="Enviar" />
</label>
</p>
</form>
</body>
</html>


FICHERO SEND.PHP

<?php

$nombre = $_POST['Yomismo'];
$mail = $_POST['[email protected]'];
$empresa = $_POST['MiEmpresa'];

$header = 'From: ' . $mail . " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$mensaje = "Este mensaje fue enviado por " . $textfield . ", con telefono " . $textfield2 . " \r\n";
$mensaje .= "Su e-mail es: " . $textfield3 . " \r\n";
$mensaje .= "El fichero adjunto: " . $file . " \r\n";
$mensaje .= "Mensaje: " . $_POST['textfield4'] . " \r\n";
$mensaje .= "Enviado el " . date('d/m/Y', time());

$para = '[email protected]';
$asunto = 'Contacto desde mi web';

mail($para, $asunto, utf8_decode($mensaje), $header);

echo "Mensaje enviado correctamente";
?>
  #2 (permalink)  
Antiguo 29/05/2007, 09:58
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Poner fichero adjunto en un formulario. ¿Cómo?

Prueba con phpmailer, tiene ya metodos para adjuntar archivos.

Saludos.
  #3 (permalink)  
Antiguo 29/05/2007, 11:57
Avatar de escoti  
Fecha de Ingreso: enero-2005
Mensajes: 35
Antigüedad: 19 años, 3 meses
Puntos: 0
Re: Poner fichero adjunto en un formulario. ¿Cómo?

Me he bajado el PHPMailer ese y me he echo una cuenta en HotPOP pero no hay manera de que funcione, no lo entiendo.

Me podéis decir exactamente que lineas de código añado a mis dos ficheros que tengo que os he mostrado? o si tengo que crear mas ficheros que código modifico en ambos?

Por favor, es muy importante.

Gracias.
  #4 (permalink)  
Antiguo 29/05/2007, 12:02
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Poner fichero adjunto en un formulario. ¿Cómo?

Te recomiendo le des una leida a esto:

http://www.programacion.net/php/articulo/phpmailer/

Asi podras aprender a utilizar el phpmailer y asi poder enviar archivos.
  #5 (permalink)  
Antiguo 29/05/2007, 12:17
Avatar de escoti  
Fecha de Ingreso: enero-2005
Mensajes: 35
Antigüedad: 19 años, 3 meses
Puntos: 0
Re: Poner fichero adjunto en un formulario. ¿Cómo?

Gracias, ya lo había leído pero no se cómo integrar eso en la misma página del formulario y del send.php que expongo más arriba.
  #6 (permalink)  
Antiguo 29/05/2007, 12:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Poner fichero adjunto en un formulario. ¿Cómo?

Que problema tienes? El ejemplo de la pagina es bastante claro, te recomiendo lo intentes, vas a tener que cambiar todo el send.php como el ejemplo que viene en la pagina.
  #7 (permalink)  
Antiguo 29/05/2007, 14:18
Avatar de escoti  
Fecha de Ingreso: enero-2005
Mensajes: 35
Antigüedad: 19 años, 3 meses
Puntos: 0
Re: Poner fichero adjunto en un formulario. ¿Cómo?

Perdona, se que estoy siendo un estorbo pero he echo lo que me has dicho y al enviar el formulario con un adjunto, después de esperar bastante rato (no se porque tanto rato al ser un fichero de 7KB para hacer la prueba) me sale lo siguiente:

Problemas enviando correo electrónico a
Language string failed to load: [email protected]

Te copio el código de los 2 archivos:

SEND.PHP

<?

require "includes/class.phpmailer.php";


$mail = new phpmailer();


$mail->PluginDir = "includes/";


$mail->Mailer = "smtp";


$mail->Host = "smtp.hotpop.com";


$mail->SMTPAuth = true;


$mail->Username = "[email protected]";
$mail->Password = "xxxxxx";


$mail->From = "[email protected]";
$mail->FromName = "Mi Nombre";


$mail->Timeout=30;


$mail->AddAddress("[email protected]");


$mail->Subject = "Prueba de phpmailer";
$mail->Body = "<b>Mensaje de prueba mandado con phpmailer en formato html</b>";


$mail->AltBody = "Mensaje de prueba mandado con phpmailer en formato solo texto";


$exito = $mail->Send();


$intentos=1;
while ((!$exito) && ($intentos < 5)) {
sleep(5);

$exito = $mail->Send();
$intentos=$intentos+1;

}


if(!$exito)
{
echo "Problemas enviando correo electrónico a ".$valor;
echo "<br/>".$mail->ErrorInfo;
}
else
{
echo "Mensaje enviado correctamente";
}
?>



FORMULARIO.HTML

<body>
<form action="send.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
<p>Nombre:
<label>
<input type="text" name="textfield" />
</label>
</p>
<p>Telefono:
<label>
<input type="text" name="textfield2" />
</label>
</p>
<p>E-mail:
<label>
<input type="text" name="textfield3" />
</label>
</p>
<p>Adjuntar:
<label>
<input type="file" name="file" />
</label>
</p>
<p>Observaciones:
<label>
<textarea name="textfield4"></textarea>
</label>
</p>
<p>
<label>
<input type="submit" name="send.php" value="Enviar" />
</label>
</p>
</form>
</body>
</html>


Tengo los dos archivos de PHPMailer en la carpeta Includes dentro del FTP.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:33.