Foros del Web » Programando para Internet » PHP »

Formulario y php

Estas en el tema de Formulario y php en el foro de PHP en Foros del Web. Hola, Estoy trabajando con un formulario que consta de 2 archivos uno html (en el que está el formulario) y otro php (contiene el código ...
  #1 (permalink)  
Antiguo 11/05/2006, 21:01
 
Fecha de Ingreso: diciembre-2003
Mensajes: 49
Antigüedad: 20 años, 3 meses
Puntos: 0
Formulario y php

Hola,

Estoy trabajando con un formulario que consta de 2 archivos uno html (en el que está el formulario) y otro php (contiene el código necesario para funcionar).

Tengo creados los campos básicos, nombre, email, comentarios, etc... y funciona correctamente, pero lo que quiero ahora es añadir un campo en el que el usuario adjunte un archivo (.doc) y lo envie al correo.

En el archivo html tengo creado el campo de adjuntar archivo:

Código HTML:
<form name="form" method="post" action="/contactform/contactscript.php">
 <input type="file" name="file" />
</form> 
Lo que quiero es saber el código php que he de poner en el archivo .php para que lo envíe correctamente al correo de destino.

Este es el código que tengo en el contactscript.php:

Código PHP:
<?php
    
// VALUES FROM THE FORM
    
$name        $_POST['name'];
    
$email        $_POST['email'];
    
$message    $_POST['msg'];
    
$apellidos    $_POST['apellidos'];
    
$tlf        $_POST['tlf'];
    
$direccion    $_POST['direccion'];

    
// ERROR & SECURITY CHECKS
    
    
if ( ( !$name ) ||
         ( 
strlen($name) > 100 ) ||
         ( 
preg_match("/[:=@\<\>]/"$name) ) 
       )
    { 
        print 
"Por favor, rellene el campo Nombre"
        exit; 
    
    } 
    
    if ( ( !
$apellidos ) ||
         ( 
strlen($apellidos) > 100 ) ||
         ( 
preg_match("/[:=@\<\>]/"$apellidos) ) 
       )
    { 
        print 
"Por favor, rellene el campo Apellidos"
        exit; 
    
    } 
    
    if ( ( !
$tlf ) ||
         ( 
strlen($tlf) > 100 ) ||
         ( 
preg_match("/[:=@\<\>]/"$tlf) ) 
       )
    { 
        print 
"Por favor, rellene el campo Teléfono"
        exit; 
    
    } 
    
    if ( ( !
$direccion ) ||
         ( 
strlen($direccion) > 100 ) ||
         ( 
preg_match("/[:=@\<\>]/"$direccion) ) 
       )
    { 
        print 
"Por favor, rellene el campo Dirección"
        exit; 
    
    } 
    
    if ( 
preg_match("#cc:#i"$message$matches) )
    { 
        print 
"Error: Found Invalid Header Field"
        exit; 
    } 
    
    
    
// CREATE THE EMAIL
    
$headers    "Content-Type: text/plain; charset=iso-8859-1\n";
    
$headers    .= "From: $name <$email>\n";
    
$recipient    "[email protected]";
    
$subject    "Contacto o Solicitud de servicio - Cuidado del Hogar";
    
$message    wordwrap($message1024);

    
// SEND THE EMAIL TO YOU
    //mail($recipient, $subject, stripslashes($msg), $headers);
    
mail($recipient$subject"\nNombre:".$name."\nApellidos:".$apellidos."\nTeléfono:".$tlf."\nDirección:".$direccion."\nE-mail:".$email."\nComentarios/Servicio que desea contratar:".stripslashes($msg), $headers); 

 
// the mail() function sends the message to you


    // REDIRECT TO THE THANKS PAGE
    
header("location: http://www.cuidadodelhogar.es/index.php?option=enviado");
    
?>
He buscado por google pero no me he aclarado mucho.
¿A ver si podeis ayudarme...

Muchas gracias
  #2 (permalink)  
Antiguo 11/05/2006, 21:29
 
Fecha de Ingreso: mayo-2005
Mensajes: 6
Antigüedad: 18 años, 10 meses
Puntos: 0
ayuda urgente

Hola vi tu duda pero yo tambien hay cosas que no entiendo, yo tambien hice un formulario como vos pero sin la opcion de cargar un archivo .doc, yo estoy buscando algun codigo que cuando envie un formulario desde la web al usuario le llegue un mail diciendo "a la brevedad sera respondida su consulta...", que debo colocar en el archivo php para que haga eso? se puede?, espero puedas ayudarme.
mi mail es [email protected] escribanme por favor por que no encuentro nada respecto a este tema.
Desde ya les agradezco.
  #3 (permalink)  
Antiguo 11/05/2006, 21:33
 
Fecha de Ingreso: diciembre-2003
Mensajes: 49
Antigüedad: 20 años, 3 meses
Puntos: 0
Lo siento amigo, no te puedo ayudar pues mi formulario ya venía preinstalado y solo tuve que modificar un poco de código viendo unos tutoriales. Por tanto no tengo mucha idea de php. Lo siento. Un saludo
  #4 (permalink)  
Antiguo 11/05/2006, 22:58
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 2 meses
Puntos: 3
Psyque lo del envio del mail... lo puedes hacer con la funcion mail de PHP... has una busqueda en este foro sobre mail.. por q hay muchas respuestas sobre ese tema.

Última edición por B**; 11/05/2006 a las 23:04
  #5 (permalink)  
Antiguo 11/05/2006, 23:02
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 2 meses
Puntos: 3
Raulo di q error te sale.. para asi darte una ayuda si puedo.
  #6 (permalink)  
Antiguo 11/05/2006, 23:18
 
Fecha de Ingreso: diciembre-2003
Mensajes: 49
Antigüedad: 20 años, 3 meses
Puntos: 0
Hola B**

No me sale ningún error porque no tengo código php que le haga funcionar, eso es precisamente lo que quiero:

Mira te pongo el código del formulario por un lado y el php por otro:

Código HTML:
<form action="/contactform/contactscript.php" method="post" enctype="multipart/form-data" name="form">
        <table width="100%" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td align="left" valign="top" class="Estilo3"><p><span class="Estilo16"> Solicitud de servicio</span></p></td>
          </tr>
        </table>
        <table width="100%" border="0" cellpadding="0" cellspacing="0">
          <tr>
            <td valign="top"><span class="Estilo4"><strong>Nombre*</strong><br />
                  <input name="name" type="text" class="Estilo7" id="name" size="20" maxlength="100" />
            </span></td>
            <td valign="top"><span class="Estilo4"><strong>Apellidos*</strong><br />
                  <input name="apellidos" type="text" class="Estilo7" id="apellidos" size="20" maxlength="100" />
            </span></td>
            <td><span class="Estilo4"><strong>Tel&eacute;fono* </strong><br />
                  <input name="tlf" type="text" class="Estilo7" id="tlf" size="20" maxlength="100" />
            </span></td>
          </tr>
          <tr>
            <td colspan="2" valign="top"><span class="Estilo4"><strong>Direcci&oacute;n*</strong><br />
                  <input name="direccion" type="text" class="Estilo7" id="direccion" size="48" maxlength="100" />
            </span></td>
            <td><span class="Estilo4"><strong>Su Email </strong><br />
                  <input name="email" type="text" class="Estilo7" id="email" size="20" maxlength="100" />
            </span></td>
          </tr>
        </table>
        <table width="100%" border="0" cellpadding="0" cellspacing="0">
          <tr>
            <td width="307" align="left" valign="bottom" class="Estilo3"><strong class="Estilo4">&iquest;Qu&eacute; servicio desea contratar?</strong><br />
                <textarea name="msg" cols="55" rows="4" class="Estilo7" id="msg"></textarea></td>
            <td width="89" align="left" valign="bottom" class="Estilo3"><div align="center">
                <input name="Submit" type="submit" class="Estilo7" id="Submit" value="    Enviar    " />
            </div></td>
          </tr>
        </table>
        <p>Curriculum
          <input type="file" name="file" />
        </p>
      </form> 
Código php dentro del archivo contactscript.php
Código PHP:
<?php 
        
    
// VALUES FROM THE FORM
    
$name        $_POST['name'];
    
$email        $_POST['email'];
    
$message    $_POST['msg'];
    
$apellidos    $_POST['apellidos'];
    
$tlf        $_POST['tlf'];
    
$direccion    $_POST['direccion'];

    
// ERROR & SECURITY CHECKS
    
    
if ( ( !$name ) ||
         ( 
strlen($name) > 100 ) ||
         ( 
preg_match("/[:=@\<\>]/"$name) ) 
       )
    { 
        print 
"Por favor, rellene el campo Nombre"
        exit; 
    
    } 
    
    if ( ( !
$apellidos ) ||
         ( 
strlen($apellidos) > 100 ) ||
         ( 
preg_match("/[:=@\<\>]/"$apellidos) ) 
       )
    { 
        print 
"Por favor, rellene el campo Apellidos"
        exit; 
    
    } 
    
    if ( ( !
$tlf ) ||
         ( 
strlen($tlf) > 100 ) ||
         ( 
preg_match("/[:=@\<\>]/"$tlf) ) 
       )
    { 
        print 
"Por favor, rellene el campo Teléfono"
        exit; 
    
    } 
    
    if ( ( !
$direccion ) ||
         ( 
strlen($direccion) > 100 ) ||
         ( 
preg_match("/[:=@\<\>]/"$direccion) ) 
       )
    { 
        print 
"Por favor, rellene el campo Dirección"
        exit; 
    
    } 
    
    if ( 
preg_match("#cc:#i"$message$matches) )
    { 
        print 
"Error: Found Invalid Header Field"
        exit; 
    } 
    
    
    
// CREATE THE EMAIL
    
$headers "Content-Type: text/plain; charset=iso-8859-1\n";
    
$headers "From: $name <$email>\n";
    
$recipient "[email protected]";
    
$subject "Contacto o Solicitud de servicio - Cuidado del Hogar";
    
$message wordwrap($message1024);

    
// SEND THE EMAIL TO YOU
    //mail($recipient, $subject, stripslashes($msg), $headers);
    
mail($recipient$subject"\nNombre:".$name."\nApellidos:".$apellidos."\nTeléfono:".$tlf."\nDirección:".$direccion."\nE-mail:".$email."\nComentarios/Servicio que desea contratar:".stripslashes($msg), $headers); 

 
// the mail() function sends the message to you


    // REDIRECT TO THE THANKS PAGE
    
header("location: http://www.cuidadodelhogar.es/index.php?option=enviado");
    
?>
El campo de adjuntar archivo es el <input type="file" name="file" /> que está al final del código y ese es el que quiero que funcione.

A ver si me puedes ayudar amigo
  #7 (permalink)  
Antiguo 11/05/2006, 23:49
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 2 meses
Puntos: 3
Pues yo he hecho programitas pero solo mandan correo sencillo sin adjuntar archivos... pero para hacer eso, puedes usar phpmailer.. dale una buscadita de eso.. es todo lo q t puedo ayudar...por q nunca lo he hecho :S
  #8 (permalink)  
Antiguo 12/05/2006, 07:32
 
Fecha de Ingreso: diciembre-2003
Mensajes: 49
Antigüedad: 20 años, 3 meses
Puntos: 0
Gracias por la información, buscaré ese programa a ver que tal...
saludos
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:55.