Ir ao conteúdo

Formulario html e php


gu250

Posts recomendados

Postado

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 = "[email protected]";
$EmailTo = "[email protected]";
$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:[email protected]">[email protected]</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

Postado

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:

Postado

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:

  • Moderador
Postado

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();
}

Postado

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 = "[email protected]";
$EmailTo = "[email protected]";
$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

  • Membro VIP
Postado

   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..

Postado

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 = "[email protected]";
$EmailTo = "[email protected]";
$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\">";
}
?>

  • Moderador
Postado

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();
}

  • 5 semanas depois...

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...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!