Comunidad de diseño web y desarrollo en internet online

Formulario fantasma

Citar            
MensajeEscrito el 18 Abr 2011 02:57 pm
Coloqué un formulario en html que tiene una validación que funciona bien en IE,FF y Chrome. Él llama con action un archivo php que se ocupa de procesar los datos y efectuar el envío através de la clase phpmailer.

El problema es que aún cuando la validación del html funciona están llegando los datos del formulario en blanco. Coloqué una línea para capturar el IP y el mismo es diferente en cada recibimiento

El html está en esta dirección

http://soferroguindastes.com.br/pesquisa-satisfacao.html

y el php es este

Código PHP :

<?php

require("phpmailer/class.phpmailer.php");

$prazo = $_POST['prazo'];
$textoPE = $_POST['textoPE'];
$pontualidade = $_POST['pontualidade'];
$textoPL = $_POST['textoPL'];
$seguranca = $_POST['seguranca'];
$textoSE = $_POST['textoSE'];
$qualidadeOperadores = $_POST['qualidadeOperadores'];
$textoQO = $_POST['textoQO'];
$qualidadeAcessorios = $_POST['qualidadeAcessorios'];
$textoQA = $_POST['textoQA'];
$qualidadeEquipamentos = $_POST['qualidadeEquipamentos'];
$textoQE = $_POST['textoQE'];
$apresentacaoFuncionarios = $_POST['apresentacaoFuncionarios'];
$textoAF = $_POST['textoAF'];
$cordialidadeOperadores = $_POST['cordialidadeOperadores'];
$textoCO = $_POST['textoCO'];
$cordialidadeComercial = $_POST['cordialidadeComercial'];
$textoCC = $_POST['textoCC'];
$escolha = $_POST['escolha'];
$sugestoes = $_POST['sugestoes'];
$empresa = $_POST['empresa'];
$nome = $_POST['nome'];
$email = stripslashes($_POST['email']);
$data = date("d/m/y"); //pega a data
$ip = $_SERVER['REMOTE_ADDR']; //pega o ip de quem enviou
$hora = date("H:i"); //pega a hora
$assunto    = 'Pesquisa de satisfação';

// Inicia a classe PHPMailer
$mail = new PHPMailer();

// na classe, há a opção de idioma, setei como br
$mail->SetLanguage("br");
// esta chamada diz que o envio será feito através da função mail do php. Você mudar para sendmail,
// se quiser utilizar o programa de email do seu unix/linux para enviar o email
$mail->IsSMTP();
$mail->Host = "mail.soferroguindastes.com.br";
// ativa o envio de e-mails em HTML, se false, desativa.
$mail->IsHTML(true); 
// email do remetente da mensagem
$mail->From = "[email protected]";
// nome do remetente do email
$mail->FromName = $nome;
// Endereço de destino do emaail, ou seja, pra onde você quer que a mensagem do formulário vá?
$mail->AddAddress("[email protected]");
// informando no email, o assunto da mensagem
$mail->Subject = $assunto;
// Define o texto da mensagem (aceita HTML)
$mail->Body .= "<B>PESQUISA DE SATISFAÇÃO<BR><BR></B>";
$mail->Body .= "<B>Prazo na execução dos serviços:</B> $prazo<BR>";
$mail->Body .= "<B>Observações:</B> $textoPE<BR><BR>";
$mail->Body .= "<B>Pontualidade na chegada ao local:</B> $pontualidade<BR>";
$mail->Body .= "<B>Observações:</B> $textoPL<BR><BR>";
$mail->Body .= "<B>Operação realizada com segurança dos envolvidos:</B> $seguranca<BR>";
$mail->Body .= "<B>Observações:</B> $textoSE<BR><BR>";
$mail->Body .= "<B>Qualidade técnica dos operadores:</B> $qualidadeOperadores<BR>";
$mail->Body .= "<B>Observações:</B> $textoQO<BR><BR>";
$mail->Body .= "<B>Qualidade e aparência dos acessórios de amarração, içamento e remoção:</B> $qualidadeAcessorios<BR>";
$mail->Body .= "<B>Observações:</B> $textoQA<BR><BR>";
$mail->Body .= "<B>Qualidade dos equipamentos:</B> $qualidadeEquipamentos<BR>";
$mail->Body .= "<B>Observações:</B> $textoQE<BR><BR>";
$mail->Body .= "<B>Apresentação dos funcionários:</B> $apresentacaoFuncionarios<BR>";
$mail->Body .= "<B>Observações:</B> $textoAF<BR><BR>";
$mail->Body .= "<B>Atendimento e cordialidade dos operadores:</B> $cordialidadeOperadores<BR>";
$mail->Body .= "<B>Observações:</B> $textoCO<BR><BR>";
$mail->Body .= "<B>Atendimento e cordialidade comercial:</B> $cordialidadeComercial<BR>";
$mail->Body .= "<B>Observações:</B> $textoCC<BR><BR>";
$mail->Body .= "<B>O que levou você a escolher à SOFERRO Guindastes:</B> $escolha<BR><BR>";
$mail->Body .= "<B>Que sugestão você daria a SOFERRO Guindastes para que melhorasse os seus serviços?:</B> $sugestoes<BR><BR>";
$mail->Body .= "<B>Empresa:</B> $empresa<BR>";
$mail->Body .= "<B>Nome:</B> $nome<BR>";
$mail->Body .= "<B>E-mail:</B> $email<BR>";
$mail->Body .= "<B>IP:</B> $ip<BR>";
$mail->Body .= "<B>Data:</B> $data<BR>";
$mail->Body .= "<B>Hora:</B> $hora<BR>";

$enviado = $mail->Send();
$mail->ClearAllRecipients();
$mail->ClearAttachments();

//Redirecionar para página de agradecimento
if ($enviado) {
   header('Location:obrigado.php');
   } 

?>


Alguien sabe que puede estar pasando?. Desde ya muchas gracias. Claudio

Por Ishkandar

Claber

303 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 18 Abr 2011 10:56 pm
no llegan los datos porque todos los encierras como cadena de texto

$mail->Body .= "<B>Operação realizada com segurança dos envolvidos:</B> $seguranca<BR>";

deberia de ser

$mail->Body .="<B>Operação realizada com segurança dos envolvidos:</B>".$seguranca."<BR>";

Recuerdas que estas mandando html y claro la variable de php la trata como cadena, aplicalo para todos tus datos a enviar

saludos

Por joshuavw

Claber

306 de clabLevel



Genero:Masculino  

Juego, aprendo y programo

firefox
Citar            
MensajeEscrito el 19 Abr 2011 12:27 am
Amigo Joshua, quedé muy desconcertado con tu respuesta. Porque hice pruebas en IE, FF y Chrome y los datos siempre llegaron bien. Por ese motivo sospechaba que había algo que estaba disparando el php sin pasar por el html cuya validación está funcionando. Tenés alguna idea de porque los envíos de prueba funcionaban?.
De todas formas hice la modificación que indicaste. Muchas gracias

Por Ishkandar

Claber

303 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 19 Abr 2011 03:09 pm
pues ent u script php no verificas que los datos hayan sido mandados desde un formulario post
osea tendrias que poner algo asi

Código PHP :

<?php 
if( !isset($_POST['email']))
{
      die( 'Ups te perdiste como llegaste aca sin un formulario?' );
}
require("phpmailer/class.phpmailer.php"); 
 
$prazo = $_POST['prazo']; 
$textoPE = $_POST['textoPE']; 

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 19 Abr 2011 05:05 pm
Amigo gracias por la respuesta. Pensé hacer ese "setado" con el botón de Enviar de la siguiente forma.

En el botón del html colocaría así:

Código HTML :

<input type="submit" name="botao" id="botao" value="Enviar" />


y en el php así

Código PHP :

<?php  
if ( isset($_POST['botao']) ) {
      die( 'Ups te perdiste como llegaste aca sin un formulario?' ); 
} 


Por favor me corrije si estoy equivodo.

Deade ya muchas grácias. Claudio

Por Ishkandar

Claber

303 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 19 Abr 2011 05:20 pm
Me equivoqué en el condicional del php

Código PHP :

<?php   
if (!isset($_POST['botao']) ) { 
      die( 'Ups te perdiste como llegaste aca sin un formulario?' );  
}  

Por Ishkandar

Claber

303 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 19 Abr 2011 07:33 pm
regularmente esto lo haces via cliente antes de enviarlo a php osea al servidor, crea una funcion javascript para que valides si efectivamente todos los campos estan realmente capturados en google encontraras varios ejemplos

saludos

Por joshuavw

Claber

306 de clabLevel



Genero:Masculino  

Juego, aprendo y programo

firefox
Citar            
MensajeEscrito el 20 Abr 2011 12:43 am
Joshua, yo tengo una validación del lado del html hecha con javascript y que funciona perfectamente tanto en IE, en FF y en Chrome. Es allí donde está el mistério, no consigo saber de donde se están originando los formulários en blanco que están llegando y como evitarlos.

Por Ishkandar

Claber

303 de clabLevel



Genero:Masculino  

firefox

 

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