Ir para conteúdo
Fórum Script Brasil
  • 0

Como enviar dados para um campo oculto, após o envio do form.


Guest Leonardo Carvalho

Pergunta

Guest Leonardo Carvalho

olá a todos, este é meu primeiro post aq no forum imasters. sou iniciante em php e estou precisando de uma ajuda.

é coisa simples, tenho certeza que vocês vão me ajudar.

bem, estou fazendo um programinha que recebe dados de um formulário (nome, e-mail e cpf), verifica se aquele cpf já é cadastrado, e se não for, gera um número único formado por 3 dígitos aleatórios, cadastra todos os dados no banco e envia um-mail para a pessoa com o seu número.

só que preciso gravar este número em um campo oculto. então, como fazer para que um campo oculto receba um dado depois de ter enviado o formulário?

o cód está assim:

<html>

<head>

<title>Documento sem título</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

<body>

<form name="form1" method="post" action="" onSubmit="<?php processa();?>">

<p>nome:

<input name="nome" type="text" id="nome">

</p>

<p>e-mail:

<input name="email" type="text" id="email">

</p>

<p>cpf:

<input name="cpf" type="text" id="cpf">

</p>

<p>

<input type="submit" name="Submit" value="Enviar">

<input name="num_sorteio" type="hidden" id="num_sorteio" value="<?php echo @$sorteio?>">

</p>

</form>

<?php

//configurações

include('../adodb5/adodb.inc.php');

function conecta(){

global $bd;

$bd = ADONewConnection('mysqlt');

$bd->Connect('localhost','root', '', 'sorteio');

}

conecta();

//recebe os dados do form

$dados = $_POST;

//print_r($dados); exit();

$nome = @$dados['nome'];

$email = @$dados['email'];

$cpf = @$dados['cpf'];

if(!empty($dados['email'])){

if (!ereg("^([0-9,a-z,A-Z]+)([.,_]([0-9,a-z,A-Z]+))*[@]([0-9,a-z,A-Z]+)([.,_,-]([0-9,a-z,A-Z]+))*[.]([0-9,a-z,A-Z]){2}([0-9,a-z,A-Z])?$", $email)) {

header("location: sistema_2.php?msg_sorteio=<script Language=JavaScript'>

window.alert('E-mail inválido! Digite novamente por favor.');

</script>");

exit();

}

}

if(!empty($dados['cpf])){

//inclui o valida_cpf

include("valida_cpf.php");

if($status == false){

header("location: sistema_2.php?msg_sorteio=<script Language='JavaScript'>

window.alert('CPF inválido! Digite novamente por favor.');

</script>");

exit();

}

function verifica_cpf(){

global $cpf;

global $bd;

//global $repetiu_cpf;

//$bd -> debug = 1;

$select_cpf = $bd->Execute('SELECT cpf FROM cadastro_sorteio');

if($select_cpf){

$repetiu_cpf = 0;

while($dados = $select_cpf -> FetchRow()){

if($dados['cpf'] == $cpf){

$repetiu_cpf = 1;

break;

}

//else $repetiu_cpf = 0;

}

if($repetiu_cpf == 1){

header("location: sistema_2.php?msg_sorteio=<script Language=JavaScript'>

window.alert('Já consta um cadastro com este CPF em nosso banco de dados. Boa sorte!');

</script>");

exit();

}

}

}

verifica_cpf();

//gera um vetor com 3 números aleatórios

function gera(){

global $vet_aleatorio;

$i = 0;

while($i<4){

$vet_aleatorio[$i] = rand(0, 9);

$i++;

}

}

//verifica se já há ocorrência do número no bd

function compara(){

global $vet_aleatorio;

global $bd;

global $repetiu;

$select = $bd->Execute('SELECT num_sorteio FROM cadastro_sorteio');

if($select){

while($dados = $select -> FetchRow()){

if($dados['num_sorteio] == $vet_aleatorio){

$repetiu = 1;

break;

}

else $repetiu = 0;

}

}

}

gera();

compara();

if($repetiu == 1){

while($repetiu == true){//enquanto repete, gera e compara

gera();

compara();

}

}

else{

$sorteio = $vet_aleatorio[0].$vet_aleatorio[1].$vet_aleatorio[2].$vet_aleatorio[3];

$sql = " INSERT INTO `cadastro_sorteio` (

`id` ,

`nome` ,

`email` ,

`cpf` ,

`num_sorteio` ,

`contemplado`

)

VALUES (

NULL , '$nome', '$email', '$cpf', '$sorteio', 'N'

);";

if($insert = $bd -> Execute($sql)){

$mensagem = "Seu número: ".$sorteio.". Boa sorte";

/*mail($email, "Seu número para o sorteio", $mensagem,

"From: leoliveira00@yahoo.com.br\r\n" .

"Reply-To: leoliveira00@yahoo.com.br\r\n";*/

header("location: sistema_2.php?msg_sorteio=<script Language='JavaScript'>

window.alert('Verifique seu número da sorte no seu e-mail!');

</script>");

exit();

}

}

}

?>

</body>

</html>

e para a validação do cpf estou usando este:

<?php

//verifica se o cpf informado é número

if(!is_numeric($cpf)){ //a variável cpf está declarada em sistema de sorteio

$status = false;

}

else{//verifica

if(($cpf == '11111111111') || ($cpf == '22222222222') ||

($cpf == '33333333333') || ($cpf == '44444444444') ||

($cpf == '55555555555') || ($cpf == '66666666666') ||

($cpf == '77777777777') || ($cpf == '88888888888') ||

($cpf == '99999999999') || ($cpf == '00000000000') ){

$status = false;

}

else{//pega o dígito verificador

$dv_informado = substr($cpf, 9,2);

for($i=0; $i<=8; $i++) {

$digito[$i] = substr($cpf, $i,1);

}

//calcula o valor do décimo dígito de verificação

$posicao = 10;

$soma = 0;

for($i=0; $i<=8; $i++){

$soma = $soma + $digito[$i] * $posicao;

$posicao = $posicao - 1;

}

$digito[9] = $soma % 11;

if($digito[9] < 2){

$digito[9] = 0;

}

else{

$digito[9] = 11 - $digito[9];

}

//calcula o valor do décimo primeiro dígito verificador

$posicao = 11;

$soma = 0;

for ($i=0; $i<=9; $i++){

$soma = $soma + $digito[$i] * $posicao;

$posicao = $posicao - 1;

}

$digito[10] = $soma % 11;

if ($digito[10] < 2){

$digito[10] = 0;

}

else{

$digito[10] = 11 - $digito[10];

}

//compara o DV calculado com o informado

$dv = $digito[9] * 10 + $digito[10];

if ($dv != $dv_informado){

$status = false;

}

else

$status = true;

}//fecha else

}

?>

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

suponho que você coloque esse valor (o numero de 3 digitos aleatórios) dentro de uma variavel...

exemplificando: digamos que o nome dessa variavel é $numero, e no seu formulário você tem um campo escondido, então vamos ao código:

html:

<input type="text" name="txt1" style="display:none;" value="<?$numero?>">

nesse html eu apliquei css pra esconder o campo tipo texto, o valor dele é o valor da variavel $numero

em seguida você pega esse valor com o $_POST e faz o que quizer com ele

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...