Foros del Web » Programando para Internet » PHP »

Ayuda

Estas en el tema de Ayuda en el foro de PHP en Foros del Web. Necesito que en el formulario que tengo además de los adjuntos,el usuario tenga que llenar mas datos ,solo necesito que me digan que variable incluyo, ...
  #1 (permalink)  
Antiguo 12/10/2005, 17:11
 
Fecha de Ingreso: septiembre-2005
Mensajes: 5
Antigüedad: 12 años, 2 meses
Puntos: 0
Exclamación Ayuda

Necesito que en el formulario que tengo además de los adjuntos,el usuario tenga que llenar mas datos ,solo necesito que me digan que variable incluyo, por que el problema es que el form utiliza solo msg sbj y body como variables y no me permite enviar nada mas.

este es el codigo
Código:
<?php
     
    include_once('class.phpmailer.php');
    
    $postback = isset($_POST['postback']) ? true : false;
    
    if ($postback) {
        extract($_POST);
        $mail = new phpmailer (); 
        $mail -> From = $from;
        $mail -> FromName = "WebMaster/K-MARKET";
        $mail -> AddAddress ($to);
        $mail -> Subject = $sbj;
		$mail -> Ref= $ref;
        $mail -> Body = $msg;
        $mail -> IsHTML (true);
        $archivos = '';
        $msg = "Mensaje Enviado";
        
           if (isset ($_FILES["archivos"])) { # Si es que se subió algún archivo
            $msg .= "<ul>";
            foreach ($_FILES["archivos"]["error"] as $key => $error) { # Iterar sobre la colección de archivos
                if ($error == UPLOAD_ERR_OK) { // Si no hay error
                    $tmp_name = $_FILES["archivos"]["tmp_name"][$key];
                    $name = $_FILES["archivos"]["name"][$key];
                    $msg .= "<li>$name</li>";
                    $name = uniqid('bc') . '_' . $name; 

                    $mail -> AddAttachment ($tmp_name, $name); # Añade el archivo adjunto
                   
                } #if
               } # foreach
            $msg .= '</ul>';
        } # if
        if (!$mail -> Send ()){
            $msg = "No se pudo enviar el email";
        }
    }
?>
  #2 (permalink)  
Antiguo 13/10/2005, 06:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Deberías adjuntar el código de tu formulario HTML que usas. Y el resto del código .. por qué ahí se vé que se va componiendo una variable $msg pero no sé con que fín lo hace (para mostrar el resultado del envio?) ..por qué antes ya define el cuerpo del mensaje del e-mail en:

$mail -> Body = $msg;

supongo que vendrá ese $msg del formulario HTML que uses tipo:
<input type="text" name="msg" .....>

En principio tus "variables" de tu formulario que añadas las tienes que tomar en ese script PHP y componer tu "body" del mensaje como gustes.

Concretamente .. deberías concatenar tu resto de variables con $msg ..
$mail -> Body = $msg;

Un saludo,
  #3 (permalink)  
Antiguo 21/10/2005, 13:34
 
Fecha de Ingreso: septiembre-2005
Mensajes: 5
Antigüedad: 12 años, 2 meses
Puntos: 0
Bueno Cluster el form que tengo es el siguiente:

Cita:
<FORM NAME="frm" ID="frm" ACTION="" METHOD="post" ENCTYPE="multipart/form-data"><?php if (isset($msg)) echo $msg;?>
<br> <LABEL FOR="to" ACCESSKEY="1"></LABEL> <INPUT NAME="to" TYPE="hidden" ID="to" VALUE="[email protected]" SIZE="60" CLASS="CLASIFICADOS" />
<TABLE WIDTH="97%" BORDER="0" CELLSPACING="0" CELLPADDING="5"> <TR> <TD WIDTH="71" rowspan="2" valign="top" CLASS="CLASIFICADOS">Nombre
del dominio:</TD><TD WIDTH="217"> <INPUT NAME="from" TYPE="text" class="CLASIFICADOS" ID="from" value="www.k-market.com.co/" SIZE="20" maxlength="50">
</TD></TR> <TR> <TD class="explicacion">Ej: www.k-market.com.co/su_subdominio
</TD></TR> <TR> <TD rowspan="2" valign="top"><LABEL FOR="sbj" ACCESSKEY="3"><SPAN CLASS="CLASIFICADOS">Referencia
y color de la plantilla:</SPAN></LABEL></TD><TD><input name="sbj" type="text" class="CLASIFICADOS" id="sbj" value="(referencia) (color)" size="20" maxlength="50"></TD></TR>
<TR> <TD class="explicacion">Ej: DRK001, Azul </TD></TR> </TABLE><LABEL FOR="from" ACCESSKEY="2"></LABEL>
<DL><DT CLASS="Ctexto"><LABEL FOR="sbj" ACCESSKEY="3"></LABEL></DT><DT><LABEL FOR="msg" ACCESSKEY="4" CLASS="CLASIFICADOS">Links
o Hiperv&iacute;nculos a utilizar y comentarios:<br> <span class="explicacion">Coloque
aqu&iacute; los hiperv&iacute;nculos que desea utilizar</span> <br> </LABEL> <LABEL FOR="msg" ACCESSKEY="4"></LABEL></DT><DD CLASS="Ctexto"><TEXTAREA NAME="msg" COLS="40" ROWS="7" class="CLASIFICADOS" ID="msg">Hipervínculos
que necesito: home, productos, noticias, contacto. (su comentario)</TEXTAREA>
</DD><DT CLASS="Ctexto"><LABEL></LABEL></DT><DD><TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="0" HEIGHT="30"><TR><TD WIDTH="308"><LABEL CLASS="CLASIFICADOS"></LABEL>
<table width="95%" border="0" cellspacing="0" cellpadding="10" class="CLASIFICADOS">
<tr> <td width="257"><div align="justify">Para las im&aacute;genes y el texto
que se deseen incluir en el sitio favor enviarlos como <b>Archivos Adjuntos, </b>Las
im&aacute;genes deben ir en formato .JPG o .GIF y tama&ntilde;o inferior a 999
kb; los textos enviarlos ordenados por lo que mostrar&aacute; cada link en formato.DOC
(Word):</div></td></tr> </table><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> <P><LABEL CLASS="CLASIFICADOS"></LABEL> <span class="CLASIFICADOS"><strong>Archivos
Adjuntos: </strong></span><A HREF="#" class="CLASIFICADOS" ACCESSKEY="5" ONCLICK="addField()">A&ntilde;adir
un archivo adjunto</A></P><DL><DD><DIV ID="files"></DIV></DD><DD><INPUT TYPE="submit" VALUE="Enviar" ID="postback" NAME="postback" ACCESSKEY="6" /></DD></DL></TD></TR></TABLE></DD></DL></FORM>
te agradesco me ayudes, ya que por mas que cambio Body y lo enlazo con los demas campos de texto no consigo que me llegue la información.
  #4 (permalink)  
Antiguo 21/10/2005, 14:18
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pero .. para ir concretando:

El archivo te llega al servidor? .. lo has comprobado?

Código PHP:
echo "<pre>";
print_r($_FILES);
echo 
"</pre>"
El resto de variables .. deberías tomarlas por el método que llegan .. POST en tu caso:

por ejemplo
$mail -> AddAddress ($_POST['to']);

No usar a ser posible el extract() ....

E $key del "$tmp_name = $_FILES["archivos"]["tmp_name"][$key];" .. no veo de donde sale (tal vez esté en el "enjambre de HTML" que tienes ahí .. pero no consigo verla .. intenta por tu bien colocar el código HTML que sea "legible" .. sino te costará ver problemas y nos costará a los que pretenden ayudarte a verlo también).


Un saludo,
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 05:42.