Ir ao conteúdo
  • Cadastre-se

Formulario PHP com error na HORA DE VERIFICAR


Kelvin-lindao

Posts recomendados

Pessoal o Codigo ta ai quero explica pra vocês o que ta acontecendo ele consegue verificar todos os Outros Campos anteriores do "NOME DO SITE" depois desse ele da error e diz que nao esta preenchido EU VOU COLOCAR TB UM CODIGO AQUI DE UM FORMULARIO QUE FUNCIONA PRA vocês VEREM

Eu ja tentei copiar o conteudo de um formulario para o outro mais o error Ainda existe

CODIGO 1 (NAO FUNCIONA)

<?php require "config.ini"; ?>

<?php

// Carrega dados pelo método POST, independente da configuração das variáveis Globais do ini do PHP

$nome=$_POST["nome"];

$email=$_POST["email"];

$cidade=$_POST["cidade"];

$estado=$_POST["estado"];

$nomesite=$_POST["nome do site"];

$Enderecosite=$_POST["Endereço do site"];

$numvisitas=$_POST["Numero de Visitas"];

$Comentarios=$_POST["Comentarios"];

// Verifica o Campo Nome Tá preenchido

if (empty($nome)){

// HTML que aparecera o ERRO

echo "<html><head><title>Ocorreu Um ERRO !!!</title></head>";

echo "<body bgcolor=\"#ffffff\">";

echo "<br><br><br>";

echo "<center>voce nao Informou seu<b> nome</b></center>";

echo "<br><br><center><a href=\"javascript:history.back(1)\">Volta</a></center>";

echo "</body></html>";

}

// Verifica o Campo E-mail Tá preenchido

elseif (empty($email)){

// HTML que aparecera o ERRO

echo "<html><head><title>Ocorreu Um ERRO !!!</title></head>";

echo "<body bgcolor=\"#ffffff\">";

echo "<br><br><br>";

echo "<center>O E-mail não foi <b>Digitado</b></center>";

echo "<br><br><center><a href=\"javascript:history.back(1)\">Volta</a></center>";

echo "</body></html>";

}

// Verifica Se o E-mail Contem @

elseif (!(strpos($email,"@")) OR strpos($email,"@") !=strrpos($email,"@")) {

// HTML que aparecera o ERRO

echo "<html><head><title>Ocorreu Um ERRO !!!</title></head>";

echo "<body bgcolor=\"#ffffff\">";

echo "<br><br><br>";

echo "<center>O E-mail <b>Não</b> é <b>válido</b></center>";

echo "<br><br><center><a href=\"javascript:history.back(1)\">Volta</a></center>";

echo "</body></html>";

}

// Verifica se o Campo cidade tá preenchido

elseif (empty($cidade)){

// HTML que aparecera o ERRO

echo "<html><head><title>Ocorreu Um ERRO !!!</title></head>";

echo "<body bgcolor=\"#ffffff\">";

echo "<br><br><br>";

echo "<center>Você <b>Não</b> Informou sua <b>cidade</b></center>";

echo "<br><br><center><a href=\"javascript:history.back(1)\">Volta</a></center>";

echo "</body></html>";

}

// Verifica se o Campo estado tá preenchido

elseif (empty($estado)){

// HTML que aparecera o ERRO

echo "<html><head><title>Ocorreu Um ERRO !!!</title></head>";

echo "<body bgcolor=\"#ffffff\">";

echo "<br><br><br>";

echo "<center>Você <b>Não</b> Informou seu <b>Estado</b></center>";

echo "<br><br><center><a href=\"javascript:history.back(1)\">Volta</a></center>";

echo "</body></html>";

}

// Verifica se o Nome do site estado tá preenchido

elseif (empty($nomesite)){

// HTML que aparecera o ERRO

echo "<html><head><title>Ocorreu Um ERRO !!!</title></head>";

echo "<body bgcolor=\"#ffffff\">";

echo "<br><br><br>";

echo "<center>Você <b>Não</b> Informou o <b>nome do site</b></center>";

echo "<br><br><center><a href=\"javascript:history.back(1)\">Volta</a></center>";

echo "</body></html>";}

// Verifica se o Endereço do site tá preenchido

elseif (empty($Enderecosite)){

// HTML que aparecera o ERRO

echo "<html><head><title>Ocorreu Um ERRO !!!</title></head>";

echo "<body bgcolor=\"#ffffff\">";

echo "<br><br><br>";

echo "<center>Você <b>Não</b> Informou o <b>Endereço do site</b></center>";

echo "<br><br><center><a href=\"javascript:history.back(1)\">Volta</a></center>";

echo "</body></html>";

}

// Verifica se o Numero de Visitas tá preenchido

elseif (empty($numvisitas)){

// HTML que aparecera o ERRO

echo "<html><head><title>Ocorreu Um ERRO !!!</title></head>";

echo "<body bgcolor=\"#ffffff\">";

echo "<br><br><br>";

echo "<center>Você <b>Não</b> Informou o <b>Numero de Visitas</b></center>";

echo "<br><br><center><a href=\"javascript:history.back(1)\">Volta</a></center>";

echo "</body></html>";

}

// Verifica se o COMENTARIO tá preenchido

elseif (empty($Comentarios)){

// HTML que aparecera o ERRO

echo "<html><head><title>Ocorreu Um ERRO !!!</title></head>";

echo "<body bgcolor=\"#ffffff\">";

echo "<br><br><br>";

echo "<center>Você <b>Não</b> Informou algum <b>Comentario</b></center>";

echo "<br><br><center><a href=\"javascript:history.back(1)\">Volta</a></center>";

echo "</body></html>";

}

else{

// Comfirma o Envio Do E-mail

if ($certo== "1")

{

// Função de envio Do E-mail

//mail ("[email protected]","nome","string message", "string additional_headers");

mail ("$emaildest","Assombracoes","Nome:$nome\n Email:$email\n cidade:$cidade\n estado:$estado\n Nome do site:$nomesite \n Endereço do site:$Enderecosite\n Numero de visitas:$numvisitas\n Comentarios:$Comentarios\n IP:$REMOTE_ADDR\n\n ...::: Assombracoes® :::...","From:$nome<$email>");

}

// HTML do redirecionameto e se não redirecionar aparece um link

echo "<html><head>";

echo "<meta http-equiv=\"refresh\" content=\"0;url=$redirecionar\">";

echo "<title>Redirecionado ...</title>";

echo "</head><body bgcolor=\"#000000\">";

echo "<a href=\"$redirecionar\" target=\"_top\">.</a>";

echo "</body></html>";

}

?>

________________________________________________________________

Codigo QUE FUNCIONA

<?php require "config.ini"; ?>

<?php

// Carrega dados pelo método POST, independente da configuração das variáveis Globais do ini do PHP

$nome=$_POST["nome"];

$email=$_POST["email"];

$cidade=$_POST["cidade"];

$estado=$_POST["estado"];

$mensagem=$_POST["Mensagem"];

// Verifica o Campo Nome Tá preenchido

if (empty($nome)){

// HTML que aparecera o ERRO

echo "<html><head><title>Ocorreu Um ERRO !!!</title></head>";

echo "<body bgcolor=\"#ffffff\">";

echo "<br><br><br>";

echo "<center>voce nao Informou seu<b> nome</b></center>";

echo "<br><br><center><a href=\"javascript:history.back(1)\">Volta</a></center>";

echo "</body></html>";

}

// Verifica o Campo E-mail Tá preenchido

elseif (empty($email)){

// HTML que aparecera o ERRO

echo "<html><head><title>Ocorreu Um ERRO !!!</title></head>";

echo "<body bgcolor=\"#ffffff\">";

echo "<br><br><br>";

echo "<center>O E-mail não foi <b>Digitado</b></center>";

echo "<br><br><center><a href=\"javascript:history.back(1)\">Volta</a></center>";

echo "</body></html>";

}

// Verifica Se o E-mail Contem @

elseif (!(strpos($email,"@")) OR strpos($email,"@") !=strrpos($email,"@")) {

// HTML que aparecera o ERRO

echo "<html><head><title>Ocorreu Um ERRO !!!</title></head>";

echo "<body bgcolor=\"#ffffff\">";

echo "<br><br><br>";

echo "<center>O E-mail <b>Não</b> é <b>válido</b></center>";

echo "<br><br><center><a href=\"javascript:history.back(1)\">Volta</a></center>";

echo "</body></html>";

}

// Verifica se o Campo cidade tá preenchido

elseif (empty($cidade)){

// HTML que aparecera o ERRO

echo "<html><head><title>Ocorreu Um ERRO !!!</title></head>";

echo "<body bgcolor=\"#ffffff\">";

echo "<br><br><br>";

echo "<center>Você <b>Não</b> Informou sua <b>cidade</b></center>";

echo "<br><br><center><a href=\"javascript:history.back(1)\">Volta</a></center>";

echo "</body></html>";

}

// Verifica se o Campo estado tá preenchido

elseif (empty($estado)){

// HTML que aparecera o ERRO

echo "<html><head><title>Ocorreu Um ERRO !!!</title></head>";

echo "<body bgcolor=\"#ffffff\">";

echo "<br><br><br>";

echo "<center>Você <b>Não</b> Informou seu <b>Estado</b></center>";

echo "<br><br><center><a href=\"javascript:history.back(1)\">Volta</a></center>";

echo "</body></html>";

}

else{

// Comfirma o Envio Do E-mail

if ($certo== "1")

{

// Função de envio Do E-mail

//mail ("[email protected]","nome","string message", "string additional_headers");

mail ("$emaildest","Assombracoes","Nome:$nome\n Email:$email\n cidade:$cidade\n estado:$estado\n Mensagem:$mensagem\n IP:$REMOTE_ADDR\n\n ...::: Assombracoes® :::...","From:$nome<$email>");

}

// HTML do redirecionameto e se não redirecionar aparece um link

echo "<html><head>";

echo "<meta http-equiv=\"refresh\" content=\"0;url=$redirecionar\">";

echo "<title>Redirecionado ...</title>";

echo "</head><body bgcolor=\"#000000\">";

echo "<a href=\"$redirecionar\" target=\"_top\">.</a>";

echo "</body></html>";

}

?>

é isso pessoal vou deixar aqui o Link Do formulario que nao Funciona pra vocês verem o problema ---------- FORMULARIO LINK----------

Link para o comentário
Compartilhar em outros sites

  • Moderador

amigo, você deve resgatar por POST o name que você exatamente colocou.

$nomesite=$_POST["nome do site"];

$Enderecosite=$_POST["Endereço do site"];

$numvisitas=$_POST["Numero de Visitas"];

nao recomendo colocar com espaço.

no seu formulario deve estar assim:

...

<input type="text" name="nomedoSite" id="nomedoSite"/>

e no php resgatar assim:

$nomesite = $_POST["nomedoSite"];

vale o mesmo para endereço do site e numero de visitas.

veja no formulario que funciona.. nenhum dos dados regatados por POST sao nomes compostos separados por um espaço.

se for nome composto.. use sempre tudo junto com camel case: exemplo:

nomeSite, sobreNome, numeroDeVisitas enfim...

Link para o comentário
Compartilhar em outros sites

  • Moderador
Eu escrevi do mesmo jeito sim é que eu uso essas abreviçoes de ao invés de colocar o nome do site eu ponho nomesite fica mais fácil o problema ta em outro lugar

o problema nao é na variavel, mas sim no "conteudo" do $_POST

coloque no seu formulario no input name="nomeDoSite" do jeito que eu coloquei.

e no seu php resgate assim:

$nomeSite = $_POST["nomeDoSite"];

repito mais uma vez amigo, você nao pode passar um nome composto com espaços para o PHP

se no seu formulario estiver :

<input type="text" name="nome do site"/>

e você resgatar no php... $nomeSite = $_POST["nome do site"];

vai acusar erro. certo? use sempre "nomeJunto" no name do input e no $_POST["nomeJunto"];

Link para o comentário
Compartilhar em outros sites

Deu certo Sim Obrigado ^^ Gostaria de Pedir pra voce avaliar meu site Tambem o que acha dele? tem alguma dica? encontrou algum error

www.assombracoes.com

Eu tava querendo coloca um Loading na pagina Inicial voce acha que é preciso?

Aproveita e pergunta aqui tb si eu quiser coloca uma caixa de seleção Exemplo "(X)Eu aceitos todos os termos " E caso nao esteja selecionado nao Envie o E-mail.

Link para o comentário
Compartilhar em outros sites

  • Moderador
Deu certo Sim Obrigado ^^ Gostaria de Pedir pra voce avaliar meu site Tambem o que acha dele? tem alguma dica? encontrou algum error

www.assombracoes.com

Eu tava querendo coloca um Loading na pagina Inicial voce acha que é preciso?

Aproveita e pergunta aqui tb si eu quiser coloca uma caixa de seleção Exemplo "(X)Eu aceitos todos os termos " E caso nao esteja selecionado nao Envie o E-mail.

legal sua ideia, porém você nao está nos padrões atuais da W3C. você esta usando tabelas para estruturar seu layout.

hj em dia o conceito de layout baseia-se em tableless ou seja sem o uso de tabelas. mas sim com uso de DIV's.

porque isso? você pode manipular 100% as div de como você quer estejam dispostas pelo layout. coisa que tabelas nao permitem.

sobre a caixa de aceitar tudo...

você precisa criar no seu formulario um checkbox e verificar com php se ele foi selecionado ou nao..

poe exemplo:


<input type="checkbox" name="aceita" value="aceita"/>Aceitar termos


<?php

$check = $_POST['aceita'];

if(isset($check))
{


//aqui vai todo o script php do envio


}
else
{
/*aqui faz um javascript de retorno a pagina anterior avisando
* que os termos nao foram aceitos.
*/
}


?>

+- isso

sobre seu codigo ali de cima... eu otimizaria melhor ele... criaria uma pagina de erro para cada.

e verificaria por switch. e colocaria um include para cada tipo de erro.. na minha opiniao ficaria mais elegante.

Link para o comentário
Compartilhar em outros sites

legal sua ideia, porém você nao está nos padrões atuais da W3C. você esta usando tabelas para estruturar seu layout.

hj em dia o conceito de layout baseia-se em tableless ou seja sem o uso de tabelas. mas sim com uso de DIV's.

porque isso? você pode manipular 100% as div de como você quer estejam dispostas pelo layout. coisa que tabelas nao permitem.

sobre a caixa de aceitar tudo...

você precisa criar no seu formulario um checkbox e verificar com php se ele foi selecionado ou nao..

poe exemplo:


<input type="checkbox" name="aceita" value="aceita"/>Aceitar termos


<?php

$check = $_POST['aceita'];

if(isset($check))
{


//aqui vai todo o script php do envio


}
else
{
/*aqui faz um javascript de retorno a pagina anterior avisando
* que os termos nao foram aceitos.
*/
}


?>

+- isso

sobre seu codigo ali de cima... eu otimizaria melhor ele... criaria uma pagina de erro para cada.

e verificaria por switch. e colocaria um include para cada tipo de erro.. na minha opiniao ficaria mais elegante.

Si eu deixar o Site em Tabelas pode atrapalhar em alguma coisa? pois as tabelas me servem bem ^^ Ainda nao tive problemas com elas agora si for implicar em algum problema eu irei trocar para Divs

Link para o comentário
Compartilhar em outros sites

  • Moderador

amigo, o que eu quis dizer é que o uso de tabelas para arquitetar layout esta fora dos padrões da W3C, ou seja, se um dia você quiser ter em seu site um selo de certificação da w3c sugerido pela webstandard você nao irá passar.

outra, uma hora você irá querer mudar o layout, com tabelas estas se limitando a usar daquele jeito e sem muito controle.

por isso sempre recomendo o uso de divs para a estrutura do website, ou seja, seguindo as regras da w3c. este método chama-se TABLELESS.

mais outro motivo, paginas feitas com tabelas levam mais tempo para serem carregadas, todo seu layout é possivel fazer com divs e css.

ate podes usar tabelas, mas use o minimo possivel, por exemplo uma grade de horarios convem usar tabelas.

outro fator q vi, sua programaçao php, nao esta nada elegante. você pode melhorar isso.. por exemplo:

as validaçoes de campos, você pode melhora-las vou dar o exemplo de como eu faria:


<?php
$nome=$_POST["nome"];
$email=$_POST["email"];
$cidade=$_POST["cidade"];
$estado=$_POST["estado"];
$nomesite=$_POST["nome do site"];
$Enderecosite=$_POST["Endereço do site"];
$numvisitas=$_POST["Numero de Visitas"];
$Comentarios=$_POST["Comentarios"];

if(empty($nome))
{ include 'erroNome.php'; }
elseif (empty($email))
{ include 'erroEmail.php'; }
elseif (empty($cidade))
{ include 'erroCidade.php'; }
elseif (empty($estado))
{ include 'erroEstado.php'; }
elseif (empty($nomesite))
{ include 'erroNomeSite.php'; }
elseif (empty($Enderecosite))
{ include 'erroEnderecoSite'; }
elseif (empty($numvisitas))
{ include 'erroNumVisitas.php'; }
elseif (empty($Comentarios))
{ include 'erroComentarios.php'; }
else
{
if ($certo== "1")
{
/* Função de envio Do E-mail
* mail ("[email protected]","nome","string message", "string additional_headers");
*/
mail ("$emaildest","Assombracoes","Nome:$nome\n Email:$email\n cidade:$cidade\n
estado:$estado\n Nome do site:$nomesite \n Endereço do site:$Enderecosite\n
Numero de visitas:$numvisitas\n Comentarios:$Comentarios\n IP:$REMOTE_ADDR\n\n
...::: Assombracoes® :::...","From:$nome<$email>");
}
}
?>

agora o conteudo de um dos arquivos de erro:

exemplo: erroNome.php


<html>
<body>
<script type="text/javascript">
alert("ERRO: informe um nome");
history.go(-1);
</script>
</body>
</html>

note que para cada campo existe um arquivo com o nome do erro, sao todos iguais, apenas alterando a frase dentro do alert.

é muito mais elegante você fazer desse jeito do que aquele monte de codigo html no meio do php.

Link para o comentário
Compartilhar em outros sites

  • Moderador
NO INICO DO SITE PARA CARREGAR A PAGINA INICIAL E COMPLEMENTOS PARA O USUARIO NAO FICAR AGUARDANDO E PERDER A PACIENCIA

o loadin vai ter funçao sim ^^

antes, por favor escreva sem caps lock, isso dá impressao de "gritando".

nesse caso.. na minha opiniao.. o loading so iria deixar a pagina mais pesada. nao vejo muita vantagem em utlizar apenas para carregar o site.

ate porque o tempo de carregamento nao é lento, só será lento se um usuario tiver uma conexao discada... ou dias de chuvas intensas onde a rede esta congestionada... e linhas telefonicas com mal contato.

rsrs.. o loading covem quando se tem pré-carregamento de módulos que sao requisitos para o sistema funcionar.

Link para o comentário
Compartilhar em outros sites

  • Moderador
Desculpa pelo CAPS rs nem vi que tava ligado Brigado intão se tive alguma ideia pra gente ai agradecemos qualquer coisa é bem vinda.

bom.. minha sugestao ja foi dada la em cima.. na reformulaçao do site. trocando layout table pelo layout com metodo tableless. alem de otimizar o codigo php, evitando de "concatenar" partes do html várias vezes repetidas naquelas verificaçoes. enquanto que se pode verificar e dar um include em uma pagina com o erro específico.

pelo q eu vi.. seu site contem um fundo de tela bacana... eu prezaria o fundo.. e faria todo o layout com transparencia.

outra dica... evite de usar muitas imagens... tudo que tu conseguir por de "background-image" no css é mais rápido.

Link para o comentário
Compartilhar em outros sites

Da uma Olhada nas modificaçoes que eu fiz o que acha? ficou legal?

http://www.assombracoes.com/

Ae o MENU AI nao fica certinho no Firefox Como faço pra ficar certinho

Codigo do menu

<div id="MENU">
<div id="linksmenu">
<table width="892" height="58" border="0" align="left">
<tr>
<td width="130"><img src="Imagens/Menu/Links/Inicio.png" alt="Inicio" width="130" height="50" border="0" usemap="#Map"></td>
<td width="130"><img src="Imagens/Menu/Links/Fatos.png" alt="Fatos" width="130" height="50" border="0" usemap="#Map2"></td>
<td width="130"><img src="Imagens/Menu/Links/Fotos.png" alt="Fotos" width="130" height="50" border="0" usemap="#Map3"></td>
<td width="130"><img src="Imagens/Menu/Links/Videos.png" alt="Videos" width="130" height="50" border="0" usemap="#Map4"></td>
<td width="130"><img src="Imagens/Menu/Links/Contato.png" alt="Contato" width="130" height="50" border="0" usemap="#Map5"></td>
<td width="216"><img src="Imagens/Menu/Links/Quem somos.png" alt="Quem Somos" width="130" height="50" border="0" usemap="#Map6"></td>
</tr>
</table>
</div>
<img src="Imagens/Menu/base.png" width="1200" height="48"></div>

CSS DO MENU

#MENU {
position:absolute;
left:auto;
top:195px;
width:1189px;
height:auto;
z-index:1;
}
#linksmenu {
position:absolute;
width:1200px;
height:58px;
z-index:3;
left: auto;
top: -6px;
}

Link para o comentário
Compartilhar em outros sites

  • Moderador

Posta ai uma screen tua... aqui no meu monitor fica normal no firefox.

outra.. tomei a liberdade de brincar com seu codigo fonte e imagens.. fiz um outro layout, so para mostrar a você a importancia do uso de DIV segundo as regras da W3C e o seu poder.

segue aqui em anexo o que eu fiz só de brincadeira

post-155230-13884959133022_thumb.jpg

Link para o comentário
Compartilhar em outros sites

é o Seguinte acabei de notar tb que no google chrome a barra de rolagem dele nao Funciona o.o o que poderia ser Obss: A pagina inicial nao pega a barra de rolagem horinzontal nem a vertical mais nas outras paginas a vertical Funciona e sobre o Fire fox aqui no meu trampo ele abriu nomal tb vou manda a print la de casa quando chegar ali pelas 22:00

Link para o comentário
Compartilhar em outros sites

  • Moderador
é o Seguinte acabei de notar tb que no google chrome a barra de rolagem dele nao Funciona o.o o que poderia ser Obss: A pagina inicial nao pega a barra de rolagem horinzontal nem a vertical mais nas outras paginas a vertical Funciona e sobre o Fire fox aqui no meu trampo ele abriu nomal tb vou manda a print la de casa quando chegar ali pelas 22:00

faça uma experiencia, retire aqueles javascript de proteçao q você colocou no seu site... todos... veja se nao é incompatibilidade.

Link para o comentário
Compartilhar em outros sites

  • Moderador
Deixa o GOOGLE chrome pra la nunca apoiei ele mesmo rs... Eu queria saber como faço para colocar um efeio no meu menu eu queria que ficase uma Faixa em baixo do link que o Mouse estiver em Cima e se movimentase para outro link juntocom o mouse

deixa eu te dar um conselho amigo, faça seu site para TODOS os navegadores, existem aqueles que só usam um.

sobre sua duvida.. no css faça assim:

a {text-decoration: none; }

a:hover{text-decoration: overline;}

Link para o comentário
Compartilhar em outros sites

  • Moderador
Eu ja consegui arrumar isso ^^ AGORA TA arrebenta XD

o problema certamente ta na sua pagina amigo, o google chrome é altamente recomendado. e atualmente a versao que está é totalmente compativel com com CSS3 o que leva a deduzir q tudo mais antigo roda.

certamente é alguma coisa que você colocou, algum código.. javascript.. seja la o que que for.. que esta impossibilitando de usar o scrollbar.

vi que você colocou o loading que queria. o tempo de carregamento dobrou. ou seja, quem quiser acessar com uma internet nao muito razoavelmente boa. nunca entrará no seu site. e também ainda continuo te rcomendando que troque o layout table por div. deixa mais leve e mais rápido de carregar.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...