Foros del Web » Programando para Internet » PHP »

Problemas con formulario PHP

Estas en el tema de Problemas con formulario PHP en el foro de PHP en Foros del Web. Hola a todos, Os escribo para ver si alguien me pude echar una mano porque estoy desesperado. Estoy creando una página y tiene una parte ...
  #1 (permalink)  
Antiguo 20/05/2011, 14:47
 
Fecha de Ingreso: febrero-2011
Mensajes: 8
Antigüedad: 13 años, 2 meses
Puntos: 0
Problemas con formulario PHP

Hola a todos,

Os escribo para ver si alguien me pude echar una mano porque estoy desesperado. Estoy creando una página y tiene una parte de formulario que cuando se rellena lo envía a un correo mediante php.

El formulario lo tengo creado, es muy básico sólo tres campos, pero el problema es el php. He intentado miles, todos los que he podido ver, he seguido ejemplos pero nada. El correo me lo manda a la dirección que quiero pero no me toma los campos del formulario, me aparecen blanco y ya no sé lo que hacer.

Os pongo los códigos:

Formulario

<form action="formulario.php" method="post" name="form1" id="form1" onsubmit="MM_validateForm('nombre','','R');MM_vali dateForm('email','','RisEmail');MM_validateForm('n ombre','','R','email','','RisEmail','mensaje','',' R');MM_setTextOfTextfield('nombre','','');MM_setTe xtOfTextfield('email','','');MM_setTextOfTextfield ('mensaje','','');return document.MM_returnValue">
<table width="455" height="77">
<tr>
<td width="177"><label for="nombre"><strong>Nombre</strong></label></td>
<td width="321"><p>
<input name="nombre" type="text" id="nombre" onfocus="MM_setTextOfTextfield('nombre','','')" value="Nombre" size="30" maxlength="30" />
</p></td>
</tr>
<tr>
<td><strong>
<label for="email">Correo</label>
electrónico</strong></td>
<td><p>
<input name="email" type="text" id="email" onfocus="MM_setTextOfTextfield('email','','')" value="Dirección de correo" size="30" maxlength="30" />
</p></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td><strong>Asunto</strong></td>
<td>&nbsp;</td>
</tr>
</table>
<p>
<textarea name="mensaje" cols="45" rows="5" id="mensaje" onfocus="MM_setTextOfTextfield('mensaje','','')">A sunto</textarea>
</p>
<table width="255" align="center">
<tr>
<td width="117" height="23"><input type="submit" name="enviar" id="enviar" value="Enviar" /></td>
<td width="122"><input type="reset" name="Borrarformulario" id="Borrarformulario" value="Restablecer" /></td>
</tr>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
</form>


Y este es el codigo php


<?php
$para="[email protected]";

$asunto="Consulta desde la pagina web mi_pagina";

$header = "From: $email";

$mensaje = "$nombre, con mail $email ha enviado el siguiente mensaje: $mensaje";

$okProceso= mail($para,$asunto,$mensaje,$header);
?>


Espero que alguien me pueda ayudar porque recibir recibo correo pero sin nada, en este caso me aparece

, con mail ha enviado el siguiente mensaje:

O si no a ver si me podeis redirigir a otro foro donde se explique.

Muchísimas gracias a todos
  #2 (permalink)  
Antiguo 20/05/2011, 14:54
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Problemas con formulario PHP

cuando envias un formulario debes leer las variables como un arreglo POST

$_POST['nombre_del_campo'];

Código PHP:
<?php
$para
="[email protected]"

$asunto="Consulta desde la pagina web mi_pagina"

$header "From: ".$_POST['email']; 

$mensaje $_POST['nombre']", con mail ".$_POST['email']." ha enviado el siguiente mensaje: ".$_POST['mensaje']; 

$okProcesomail($para,$asunto,$mensaje,$header); 
?>
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #3 (permalink)  
Antiguo 20/05/2011, 14:56
Avatar de xlos_mas_pro  
Fecha de Ingreso: mayo-2011
Ubicación: Santiago
Mensajes: 359
Antigüedad: 13 años
Puntos: 11
Respuesta: Problemas con formulario PHP

Sabes te estas complicando mucho creo que lo único que tienes que hacer es un formulario que mande una acción a otra pagina donde se va a encontrar el codigo php donde te sugiero que también hay en ese código php valides los campos fuera osea que pones un if condicional el cual dise $tuvariable!="" y vas colocando las variables de tus campos que si son diferentes a vació que envié el formulario y tu código tines que asignarles variables antes y después crear una variable total como la que tienes que es $okproceso

como dise stramin deves leer las variables como post

$_POST["El nombre de tu campo"];
a esta le asignas la variable como hiciste antes
$tuvariable = $_POST["TU CAMPO"];

en realidad creo que ese es tu verdadero error
  #4 (permalink)  
Antiguo 20/05/2011, 15:20
 
Fecha de Ingreso: febrero-2011
Mensajes: 8
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Problemas con formulario PHP

Muchas gracias Stramin y xlos_mas_pro por vuestra rápida respuesta. He copiado el código de Stramin pero ahora directamente no me envía el formulario, es como si se quedara en paso que no pudiera seguir.

Creo que es a la hora de leer la variable del formulario. Perdonas mi torpeza pero es que soy muy novato, podría ser por alguna doble comilla o algo así???? porque ya no sé qué hacer.
  #5 (permalink)  
Antiguo 20/05/2011, 15:22
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Problemas con formulario PHP

publica el código otra vez, necesito ver si implementaste bien esas variables
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #6 (permalink)  
Antiguo 20/05/2011, 15:30
 
Fecha de Ingreso: febrero-2011
Mensajes: 8
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Problemas con formulario PHP

Este es mi formulario:

<form action="formulario.php" method="post" name="form1" id="form1" onsubmit="MM_validateForm('nombre','','R');MM_vali dateForm('email','','RisEmail');MM_validateForm('n ombre','','R','email','','RisEmail','mensaje','',' R');MM_setTextOfTextfield('nombre','','');MM_setTe xtOfTextfield('email','','');MM_setTextOfTextfield ('mensaje','','');return document.MM_returnValue">
<table width="455" height="77">
<tr>
<td width="177"><label for="nombre"><strong>Nombre</strong></label></td>
<td width="321"><p>
<input name="nombre" type="text" id="nombre" onfocus="MM_setTextOfTextfield('nombre','','')" value="Nombre" size="30" maxlength="30" />
</p></td>
</tr>
<tr>
<td><strong>
<label for="email">Correo</label>
electrónico</strong></td>
<td><p>
<input name="email" type="text" id="email" onfocus="MM_setTextOfTextfield('email','','')" value="Dirección de correo" size="30" maxlength="30" />
</p></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td><strong>Asunto</strong></td>
<td>&nbsp;</td>
</tr>
</table>
<p>
<textarea name="mensaje" cols="45" rows="5" id="mensaje" onfocus="MM_setTextOfTextfield('mensaje','','')">A sunto</textarea>
</p>
<table width="255" align="center">
<tr>
<td width="117" height="23"><input type="submit" name="enviar" id="enviar" value="Enviar" /></td>
<td width="122"><input type="reset" name="Borrarformulario" id="Borrarformulario" value="Restablecer" /></td>
</tr>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
</form>

Y el código último que he probado es este:


<?php
$para="[email protected]";

$asunto="Consulta desde la pagina web mipagina";

$header = "From: " $_POST['email'];

$mensaje = $_POST['nombre']", con mail ".$_POST['email']." ha enviado el siguiente mensaje: ".$_POST['mensaje'];

mail($para,$asunto,$mensaje,$header);
?>

Haber me podeis a encontrar la solución, porque ya cambio todo y nada
  #7 (permalink)  
Antiguo 20/05/2011, 15:35
Avatar de xlos_mas_pro  
Fecha de Ingreso: mayo-2011
Ubicación: Santiago
Mensajes: 359
Antigüedad: 13 años
Puntos: 11
Respuesta: Problemas con formulario PHP

Como te digo te estas complicando mucho y gastando tiempo si tu crees que es algo de comillas mejor deja de revisar el código por que aveces son errores muy pequeños y como es un formulario simple y el código también mejor empieza a crearlo de nuevo y te ahorraras todo el tiempo que has perdido y ordena mejor el código como me digo y dales las condisiones necesarias en otra pagina para que no se vea tan complicado por que como se ve hay debería funcionar por que en el codigo php esta bien si es que le espesificaste el $_POST pero en el fomulario no entiendo mucho ya que tienes todo amontonado cuando lo puedes aplicar en una pagina aparte.

como te desia antes mejor crea un if el cual le especificas si los campos son diferentes a vació te envié en formulario y si no creas una función la cual le pones que muestre el formulario y validas los campos en el código php en una pagina aparte
  #8 (permalink)  
Antiguo 20/05/2011, 16:10
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Problemas con formulario PHP

una cosa mas, ¿como se llaman ambos archivos?

he probado el código y va bien, solo puede ser un problema de nombres o ubicaciones.

corrige estos 2 puntos que te faltan (en rojo):

<?php
$para="[email protected]";

$asunto="Consulta desde la pagina web mipagina";

$header = "From: ".$_POST['email'];

$mensaje = $_POST['nombre'].", con mail ".$_POST['email']." ha enviado el siguiente mensaje: ".$_POST['mensaje'];

mail($para,$asunto,$mensaje,$header);
?>
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #9 (permalink)  
Antiguo 20/05/2011, 16:45
 
Fecha de Ingreso: febrero-2011
Mensajes: 8
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Problemas con formulario PHP

Muchas gracias stramin!!!!!! ahora sí funciona perfectamente aunque he tenido que quitar cosas del formulario. Tenía puesto que me revisara cada campo y no dejara seguir si no los rellenaban correctamente y ha sido quitar eso y todo ha funcionado perfectamente. Qué alivio!!!!

Muchas gracias a los dos Stramin y xlos_mas_pro por vuestra ayuda
  #10 (permalink)  
Antiguo 20/05/2011, 17:02
Avatar de xlos_mas_pro  
Fecha de Ingreso: mayo-2011
Ubicación: Santiago
Mensajes: 359
Antigüedad: 13 años
Puntos: 11
Respuesta: Problemas con formulario PHP

Como te dije antes puedes comprobar el formulario con php y no hacerlo como lo tienes en el mismo formualario solo tienes que hacer lo siguiente
Cita:
if($header!=""){
aqui pones el code php
}else{
echo "Uno de los campos esta vacio";
}
tambie puedes comprobar campo por campo con un if else dentro de otros campo por campo y se vera mucho mas completo

Etiquetas: formulario
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 08:46.