Comunidad de diseño web y desarrollo en internet online

Formulario PHP. Ayuda por favor!!

Citar            
MensajeEscrito el 05 Nov 2009 10:15 pm
Hola a todos.

Soy diseñador web y apenas tengo idea de PHP y cosas que van más allá de HTML o CSS.

Mi duda es la siguiente:

Quiero hacer un formulario, y enviarlo sin que salte el outlook. Sé que hay que utilizar PHP y he visto varias opciones. Una de ellas es la siguiente:

<?
if (!$HTTP_POST_VARS){
?>


<form method="post" action="presupuesto.php"><table border="0">
<tr>
<td>Empresa* :</td>
<td class="cajas"><span id="sprytextfield1">
<input type="text" name="empresa" id="empresa" />
<span class="textfieldRequiredMsg">Campo obligatorio</span></span></td>
</tr>
<tr>
<td>Nombre Personal* :</td>
<td class="cajas"><span id="sprytextfield2">
<input type="text" name="nombre" id="nombre" />
<span class="textfieldRequiredMsg">Campo obligatorio</span></span></td>
</tr>
<tr>
<td>Dirección :</td>
<td class="cajas"><span id="sprytextfield3">
<input type="text" name="direccion" id="direccion" />
</span></td>
</tr>
<tr>
<td>Código Postal* :</td>
<td class="cajas"><span id="sprytextfield4">
<input type="text" name="CP" id="CP" />
<span class="textfieldRequiredMsg">Campo obligatorio</span></span></td>
</tr>
<tr>
<td>Localidad/Provincia* :</td>
<td class="cajas"><span id="sprytextfield5">
<input type="text" name="Localidad" id="Localidad" />
<span class="textfieldRequiredMsg">Campo obligatorio</span></span></td>
</tr>
<tr>
<td>Tlfn./Fax :</td>
<td class="cajas"><span id="sprytextfield6">
<input type="text" name="tlfn" id="tlfn" />
</span></td>
</tr>
<tr>
<td>E-mail* :</td>
<td class="cajas"><span id="sprytextfield7">
<input type="text" name="mail" id="mail" />
<span class="textfieldRequiredMsg">Campo obligatorio</span></span></td>
</tr>
<tr>
<td>Servicio Solicitado* :</td>
<td class="cajas"><span id="sprytextarea1">
<textarea name="servicio" cols="10" rows="10" id="servicio"></textarea>
<span class="textareaRequiredMsg">Campo obligatorio</span></span></td>
</tr>
<tr>
<td colspan="2">¿Tiene contratado actualmente un servicio de limpieza?*</td>
</tr>
<tr>
<td colspan="2" class="cajas" id="sino"><span id="spryradio1">
<label id="respuesta">
<input type="radio" name="contratado" value="si" id="contratado_0" />
Sí</label>

<label id="respuesta">
<input type="radio" name="contratado" value="no" id="contratado_1" />
No</label>

<span class="radioRequiredMsg">Campo obligatorio</span></span></td>
</tr>
<tr>
<td><input name="Enviar" type="submit" value="Enviar" id="Enviar" /></td>
<td><input name="Reestablecer" type="reset" value="Reestablecer" /></td>
</tr>
</table>

</form>


<?
}else{
//Estoy recibiendo el formulario, compongo el cuerpo
$cuerpo = "Formulario enviado\n";
$cuerpo .= "Empresa: " . $HTTP_POST_VARS["empresa"] . "\n";
$cuerpo .= "Nombre: " . $HTTP_POST_VARS["nombre"] . "\n";
$cuerpo .= "Direcion: " . $HTTP_POST_VARS["direccion"] . "\n";
$cuerpo .= "Codigo Postal: " . $HTTP_POST_VARS["CP"] . "\n";
$cuerpo .= "Localidad: " . $HTTP_POST_VARS["Localidad"] . "\n";
$cuerpo .= "Telefono: " . $HTTP_POST_VARS["tlfn"] . "\n";
$cuerpo .= "E-mail: " . $HTTP_POST_VARS["mail"] . "\n";
$cuerpo .= "Servicio solicitado: " . $HTTP_POST_VARS["servicio"] . "\n";
$cuerpo .= "Tiene contratado algun servicio?: " . $HTTP_POST_VARS["contratado"] . "\n";



}
?>



Esto lo puse en la página HTML del formulario y está conectada con otra PHP, en el action, que no sé qué tiene que llevar o si simplemente va vacía. No lo sé porque no lo explican en los tutoriales que he visto.

La vez que más cerca he estado de conseguirlo, me ha llegado el mail, con las variables del formulario pero sin el contenido que rellena el usuario.

Os estaría eternamente agradecido si me pudiérais decir qué hacer.

Muchas gracias

Por bohedrius

30 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 Nov 2009 04:22 pm
uii, esta de weba leer todo tu chorizo de codigo, y peor, sin formato, asi ke no lo lei, :zzz:

pero bueno, si dices que ya te llega el correo, pero con las variables vacias, entonce es probable que el metodo $_POST o $_GET que estes usando en tu formulario sea el del problema, asi que dale una revisada, y nos avisas... :wink:

Por smokingwel

16 de clabLevel



 

msie
Citar            
MensajeEscrito el 06 Nov 2009 05:01 pm
jeje entiendo que es demasiado rollo el código. En method tengo puesto post así que no creo que sea ese el problema. Puede ser que tenga que poner target="_self"?

de todas sabes si el script php tengo que ponerlo en la página HTML o en la PHP de action?

Gracias

Por bohedrius

30 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 Nov 2009 05:19 pm
mira, estaria bien que crearas el form en una hoja de HTML, y el de envio en ENVIO.PHP, entonces ya en el boton de enviar del form llamas al PHP,

ya si nada, entonces vas a tener que ver desde donde esta el error, haciendo lo siguiente:

creas el form en un HTML, luego otro PHP de testeo para ver si estan llegando las variables al PHP,

entonces haces los $_POST y los imprimes en con un "echo $variable;"

si imprime las variables entonces si estan llegando y el problema es del ENVIO.PHP

aunque la verdad, es que se como te esta llegando el Mensaje a tu Bandeja de entrada si no veo ningun envio, hay solo veo el FORM y la recogida de las VARIABLES DEL FORM, total, checa eso, hay solo estas recogiendo, no estas enviando nada...

si no, esperame a la tarde, ya por eso de las 8pm (mexico) que llegue a mi casa y con mas calma veo que podemos hacerle al problema... :wink:

Por smokingwel

16 de clabLevel



 

msie
Citar            
MensajeEscrito el 06 Nov 2009 05:58 pm
Ok, gracias. Voy a probar con lo que me dices a ver qué pasa. Un saludo y que vaya bien el día.

Por bohedrius

30 de clabLevel



 

firefox
Citar            
MensajeEscrito el 06 Nov 2009 08:15 pm
yo recogeria antes que nada todas las variables del formulario para asignarlas despuestes al mandarlas...

luego como opinion personal ten cuidado al usar los spry esos que usas porque depende que navegador uses te suelen descuadrar las plantillas...intenta hacerlo facil ;)

Código HTML :

<?
   $empresa= $_POST[empresa];
   $nombre=$_POST[nombre};
   $direccion=$_POST[direccion];
   $cp=$_POST[cp];
   $localidad=$_POST[localidad];
   $tlfn=$_POST[tlfn];   
   $servicio=$_POST[servicio];   
   $contratado_0=$_POST[contratado_0];   
   $contratado_1=$_POST[contratado_1];   
if (!$HTTP_POST_VARS){
?>


<form method="post" id="form1" name="form1" action="presupuesto.php">
   <table cellpadding="0" cellspacing="0" border="0" width="100%">
    <tr>
      <td>Empresa* :</td>
      <td class="cajas" colspan="2">
        <input type="text" name="empresa" id="empresa" />&nbsp;Campo obligatorio
      </td>
    </tr>
    <tr>
      <td>Nombre Personal* :</td>
      <td class="cajas" colspan="2">
      <input type="text" name="nombre" id="nombre" />&nbsp;Campo obligatorio
      </td>
    </tr>
    <tr>
      <td>Dirección :</td>
      <td class="cajas" colspan="2">
        <input type="text" name="direccion" id="direccion" />&nbsp;Campo obligatorio
      </td>
    </tr>
    <tr>
      <td>Código Postal* :</td>
      <td class="cajas" colspan="2">
        <input type="text" name="cp" id="cp" />&nbsp;Campo obligatorio
      </td>
    </tr>
    <tr>
      <td>Localidad/Provincia* :</td>
      <td class="cajas" colspan="2">
        <input type="text" name="localidad" id="localidad" />&nbsp;Campo obligatorio
      </td>
    </tr>
    <tr>
      <td>Tlfn./Fax :</td>
      <td class="cajas" colspan="2">
      <input type="text" name="tlfn" id="tlfn" />
      </td>
    </tr>
    <tr>
      <td>E-mail* :</td>
      <td class="cajas" colspan="2">
        <input type="text" name="mail" id="mail" />&nbsp;Campo obligatorio
      </td>
    </tr>
    <tr>
      <td>Servicio Solicitado* :</td>
      <td class="cajas" colspan="2" valign="top">
      <textarea name="servicio" cols="21" rows="5" id="servicio"></textarea>&nbsp;Campo obligatorio</td>
    </tr>
    <tr>
      <td colspan="3">¿Tiene contratado actualmente un servicio de limpieza?*</td>
    </tr>
    <tr>
      <td class="cajas" id="sino" width="30">
         <input type="radio" name="contratado_0" value="si" id="contratado_0" />&nbsp;Sí
      </td>
      <td width="30">
         <input type="radio" name="contratado_1" value="no" id="contratado_1" />&nbsp;No
      </td>
      <td>
        Campo obligatorio
      </td>
    </tr>
    <tr>
      <td colspan="3">
        <input name="Enviar" type="submit" value="Enviar" id="Enviar" />
        <input name="Reestablecer" type="reset" value="Reestablecer" />
      </td>
    </tr>
  </table>

</form>


<?php

}else{
//Estoy recibiendo el formulario, compongo el cuerpo
$cuerpo = "Formulario enviado\n";
$cuerpo .= "Empresa: " .$empresa. "\n";
$cuerpo .= "Nombre: " .$nombre. "\n";
$cuerpo .= "Direcion: " .$direccion. "\n";
$cuerpo .= "Codigo Postal: " .$cp. "\n";
$cuerpo .= "Localidad: " .$localidad. "\n";
$cuerpo .= "Telefono: " .$tlfn. "\n";
$cuerpo .= "E-mail: " . $mail. "\n";
$cuerpo .= "Servicio solicitado: " .$servicio. "\n";
$cuerpo .= "Tiene contratado algun servicio?: " .$contratado. "\n";
}
?>

Por kreativodesigns

15 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Nov 2009 09:32 pm
Qué tal!

Muchas gracias por tu respuesta, pero aún así me sigue llegando el formulario vacío. En el archivo php con el que enlazo el formulario html tengo que poner algo aparte del mail y el echo?

Muchas gracias

Por bohedrius

30 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 Nov 2009 06:16 pm
Hola a todos. Finalmente este es el código php que he utilizado y el que realmente me ha funcionado:

<? PHP;



$cuerpo = "Formulario enviado\n";

$cuerpo .= "Empresa: " . $_POST['empresa'] . "\n";
$cuerpo .= "Nombre: " . $_POST['nombre'] . "\n";
$cuerpo .= "Direccion: " . $_POST['CP'] . "\n";
$cuerpo .= "Localidad: " . $_POST['Localidad'] . "\n";
$cuerpo .= "Telefono: " . $_POST['tlfn'] . "\n";
$cuerpo .= "E-mail: " . $_POST['mail'] . "\n";
$cuerpo .= "Servicio que requiere: " . $_POST['servicio'] . "\n";
$cuerpo .= "¿Tiene usted algún servicio contratado?: " . $_POST['contratado'] . "\n";




mail("[email protected]","Formulario recibido","$cuerpo");


echo "Gracias por rellenar el formulario. Se ha enviado correctamente.";


?>

Por bohedrius

30 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.