Foros del Web » Programando para Internet » PHP »

Consulta formulario duplicado

Estas en el tema de Consulta formulario duplicado en el foro de PHP en Foros del Web. Hola que tal soy nuevo en este foro, tengo un problema y me gustaria consultarlo con uds a ver si me pueden ayudar, tengo unos ...
  #1 (permalink)  
Antiguo 06/07/2010, 22:21
 
Fecha de Ingreso: julio-2010
Mensajes: 8
Antigüedad: 9 años, 5 meses
Puntos: 0
Consulta formulario duplicado

Hola que tal soy nuevo en este foro, tengo un problema y me gustaria consultarlo con uds a ver si me pueden ayudar, tengo unos formularios en php en un servidor win, funcionan bien y me envia los datos correctamente, el problema surge ahora que quiero migrar el hosting a linux, la pagina funciona bien pero los datos del formulario me los envia duplicados, es decir me repite en el mismo email los datos.
Dejo aca abajo los codigos fuente del form. php y del mail.php
Desde ya muchas gracias por cualquier ayuda

http://www.paganiluciano.com.ar/prueba/negocioindep.rar

Última edición por paganiluciano; 06/07/2010 a las 22:26
  #2 (permalink)  
Antiguo 06/07/2010, 22:28
Avatar de shakaran  
Fecha de Ingreso: agosto-2005
Ubicación: España - Ciudad Real
Mensajes: 374
Antigüedad: 14 años, 3 meses
Puntos: 7
Respuesta: Consulta formulario duplicado

Hola,

Primero recomendarte que postees el código en modo texto para la próxima vez, no es buena práctica poner el codigo así (sobre todo para futuras consultas) y más siendo solo dos archivos.

El error lo tienes en la linea 109 del archivo mail.php:

Código:
mail($sdestinatario,$ssubject,$shtml,$sheader);
Debes eliminarlo ya que previamente ya has enviado un email en la linea 78:

Código:
$sentmail = mail($to, $subject, $comentario, $headers);
Aparte hay otro fallo que llamas a la variable "mail" en la 111, pero no tiene un dolar delante para ser considerada variable de php:

Como bonus, te aconsejo cambiar los:

Código:
 echo" <meta http-equiv=refresh content=0;URL=gracias.html> ";
Por:

Código:
header('Location: gracias.html');
__________________
Quijost Backend Engineer - www.quijost.com - Hosting rápido, eficiente y profesional
Blog: www.shakaran.net
  #3 (permalink)  
Antiguo 06/07/2010, 22:58
 
Fecha de Ingreso: julio-2010
Mensajes: 8
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Consulta formulario duplicado

Hola gracias por la pronta respuesta modifique lo que me aconsejaste, aca posteo como quedo corregido

<?php
$nombre = $_POST['nombre'];
$edad = $_POST['edad'];
$mail = $_POST['mail'];
$cb_pais = $_POST['cb_pais'];
$est = $_POST['est'];
$cp = $_POST['cp'];
$ciudad = $_POST['ciudad'];
$diurno = $_POST['diurno'];
$nocturno = $_POST['nocturno'];
$hora_contacto = $_POST['hora_contacto'];
$profesion = $_POST['profesion'];
$estudios = $_POST['estudios'];
$idiomas = $_POST['idiomas'];
$motivacion = $_POST['motivacion'];
$oe_ideal = $_POST['oe_ideal'];
$situacion_actual = $_POST['situacion_actual'];
$puesto_reciente = $_POST['puesto_reciente'];
$razones_negocio = $_POST['razones_negocio'];
$lider = $_POST['lider'];
$url = $_POST['url'];
$atractivos = $_POST['atractivos'];
$beneficios = $_POST['beneficios'];
$disp_economica = $_POST['disp_economica'];
$cb_equipamiento = $_POST['cb_equipamiento'];
$dedicacion = $_POST['dedicacion'];
$linea_te = $_POST['linea_te'];
$internet = $_POST['internet'];
$preferencias_contacto = $_POST['preferencias_contacto'];
$referido = $_POST['referido'];
$opinion = $_POST['opinion'];
$usuario = $_POST['usuario'];
$pertenecer = $_POST['pertenecer'];

$to = '[email protected]';
$subject = 'CONSULTA de negocioindep.com.ar';
$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
$comentario="Mi nombre es: ".$nombre."
Mi edad es: ".$edad."
Mi email es: ".$mail."
Pais: ".$cb_pais."
Estado o Provincia: ".$est."
Código Postal: ".$cp."
Ciudad: ".$ciudad."
Teléfono diurno o celular: ".$diurno."
Teléfono nocturno: ".$nocturno."
Mejor hora para localizarlo: ".$hora_contacto."
---------------------------------------------
Profesión: ".$profesion."
Estudios: ".$estudios."
Idiomas: ".$idiomas."
---------------------------------------------
Motivación: ".$motivacion."
Ingreso deseado: ".$oe_ideal."
Situación actual: ".$situacion_actual."
Puesto reciente: ".$puesto_reciente."
Razones del emprendimiento: ".$razones_negocio."
----------------------------------------------
Se siente lider: ".$lider."
Web: ".$url."
Que lo atrajo: ".$atractivos."
Beneficio buscado: ".$beneficios."
Disponibilidad Económica: ".$disp_economica."
Equipamiento que dispone: ".$cb_equipamiento."
Tiempo a dedicar: ".$dedicacion."
Cantidad de líneas telefónicas: ".$linea_te."
Tipo de conexion: ".$internet."
Preferencia de contacto: ".$preferencias_contacto."
Por donde llego al sitio: ".$referido."
Opinion del sitio: ".$opinion."
Conocimiento informático: ".$usuario."
-----------------------------------------------
Comentarios: ".$pertenecer;

'X-Mailer: PHP/' . phpversion();

$sentmail = mail($to, $subject, $comentario, $headers);

$sfrom="[email protected]";
$sdestinatario="$mail";
$ssubject="Respuesta de Sistema de Negocio Independiente - Siguiente Paso";
$shtml="<html>
<head>
<title>negocioindep.com.ar</title>
</head>
<body>
<table width='590' border='0'>
<tr>
<td><p align='left'><font size='3' face='Tahoma'><strong><img src='http://www.negocioindep.com.ar/topemail.gif' alt='negocioindep.com.ar' /><br />
<font size='4'>Gracias por ingresar a nuestro SISTEMA DE NEGOCIOS.</font></strong></font><br />
<br />
<font size='2' face='Tahoma'>La informaci&oacute;n que necesita ahora la encontrar&aacute; haciendo click en: </font><font size='2' face='Tahoma'><a href='http://www.negocioindep.com.ar/inicio' target='_blank'>PAQUETE DE INICIO</a>.</font><br />
<font size='2' face='Tahoma'>El contenido del mismo le ser&aacute; de utilidad para poder tomar una decisi&oacute;n </font><font size='2' face='Tahoma'>acertada para Ud. y los suyos, en base a conocer m&aacute;s el funcionamiento </font><font size='2' face='Tahoma'>y respaldo de nuestro Sistema de Negocio. </font></p>
<p align='left'><font size='2' face='Tahoma'>En breve ser&aacute; contactado por su asesor de Negocios para asistir </font><font size='2' face='Tahoma'>a la Pr&oacute;xima Presentaci&oacute;n.</font></p>
<p align='left'><font size='2' face='Tahoma'>A su Disposici&oacute;n, Atte.<br />
Depto. De Negocios Internacional</font><br />
<font size='2' face='Tahoma'>negocioindep.com.ar</font></p>
</td>
</tr>
</table>
</body>
</html>";
$sheader = "From: $sfrom\n"
. "Reply-To: $sfrom\n";
$sheader=$sheader."X-Mailer:PHP/".phpversion()."\n";
$sheader=$sheader."Mime-Version: 1.0\n";
$sheader=$sheader."Content-Type: text/html";


if($mail){
echo" <meta http-equiv=refresh content=0;URL=gracias.html> ";
}
else {
echo" <meta http-equiv=refresh content=0;URL=error.html> ";
}
?>
  #4 (permalink)  
Antiguo 06/07/2010, 23:02
Avatar de shakaran  
Fecha de Ingreso: agosto-2005
Ubicación: España - Ciudad Real
Mensajes: 374
Antigüedad: 14 años, 3 meses
Puntos: 7
Respuesta: Consulta formulario duplicado

Podrías haber cambiado tambien los meta refresh por el header location como te dije ;) Me alegro de que te haya funcionado.
__________________
Quijost Backend Engineer - www.quijost.com - Hosting rápido, eficiente y profesional
Blog: www.shakaran.net
  #5 (permalink)  
Antiguo 06/07/2010, 23:05
 
Fecha de Ingreso: julio-2010
Mensajes: 8
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Consulta formulario duplicado

NO compa me olvide de poner que me sigue enviando los datos duplicados, ahh si ese me olvide ahora lo corrijo, pero me sigue haciendo exactamente lo mismo no entiendo
  #6 (permalink)  
Antiguo 06/07/2010, 23:13
Avatar de shakaran  
Fecha de Ingreso: agosto-2005
Ubicación: España - Ciudad Real
Mensajes: 374
Antigüedad: 14 años, 3 meses
Puntos: 7
Respuesta: Consulta formulario duplicado

Pues no deberia dar duplicados, en el form.php no parece haber problemas, prueba a cambiar los meta que te dije, el lo unico que podría estar fallando, aunque no tiene nada que ver.
__________________
Quijost Backend Engineer - www.quijost.com - Hosting rápido, eficiente y profesional
Blog: www.shakaran.net
  #7 (permalink)  
Antiguo 06/07/2010, 23:23
 
Fecha de Ingreso: julio-2010
Mensajes: 8
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Consulta formulario duplicado

Cita:
Iniciado por shakaran Ver Mensaje
Pues no deberia dar duplicados, en el form.php no parece haber problemas, prueba a cambiar los meta que te dije, el lo unico que podría estar fallando, aunque no tiene nada que ver.
gracias igual amigo quizas otro vea que es lo que pasa, pero muchas gracias nuevamente
  #8 (permalink)  
Antiguo 07/07/2010, 16:30
 
Fecha de Ingreso: julio-2010
Mensajes: 8
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Consulta formulario duplicado

Ya esta cambiado el meta que me dijiste y le saque el envio que le hacia a la persona que completaba el formulario, todo para ver donde puede estar el error, ya que no entiendo porque envia 2 veces la cadena $comentario. Aca dejo el codigo depurado como quedo ahora pero lo sigue enviando duplicado

<?php
$nombre = $_POST['nombre'];
$edad = $_POST['edad'];
$mail = $_POST['mail'];
$cb_pais = $_POST['cb_pais'];
$est = $_POST['est'];
$cp = $_POST['cp'];
$ciudad = $_POST['ciudad'];
$diurno = $_POST['diurno'];
$nocturno = $_POST['nocturno'];
$hora_contacto = $_POST['hora_contacto'];
$profesion = $_POST['profesion'];
$estudios = $_POST['estudios'];
$idiomas = $_POST['idiomas'];
$motivacion = $_POST['motivacion'];
$oe_ideal = $_POST['oe_ideal'];
$situacion_actual = $_POST['situacion_actual'];
$puesto_reciente = $_POST['puesto_reciente'];
$razones_negocio = $_POST['razones_negocio'];
$lider = $_POST['lider'];
$url = $_POST['url'];
$atractivos = $_POST['atractivos'];
$beneficios = $_POST['beneficios'];
$disp_economica = $_POST['disp_economica'];
$cb_equipamiento = $_POST['cb_equipamiento'];
$dedicacion = $_POST['dedicacion'];
$linea_te = $_POST['linea_te'];
$internet = $_POST['internet'];
$preferencias_contacto = $_POST['preferencias_contacto'];
$referido = $_POST['referido'];
$opinion = $_POST['opinion'];
$usuario = $_POST['usuario'];
$pertenecer = $_POST['pertenecer'];

$to = '[email protected]';
$subject = 'CONSULTA de negocioindep.com.ar';
$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
$comentario="Mi nombre es: ".$nombre."
Mi edad es: ".$edad."
Mi email es: ".$mail."
Pais: ".$cb_pais."
Estado o Provincia: ".$est."
Código Postal: ".$cp."
Ciudad: ".$ciudad."
Teléfono diurno o celular: ".$diurno."
Teléfono nocturno: ".$nocturno."
Mejor hora para localizarlo: ".$hora_contacto."
---------------------------------------------
Profesión: ".$profesion."
Estudios: ".$estudios."
Idiomas: ".$idiomas."
---------------------------------------------
Motivación: ".$motivacion."
Ingreso deseado: ".$oe_ideal."
Situación actual: ".$situacion_actual."
Puesto reciente: ".$puesto_reciente."
Razones del emprendimiento: ".$razones_negocio."
----------------------------------------------
Se siente lider: ".$lider."
Web: ".$url."
Que lo atrajo: ".$atractivos."
Beneficio buscado: ".$beneficios."
Disponibilidad Económica: ".$disp_economica."
Equipamiento que dispone: ".$cb_equipamiento."
Tiempo a dedicar: ".$dedicacion."
Cantidad de líneas telefónicas: ".$linea_te."
Tipo de conexion: ".$internet."
Preferencia de contacto: ".$preferencias_contacto."
Por donde llego al sitio: ".$referido."
Opinion del sitio: ".$opinion."
Conocimiento informático: ".$usuario."
-----------------------------------------------
Comentarios: ".$pertenecer;

'X-Mailer: PHP/' . phpversion();

$sentmail = mail($to, $subject, $comentario, $headers);

if($mail){
header('Location: gracias.html');
}
else {
echo" <meta http-equiv=refresh content=0;URL=error.html> ";
}
?>
  #9 (permalink)  
Antiguo 07/07/2010, 18:27
Avatar de shakaran  
Fecha de Ingreso: agosto-2005
Ubicación: España - Ciudad Real
Mensajes: 374
Antigüedad: 14 años, 3 meses
Puntos: 7
Respuesta: Consulta formulario duplicado

Vamos a mejorar tu código un poco, en lugar de declarar tropecientas variables con $_POST y guardarlas, haces un foreach y las "generas" a pelo con:

Código PHP:
Ver original
  1. foreach($_POST as $k => $v) ${$k} = $v;

Prueba con esto ahora que ya esta "mejorado":

Código PHP:
Ver original
  1. <?
  2. foreach($_POST as $k => $v) ${$k} = $v;
  3.  
  4. $comentario = 'Mi nombre es: '.$nombre.'
  5. Mi edad es: '.$edad.'
  6. Mi email es: '.$mail.'
  7. Pais: '.$cb_pais.'
  8. Estado o Provincia: '.$est.'
  9. Código Postal: '.$cp.'
  10. Ciudad: '.$ciudad.'
  11. Teléfono diurno o celular: '.$diurno.'
  12. Teléfono nocturno: '.$nocturno.'
  13. Mejor hora para localizarlo: '.$hora_contacto.'
  14. ---------------------------------------------
  15. Profesión: '.$profesion.'
  16. Estudios: '.$estudios.'
  17. Idiomas: '.$idiomas.'
  18. ---------------------------------------------
  19. Motivación: '.$motivacion.'
  20. Ingreso deseado: '.$oe_ideal.'
  21. Situación actual: '.$situacion_actual.'
  22. Puesto reciente: '.$puesto_reciente.'
  23. Razones del emprendimiento: '.$razones_negocio.'
  24. ----------------------------------------------
  25. Se siente lider: '.$lider.'
  26. Web: '.$url.'
  27. Que lo atrajo: '.$atractivos.'
  28. Beneficio buscado: '.$beneficios.'
  29. Disponibilidad Económica: '.$disp_economica.'
  30. Equipamiento que dispone: '.$cb_equipamiento.'
  31. Tiempo a dedicar: '.$dedicacion.'
  32. Cantidad de líneas telefónicas: '.$linea_te.'
  33. Tipo de conexion: '.$internet.'
  34. Preferencia de contacto: '.$preferencias_contacto.'
  35. Por donde llego al sitio: '.$referido.'
  36. Opinion del sitio: '.$opinion.'
  37. Conocimiento informático: '.$usuario.'
  38. -----------------------------------------------
  39. Comentarios: '.$pertenecer;
  40.  
  41.         'CONSULTA de negocioindep.com.ar',
  42.         $comentario, "From: [email protected]\r\nReply-To: [email protected]\r\nX-Mailer: PHP/".phpversion()
  43.           )
  44.    )
  45.     header('Location: gracias.html');
  46. else header('Location: error.html');
  47. ?>
__________________
Quijost Backend Engineer - www.quijost.com - Hosting rápido, eficiente y profesional
Blog: www.shakaran.net
  #10 (permalink)  
Antiguo 07/07/2010, 19:15
 
Fecha de Ingreso: julio-2010
Mensajes: 8
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Consulta formulario duplicado

puff el que sabe sabe y el que no pregunta, muchas gracias amigo me solucionaste quedarme sin pelo, un millon de gracias
  #11 (permalink)  
Antiguo 07/07/2010, 19:16
Avatar de shakaran  
Fecha de Ingreso: agosto-2005
Ubicación: España - Ciudad Real
Mensajes: 374
Antigüedad: 14 años, 3 meses
Puntos: 7
Respuesta: Consulta formulario duplicado

De nada, me "encanta" el karma ;)
__________________
Quijost Backend Engineer - www.quijost.com - Hosting rápido, eficiente y profesional
Blog: www.shakaran.net
  #12 (permalink)  
Antiguo 07/07/2010, 23:20
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 10 años, 6 meses
Puntos: 1517
Respuesta: Consulta formulario duplicado

Un pequeño detalle, si lo piensas usar así y no vas a hacer nada con el foreach, si no solamente usar el concepto variable variables, puedes usar extract que hace exactamente lo mismo y en una pequeña línea.
Código PHP:
Ver original
  1. <?php
  2. extract($_POST);
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #13 (permalink)  
Antiguo 08/07/2010, 00:30
Avatar de shakaran  
Fecha de Ingreso: agosto-2005
Ubicación: España - Ciudad Real
Mensajes: 374
Antigüedad: 14 años, 3 meses
Puntos: 7
Respuesta: Consulta formulario duplicado

Cita:
Iniciado por abimaelrc Ver Mensaje
Un pequeño detalle, si lo piensas usar así y no vas a hacer nada con el foreach, si no solamente usar el concepto variable variables, puedes usar extract que hace exactamente lo mismo y en una pequeña línea.
Código PHP:
Ver original
  1. <?php
  2. extract($_POST);
Toma ya! Esa me la apunto yo que no la sabía ;)
__________________
Quijost Backend Engineer - www.quijost.com - Hosting rápido, eficiente y profesional
Blog: www.shakaran.net
  #14 (permalink)  
Antiguo 08/07/2010, 09:37
 
Fecha de Ingreso: julio-2010
Mensajes: 8
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Consulta formulario duplicado

Muchas gracias por la gran ayuda brindada
ahora una consulta mas yo en el mail.php original hacia que le enviara un email a la persona que completaba el formulario, usaba este codigo

$sfrom="[email protected]";
$sdestinatario="$mail";
$ssubject="Respuesta de Sistema de Negocio Independiente - Siguiente Paso";
$shtml="<html>
<head>
<title>negocioindep.com.ar</title>
</head>
<body>
<table width='590' border='0'>
<tr>
<td><p align='left'><font size='3' face='Tahoma'><strong><img src='http://www.negocioindep.com.ar/topemail.gif' alt='negocioindep.com.ar' /><br />
<font size='4'>Gracias por ingresar a nuestro SISTEMA DE NEGOCIOS.</font></strong></font><br />
<br />
<font size='2' face='Tahoma'>La informaci&oacute;n que necesita ahora la encontrar&aacute; haciendo click en: </font><font size='2' face='Tahoma'><a href='http://www.negocioindep.com.ar/inicio' target='_blank'>PAQUETE DE INICIO</a>.</font><br />
<font size='2' face='Tahoma'>El contenido del mismo le ser&aacute; de utilidad para poder tomar una decisi&oacute;n </font><font size='2' face='Tahoma'>acertada para Ud. y los suyos, en base a conocer m&aacute;s el funcionamiento </font><font size='2' face='Tahoma'>y respaldo de nuestro Sistema de Negocio. </font></p>
<p align='left'><font size='2' face='Tahoma'>En breve ser&aacute; contactado por su asesor de Negocios para asistir </font><font size='2' face='Tahoma'>a la Pr&oacute;xima Presentaci&oacute;n.</font></p>
<p align='left'><font size='2' face='Tahoma'>A su Disposici&oacute;n, Atte.<br />
Depto. De Negocios Internacional</font><br />
<font size='2' face='Tahoma'>negocioindep.com.ar</font></p>
</td>
</tr>
</table>
</body>
</html>";
$sheader = "From: $sfrom\n"
. "Reply-To: $sfrom\n";
$sheader=$sheader."X-Mailer:PHP/".phpversion()."\n";
$sheader=$sheader."Mime-Version: 1.0\n";
$sheader=$sheader."Content-Type: text/html";
mail($sdestinatario,$ssubject,$shtml,$sheader);

ahora puedo usar el mismo o deberia cambiarlo
Gracias
  #15 (permalink)  
Antiguo 08/07/2010, 12:51
 
Fecha de Ingreso: julio-2010
Mensajes: 8
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Consulta formulario duplicado

listo ya lo solucione gracias nuevamente

Etiquetas: duplicado, 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 19:15.