Foros del Web » Programando para Internet » PHP »

Formulario de contacto php

Estas en el tema de Formulario de contacto php en el foro de PHP en Foros del Web. Hola. Alguien me puede ayudar...?Quiero colocar un formulario de contacto con adjunto de archivos multiples en mi web...pero no cosigo configurar el archivo enviar.php...No entiendo ...
  #1 (permalink)  
Antiguo 14/01/2008, 10:25
 
Fecha de Ingreso: enero-2008
Mensajes: 3
Antigüedad: 16 años, 3 meses
Puntos: 0
Formulario de contacto php

Hola. Alguien me puede ayudar...?Quiero colocar un formulario de contacto con adjunto de archivos multiples en mi web...pero no cosigo configurar el archivo enviar.php...No entiendo mucho de eso...y como el tutorial no me lo pone muy facil...pues no hay manera...El script lo he sacado de http://www.buayacorp.com/archivos/enviar-o-subir-multiples-archivos-adjuntos-al-estilo-gmail
Eso es lo que he echo yo:
El archivo formulario.html:
<html>

<head>
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Para</title>
<script type="text/javascript">
var numero = 0;

// Funciones comunes
c= function (tag) { // Crea un elemento
return document.createElement(tag);
}
d = function (id) { // Retorna un elemento en base al id
return document.getElementById(id);
}
e = function (evt) { // Retorna el evento
return (!evt) ? event : evt;
}
f = function (evt) { // Retorna el objeto que genera el evento
return evt.srcElement ? evt.srcElement : evt.target;
}

addField = function () {
container = d('files');

span = c('SPAN');
span.className = 'file';
span.id = 'file' + (++numero);

field = c('INPUT');
field.name = 'archivos[]';
field.type = 'file';

a = c('A');
a.name = span.id;
a.href = '#';
a.onclick = removeField;
a.innerHTML = 'Quitar';

span.appendChild(field);
span.appendChild(a);
container.appendChild(span);
}
removeField = function (evt) {
lnk = f(e(evt));
span = d(lnk.name);
span.parentNode.removeChild(span);
}
</script>
</head>

<body>

<form name="frm" id="frm" action="enviar.php" method="post" enctype="multipart/form-data">
<dl>

<dt><label for="to" accesskey="1">Para</label></dt>
<dd><input type="text" name="to" id="to" size="60" /></dd>

<dt><label for="from" accesskey="2">De</label></dt>
<dd><input type="text" name="from" id="from" size="60" /></dd>

<dt><label for="sbj" accesskey="3">Asunto</label></dt>
<dd><input type="text" name="sbj" id="sbj" size="60" /></dd>

<dt><b><font face="Verdana"><label for="msg" accesskey="4">Mensaje</label></font></b></dt>

<dd><textarea id="msg" name="msg" rows="7" cols="45"></textarea></dd>

<dt><b><font face="Verdana"><label>Archivos Adjuntos:</label> <a href="#" onclick="addField()" accesskey="5">Añadir Archivo</a></font></b></dt>
<dd><div id="files"></div></dd>
<dd><input type="submit" value="Enviar" id="postback" name="postback" accesskey="6" /></dd>
</dl>
</form></body>

</html>
El arvivo enviar.php:
<?php
include_once('class.phpmailer.php');
// Indica si los datos provienen del formulario
$postback=isset($_POST['postback']) ? true : false;

if ($postback) {
extract($_POST);
$mail = new phpmailer ();
$mail -> From = $from;
$mail -> FromName = "BuayaCorp"; # Puede obtenerse del formulario, por facilidad se hace de esta manera
$mail -> AddAddress = ($to)"[email protected]";
$mail -> Subject = $sbj;
$mail -> Body = $msg;
$mail -> IsHTML (true);
$archivos = '';
$msg = "Mensaje Enviado";

if (isset ($_FILES["archivos"])) {
$msg .= "<ul>";
foreach ($_FILES["archivos"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["archivos"]["tmp_name"][$key];
$name = $_FILES["archivos"]["name"][$key];
$msg .= "<li>$name</li>";
$name = uniqid('bc') . '_' . $name; # Generar un nombre �nico para el archivo
$mail -> AddAttachment ($tmp_name, $name);
/*
Si se van a guardar los archivos en un directorio, deber�an descomentarse
las siguientes l�neas, si se van a guardar los nombres
de los archivos en una base de datos, aqu� deber�a realizarse algo...

move_uploaded_file($tmp_name, "ruta/directorio/$name"); # Guardar el archivo en una ubicaci�n, debe tener los permisos necesarios
*/
} #if
} # foreach
$msg .= '</ul>';
} # if
if (!$mail -> Send ()){
$msg = "No se pudo enviar el email";
}
}
?>
He subido los archivos en el servidor y no funciona...claro...Me sale el siquente anuncio de error:
From = $from; $mail -> FromName = "BuayaCorp"; # Puede obtenerse del formulario, por facilidad se hace de esta manera $mail -> AddAddress = "[email protected]"; $mail -> Subject = $sbj; $mail -> Body = $msg; $mail -> IsHTML (true); $archivos = ''; $msg = "Mensaje Enviado"; if (isset ($_FILES["archivos"])) { $msg .= "

* "; foreach ($_FILES["archivos"]["error"] as $key => $error) { if ($error == UPLOAD_ERR_OK) { $tmp_name = $_FILES["archivos"]["tmp_name"][$key]; $name = $_FILES["archivos"]["name"][$key]; $msg .= "$name
"; $name = uniqid('bc') . '_' . $name; # Generar un nombre �nico para el archivo $mail -> AddAttachment ($tmp_name, $name); /* Si se van a guardar los archivos en un directorio, deber�an descomentarse las siguientes l�neas, si se van a guardar los nombres de los archivos en una base de datos, aqu� deber�a realizarse algo... move_uploaded_file($tmp_name, "ruta/directorio/$name"); # Guardar el archivo en una ubicaci�n, debe tener los permisos necesarios */ } #if } # foreach $msg .= '

'; } # if if (!$mail -> Send ()){ $msg = "No se pudo enviar el email"; } } ?>
Con lo poco que entiendo yo me doy cuenta que el archivo enviar.php no esta configurado correcto...De echo,no se como configurarlo...Tengo que decir que en otra pagina he colocado un formulario de contacto con un solo archivo adjunto y me funciona perfecto...pero en el script ponia muy claro como tengo que configurar el archivo .php.
Pues eso...POR FAVOR...si alguie me puede ayudar con la configuracion del enviar.php(supongo que alli esta el problema)...tengo variaos dias dandole vueltas al asunto y ya no puedo mas...pronto tirare el ordenador por la ventana...
Mi correo es [email protected]
MUCHISIMAS GRACIAS...!!!

Última edición por fotodirectorio; 14/01/2008 a las 12:47
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 21:58.