Foros del Web » Programando para Internet » PHP »

Ayuda con formulario multiples adjuntos

Estas en el tema de Ayuda con formulario multiples adjuntos en el foro de PHP en Foros del Web. Hola gente tengo un pequeno problema con un formulario...la situacion es la siguiente: tengo un formulario que recopila nombre, email, telefono,blah blah..y que a la ...
  #1 (permalink)  
Antiguo 05/02/2009, 14:35
Avatar de Martinnn  
Fecha de Ingreso: febrero-2009
Mensajes: 8
Antigüedad: 15 años, 2 meses
Puntos: 0
Ayuda con formulario multiples adjuntos

Hola gente tengo un pequeno problema con un formulario...la situacion es la siguiente:


tengo un formulario que recopila nombre, email, telefono,blah blah..y que a la vez tiene la capacidad de adjuntar archivos.. el problema residua en que al momento de enviarlo, en el correo solo recibo los adjuntos y no los demas campos..aqui dejo el codigo html y php

HTML

Código HTML:
<html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>untitled</title>
</head>

<body>
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="maintd">
  <tr>
    <td align="center" valign="top">&nbsp;</td>
  </tr>
  <tr>
    <td align="center" valign="top"><form action="send.php" method="post" name="photo" id="photo" enctype="multipart/form-data">
      <table width="500" border="0" cellspacing="0" cellpadding="6">
        <tr>
          <td width="150" align="right" valign="middle">* First Name:</td>
          <td align="left" valign="middle"><input name="name" type="text" id="name" size="25"></td>
        </tr>
        <tr>
          <td width="150" align="right" valign="middle">* Last Name: </td>
          <td align="left" valign="middle"><input name="lastname" type="text" id="lastname" size="25"></td>
        </tr>
        <tr>
          <td width="150" align="right" valign="middle">* Email:</td>
          <td align="left" valign="middle"><input name="email" type="text" id="email" size="30"></td>
        </tr>
        <tr>
          <td width="150" align="right" valign="middle">Address:</td>
          <td align="left" valign="middle"><input name="add" type="text" id="add" size="35"></td>
        </tr>
        <tr>
          <td width="150" align="right" valign="middle">City:</td>
          <td align="left" valign="middle"><input name="city" type="text" id="city" size="30"></td>
        </tr>
        <tr>
          <td width="150" align="right" valign="middle">State:</td>
          <td align="left" valign="middle"><table width="300" border="0" cellspacing="0" cellpadding="0">
              <tr>
                <td width="50"><input name="state" type="text" id="state" size="2"></td>
                <td width="50" align="right">Zip: &nbsp;&nbsp;&nbsp;</td>
                <td width="200"><input name="zip" type="text" id="zip" size="10"></td>
              </tr>
          </table></td>
        </tr>
        <tr>
          <td width="150" align="right" valign="middle">Phone:</td>
          <td align="left" valign="middle"><input name="phone" type="text" id="phone"></td>
        </tr>
        <tr>
          <td width="150" align="right" valign="middle">Attach File1:</td>
          <td align="left" valign="middle"><input type="file" name="attachFile"></td>
        </tr>
        <tr>
          <td width="150" align="right" valign="middle">Attach File2:</td>
          <td align="left" valign="middle"><input type="file" name="attachFile2"></td>
        </tr>
        <tr>
          <td width="150" align="right" valign="middle">Attach File3:</td>
          <td align="left" valign="middle"><input type="file" name="attachFile3"></td>
        </tr>
        <tr>
          <td width="150" align="right" valign="middle">Attach File4:</td>
          <td align="left" valign="middle"><input type="file" name="attachFile4"></td>
        </tr>
        <tr>
          <td align="right" valign="middle">Attach File5:</td>
          <td align="left" valign="middle"><input type="file" name="attachFile5"></td>
        </tr>
        <tr>
          <td width="150" align="right" valign="top">* Message: </td>
          <td align="left" valign="middle"><textarea name="comments" cols="30" rows="7" id="comments"></textarea></td>
        </tr>
        <tr>
          <td align="right" valign="middle">&nbsp;</td>
          <td align="left" valign="middle"><input type="reset" name="Reset" value="Clear">
              <input type="submit" name="Submit2" value="Submit" onClick="return CheckData2()"></td>
        </tr>
      </table>
    </form></td>
  </tr>
</table>
</body>
</html> 

y el PHP

Código PHP:
<?php
$to 
"[email protected]";
$subject"Request For Photo Session";
$todayis date("l, F j, Y, g:i a") ;
$message "
Date ------------ $todayis
Name ------------ $name
Last Name ------- $lastname
Email ----------- $email
Address --------- $add
City ------------ $city
State ----------- $state
Zip ------------- $zip
Phone ----------- $phone
Message --------- $comments
"
;

  
$mime_boundary="==Multipart_Boundary_x".md5(mt_rand())."x";

          
$headers "From: $email\r\n" .
          
"MIME-Version: 1.0\r\n" .
             
"Content-Type: multipart/mixed;\r\n" .
             
" boundary=\"{$mime_boundary}\"";

          
$message "This is a multi-part message in MIME format.\n\n" .
             
"--{$mime_boundary}\n" .
             
"Content-Type: text/plain; charset=\"iso-8859-1\"\n" .
             
"Content-Transfer-Encoding: 7bit\n\n" .
          
$message "\n\n";

          foreach(
$_FILES as $userfile)
          {
             
$tmp_name $userfile['tmp_name'];
             
$type $userfile['type'];
             
$name $userfile['name'];
             
$size $userfile['size'];

             if (
file_exists($tmp_name))
             {
                if(
is_uploaded_file($tmp_name))
                {
                   
$file fopen($tmp_name,'rb');

                   
$data fread($file,filesize($tmp_name));

                   
fclose($file);


                   
$data chunk_split(base64_encode($data));
                }

                
$message .= "--{$mime_boundary}\n" .
                   
"Content-Type: {$type};\n" .
                   
" name=\"{$name}\"\n" .
                   
"Content-Disposition: attachment;\n" .
                   
" filename=\"{$fileatt_name}\"\n" .
                   
"Content-Transfer-Encoding: base64\n\n" .
                
$data "\n\n";
             }
          }

          
$message.="--{$mime_boundary}--\n";

if (
mail($to$subject$message$headers))
    {
?>
<script language="javascript" type="text/javascript">
<!--

    alert("Your Mail has been sent Successfully!");

    document.location = "index.html";

-->
</script>
<?
    
}

    else
    {
?>
<script language="javascript" type="text/javascript">
<!--

    alert("Your Mail has not been sent due to an ERROR. Please try again.");

    document.location = "index.html";

-->
</script>
<?
    
}
?>

Gracias!!!

habra por ahi algo como esto pero con los campos tradicionales nombre, telefono, ciudad, etc:
digitalek<dot>com/gmail
  #2 (permalink)  
Antiguo 05/02/2009, 14:43
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Ayuda con formulario multiples adjuntos

Hola Martinnn,

Revisa este link: http://www.php.net/variables.external.

Saludos
  #3 (permalink)  
Antiguo 05/02/2009, 14:43
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Ayuda con formulario multiples adjuntos

En el foro de javascript encuentras tu solucion o tambien en los APORTES de php
  #4 (permalink)  
Antiguo 05/02/2009, 14:45
Avatar de Tokkara  
Fecha de Ingreso: junio-2008
Mensajes: 131
Antigüedad: 15 años, 10 meses
Puntos: 5
Respuesta: Ayuda con formulario multiples adjuntos

No estoy muy puesto en el envio de e-mails a traves de PHP. Pero asi a primera vista te podría decir que este código solo te funcionaría en un servidor que tenga "register_globals" en ON.

Código PHP:
Ver original
  1. $message = "
  2. Date ------------ ".$_POST["todayis"]."
  3. Name ------------ ".$_POST["name"]."
  4. Last Name ------- ".$_POST["lastname"]."
  5. Email ----------- ".$_POST["email"]."
  6. Address --------- ".$_POST["add"]."
  7. City ------------ ".$_POST["city"]."
  8. State ----------- ".$_POST["state"]."
  9. Zip ------------- ".$_POST["zip"]."
  10. Phone ----------- ".$_POST["phone"]."
  11. Message ---------".$_POST["comments"]."
  12. ";

Quizas sea eso
__________________
Revolucionario controlador de plantillas para php
www.simphple.com
  #5 (permalink)  
Antiguo 05/02/2009, 15:44
Avatar de Martinnn  
Fecha de Ingreso: febrero-2009
Mensajes: 8
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Ayuda con formulario multiples adjuntos

Gracias a todos por responder,, busque por los foros de JAVA Y PHP y la verdad no encontre algo similar, tal vez me hace falta buscar un poco mas,, lo hare..

respecto a la otra opcion de "register_globals", checare eso...
  #6 (permalink)  
Antiguo 05/02/2009, 19:19
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Respuesta: Ayuda con formulario multiples adjuntos

Martinnn:

Cita:
$message = "
Date ------------ $todayis
Name ------------ $name
Last Name ------- $lastname
Email ----------- $email
Address --------- $add
City ------------ $city
State ----------- $state
Zip ------------- $zip
Phone ----------- $phone
Message --------- $comments
";
Este supuestamente es el mensaje, pero...
mas abajo lo SOBREESCRIBES, eliminado el primero.

Cita:
$message = "This is a multi-part message in MIME format.\n\n" .
"--{$mime_boundary}\n" .
"Content-Type: text/plain; charset=\"iso-8859-1\"\n" .
"Content-Transfer-Encoding: 7bit\n\n" .
$message . "\n\n";
Y hacia abajo continua .=$message

Cambia el nombre del primero y ponle $mensaje
y lo pones dentro del segundo como $mensaje
y creo todo te saldra bien.

Saludos
Y espero te ayude
Franco

P.S. La proxima vez te recomiendo que pongas en varios puntos del codigo
echo "$message";
para que entiendas que esta pasando.
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 01:36.