Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
gu250

Formulario html e php

Recommended Posts

Boa noite a todos,

Estou com problemas no formulário que montei. O formulário é bem simples, é somente para fichas de inscrição para um evento, está funcionando mas estou com problema no bloqueio caso esteja em branco ou se colocou por exemplo um e-mail sem o @...

Tem tres arquivos (index_teste.html), (teste.php) e (contactthanks2.php)

Obs: Eu utilizo o Dreamweaver CS5.

Segue abaixo os arquivos:

index_teste.html

<html>
<head>
<title>Os Farrapos Trilheiros - Contato</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<div id="page-wrap">

<img src="images/title.jpg"/>
<p> </p>
<p>Está disposto o formulário abaixo para cadastramento da ficha de inscrição.</p>
<p>Um abraço a todos.</p>
<p>Motogrupo OS FARRAPOS TRILHEIROS</p>
<p>OBS: Após o cadastro terá o numero da conta para realizar o depósito e após retornar com o compravante.</p>
<p>OBS2: Se não conter todos os dados, a ficha não será válida.</p>
<div id="contact-area">
<form method="post" action="teste.php" onSubmit="return verificacao()">
<p>
<label for="Name">Nome:</label>
<input type="text" name="Name" id="Name" />
<label for="City">Cidade:</label>
<input type="text" name="City" id="City" />
<label for="Group">Grupo:</label>
<input type="text" name="Group" />
<label for="Email">E-mail:</label>
<input type="text" name="Email" id="Email" />
<label for="RG">RG:</label>
<input type="text" name="Rg" id="Rg" />
<label for="Telefone">Telefone:</label>
<input type="text" name="Telefone" id="Telefone" />
<label for="Camisa">Tamanho da Camisa:</label>
<input type="text" name="Camisa" id="Camisa" />
<input type="submit" name="submit" value="Enviar" class="submit-button" />
</p>
</form>
<p> </p>

</div>

</div>
</body>
</html>

teste.php

<?php

$EmailFrom = "gu250@ig.com.br";
$EmailTo = "gu250@ig.com.br";
$Subject = "Ficha Farrapos";
$Name = trim($_POST['Name']);
$City = trim($_POST['City']);
$Group = trim($_POST['Group']);
$Email = trim($_POST['Email']);
$RG = trim($_POST['Rg']);
$Telefone = trim($_POST['Telefone']);
$TC = trim($_POST['Camisa']);
if(empty($Name)){
echo "<script>alert('Preencha o Nome')</script>";
}elseif(empty($City)){
echo "<script>alert('Preencha a Cidade')</script>";
}elseif(empty($Group)){
echo "<script>alert('Preencha o Grupo')</script>";
}elseif(empty($Email)){
echo "<script>alert('Preencha o E-mail')</script>";
}elseif(empty($RG)){
echo "<script>alert('Preencha o RG')</script>";
}elseif(empty($Telefone)){
echo "<script>alert('Preencha o Telefone')</script>";
}elseif(empty($TC)){
echo "<script>alert('Preencha o Tamanho da Camisa')</script>";
}else{



}
// validation
$validationOK=true;
if (!$validationOK) {
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
exit;
}

// prepare email body text
$Body = "";
$Body .= "Nome: ";
$Body .= $Name;
$Body .= "\n";
$Body .= "Cidade: ";
$Body .= $City;
$Body .= "\n";
$Body .= "Grupo: ";
$Body .= $Group;
$Body .= "\n";
$Body .= "Email: ";
$Body .= $Email;
$Body .= "\n";
$Body .= "Rg: ";
$Body .= $RG;
$Body .= "\n";
$Body .= "Telefone: ";
$Body .= $Telefone;
$Body .= "\n";
$Body .= "Camisa: ";
$Body .= $Camisa;
$Body .= "\n";

// send email
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");

// redirect to success page
if ($success){
print "<meta http-equiv=\"refresh\" content=\"0;URL=contactthanks.php\">";
}
else{
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
}
?>

contactthanks2.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Strict//EN">

<head>
<title>Os Farrapos Trilheiros - Ficha de Inscrição</title>

<link rel="stylesheet" type="text/css" href="style.css" />
</head>

<body>

<div id="page-wrap">

<img src="images/title.jpg"/><br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<p> <thanks class="">Sua inscrição foi recebida pelo Grupo Os Farrapos Trilheiros. Para fazer o depósito segue a conta:</thanks></p>
<p>Banco Sicredi<BR>
Agencia :0167<BR>
Conta corrente: xxxxx-x<BR>
Valor: R$60,00</p>
<p><BR>
<font size="+1">Após isso, mandar o comprovante para o e-mail: <A href="mailto:gu250@ig.com.br">xxxxx@ig.com.br</A></font></p>
<p><font size="+1">- As inscrições antecipadas encerram dia xx/xx/2013 ás 00:00h. Sem envio do comprovante de depósito a ficha de inscrição será anulada.</font></p>
<p><BR>
</p>
</div>
</body>

</html>

O meu problema é que quando você entra no index_teste.html e voce deixa algum campo em branco ele da o erro que precisa preencher o campo, mas ele não volta na página do index_teste para preenche-lo ele vai diretamente para a pagina do contactthanks2.php. Não sei qual código eu estou esquecendo!

Outra dúvida que eu tenho é tipo em relação ao rg como eu posso delimitar a quantidade de números do campo?

Obrigado, e espero ajuda ^_^

Caso desejam visualizar as páginas para algum efeito elas estão localizadas:

http://www.osfarrapostrilheiros.com.br/fichas/index_teste.html

http://www.osfarrapostrilheiros.com.br/fichas/teste.php

http://www.osfarrapostrilheiros.com.br/fichas/contactthanks2.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você precisa colocar uma função if para só enviar o formulário se não existirem erros

Ex.:


$erros = array();

if (empty($campo do form)) {
$erros[] = 'Você deixou algum campo em branco.';
} else { Envia o formulario
$sucesso = true;

}
}

<? if(count($erros)): ?> // aqui ele conta os dados dentro da array "erros que definimos no início do script. Se for = 0 ele pula o próximo passo, se não ele executa o comando que verifica qual é o erro e exibe na tela.
<ul>
<? foreach ($erros as $erro): ?>
<li>
<?= $erro ?>
</li>
<? endforeach ?>
</ul>
<? endif ?>
<? if (isset($sucesso)): ?>// aqui ele verifica se existe a variável "$sucesso" que nós definimos que iria existir caso não houvesse erros.

<p>Mensagem enviada com sucesso! </p>// Mensagem exibida ao usuário caso as condiçoes acima forem preenchidas

<? endif ?>

Para delimitar o número de caracteres você pode definir com


<input name="nome_do_campo" type="text" size="40" />//Aqui ele define o tamanho do campo para 40 caracteres.

Mas no caso de você querer criar uma máscara para já ficar no formato do rg (com os pontos e traços no lugar) você vai ter que pesquisar sobre máscaras de campo em javascript.

Espero ter ajudado:lol:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só não consegui entender aonde eu coloco isso para funcionar, pois o meu arquivo já tem o erro falando o que você precisa digitar, ou seja então preciso só adicionar a parte do $erro a todos eles? :confused:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você testa todos os campos.. não tem muita necessidade de você testa-los um por um.

agrupe todos e use o exit para sair da função.

exemplo:


if( empty($nome) OR
empty($email) OR
empty($rg)){

sua mensagem de erro
exit();
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, desculpa a demora para responder é que durante semana trabalho... assim tentei fazer pelo o q você falou ali em cima meu arquivo ficou o seguinte:

Formulário=(http://www.osfarrapostrilheiros.com.br/fichas/teste2.html)

teste2.php - (http://www.osfarrapostrilheiros.com.br/fichas/teste2.php)

<?php

$EmailFrom = "gu250@ig.com.br";
$EmailTo = "gu250@ig.com.br";
$Subject = "Ficha Farrapos";
$Name = trim($_POST['Name']);
$City = trim($_POST['City']);
$Group = trim($_POST['Group']);
$Email = trim($_POST['Email']);
$RG = trim($_POST['Rg']);
$Telefone = trim($_POST['Telefone']);
$TC = trim($_POST['Camisa']);
if(empty($Name) OR
empty($City) OR
empty($Group) OR
empty($Email) OR
empty($RG) OR
empty($Telefone) OR
empty($TC)){

'Você não digitou algum campo!'
exit();
}
// validation
$validationOK=true;
if (!$validationOK) {
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
exit;
}

// prepare email body text
$Body = "";
$Body .= "Nome: ";
$Body .= $Name;
$Body .= "\n";
$Body .= "Cidade: ";
$Body .= $City;
$Body .= "\n";
$Body .= "Grupo: ";
$Body .= $Group;
$Body .= "\n";
$Body .= "Email: ";
$Body .= $Email;
$Body .= "\n";
$Body .= "Rg: ";
$Body .= $RG;
$Body .= "\n";
$Body .= "Telefone: ";
$Body .= $Telefone;
$Body .= "\n";
$Body .= "Camisa: ";
$Body .= $Camisa;
$Body .= "\n";

// send email
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");

// redirect to success page
if ($success){
print "<meta http-equiv=\"refresh\" content=\"0;URL=contactthanks.php\">";
}
else{
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
}
?>

e na hora q eu tento acessá-lo na internet ele dá o seguinte erro:

Parse error: syntax error, unexpected T_EXIT in /hifive/www/osfarrapostrilheiros.com.br/htdocs/fichas/teste2.php on line 22

Compartilhar este post


Link para o post
Compartilhar em outros sites

   empty($Telefone) OR
empty($TC)){

[COLOR="Red"][B] 'Você não digitou algum campo!'[/B][/COLOR]
exit();
}

O erro está na linha acima.. o que você quis dizer com essa mensagem?

Não faltou um echo ou print ou die? E ponto-e-virgula?

// validation
$validationOK=[COLOR="Red"][B]true[/B][/COLOR];
if ([COLOR="Red"][B]![/B][/COLOR]$validationOK) {
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
exit;
}

E esse código é totalmente inútil.. a condição nunca será verdadeira..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tá, agora voltei a mesma parte da minha pergunta em que se eu digito todos os dados, ele vai para a página de pagamento, e caso eu não digito algum dado, ele vai dar o erro para digitar algum dado, mas não volta para fazer a mudança, ele fica na mesma pagina e só clicando no botao voltar daí.

-Eu acho que teria que criar o "OK" com redirecionamento para a página em que estava sendo digitado as informações, só não sei como fazer isso.

Novo código teste2.php

<?php

$EmailFrom = "gu250@ig.com.br";
$EmailTo = "gu250@ig.com.br";
$Subject = "Ficha Farrapos";
$Name = trim($_POST['Name']);
$City = trim($_POST['City']);
$Group = trim($_POST['Group']);
$Email = trim($_POST['Email']);
$RG = trim($_POST['Rg']);
$Telefone = trim($_POST['Telefone']);
$TC = trim($_POST['Camisa']);
if(empty($Name) OR
empty($City) OR
empty($Group) OR
empty($Email) OR
empty($RG) OR
empty($Telefone) OR
empty($TC)){

echo "<script>alert('Preencha todos os Dados')</script>";
exit();
}

// prepare email body text
$Body = "";
$Body .= "Nome: ";
$Body .= $Name;
$Body .= "\n";
$Body .= "Cidade: ";
$Body .= $City;
$Body .= "\n";
$Body .= "Grupo: ";
$Body .= $Group;
$Body .= "\n";
$Body .= "Email: ";
$Body .= $Email;
$Body .= "\n";
$Body .= "Rg: ";
$Body .= $RG;
$Body .= "\n";
$Body .= "Telefone: ";
$Body .= $Telefone;
$Body .= "\n";
$Body .= "Camisa: ";
$Body .= $Camisa;
$Body .= "\n";

// send email
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");

// redirect to success page
if ($success){
print "<meta http-equiv=\"refresh\" content=\"0;URL=contactthanks.php\">";
}
else{
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente acrescentar o retorno quando der o erro:


if(empty($Name) OR
empty($City) OR
empty($Group) OR
empty($Email) OR
empty($RG) OR
empty($Telefone) OR
empty($TC)){

echo "<script>
alert('Preencha todos os Dados');
[B][COLOR="Red"] history.go(-1);[/COLOR][/B]
</script>";
exit();
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, agora está tudo certo e funcionando devidamente correto.

Obrigado a todos pela ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×