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