#!/usr/bin/perl -w #Formato do Arquivo: Nome:Apelido:Endereco:Telefone # Apelido é a *UNICA* coisa que não poderá ter modificaões. # Nome é o Nome da Criatura Cadastrada # Telefone é o Telefone da Criatura Cadastrada use strict; use CGI; sub cria_pagina{ my $webPage = shift; print $webPage -> header("text/html"); print $webPage -> start_html(-title => "Trabalho de LTIII", -script => [{ -langugae=>"javascript", -src => "script.js"}]); } sub termina_pagina{ my $webPage = shift; print $webPage->end_html; } sub cria_form_usuarios_cadastrados{ my $webPage = shift; # # Procura todos os valores de Nome do Cadastro. my $arquivo = 'Humanos_Cadastrados.txt'; open(INFO, $arquivo); my @linhas = ; # Lê o arquivo para um Array close(INFO); #cria o Div de Usuarios cadastrados print "
"; #inicia a criação do formulário de seleção de nomes cadastrados. print $webPage->start_form( -method => "post", -action => "http://localhost/cgi-bin/index.pl"); # adiciona um campo invisivel para saber qual o tipo de form. print $webPage->hidden(-name=>'tipo', -default=>['Mudanca_Humano']); #Cria um array Vazio de Nomes. my @nomes = (); # pega todos os nomes e joga em um array. foreach my $linha ( @linhas ){ my @info = split(/:/, $linha); push(@nomes, $info[0]); } #cria o Select com os nomes escolhidos print $webPage -> scrolling_list( -name => 'cadastrados', -values => \@nomes, -size => 5); #adiciona um radiogroup pra saber qual ação tomar com os usuarios cadastrados. print $webPage -> br(); print $webPage -> radio_group(-name=>'Tipo_Alteracao', -values=>['Modificar', 'Apagar'], -default=>'Modificar'); print $webPage -> submit(-name => 'envia', -value => 'envia'); #termina o formulário. print $webPage -> end_form(); print "
"; } sub cria_form_alteracao_cadastro{ my $webPage = shift; # # # TODO: Ler o Arquivo texto e acertar a criação desse formulçario. # # print "
"; print $webPage ->start_form( -name => "Altera" , -method=>"post" -action => "http://localhost/cgi-bin/index.pl"); print "\n
"."Tipo*".$webPage ->popup_menu(-name => "tipo", -values=>['Funcionario','Cliente']); print "\n
"."Nome*".$webPage -> textfield(-name=>"nome", -value=>""); print "\n
"."Endereço*".$webPage -> textfield(-name=>"endereco", -value=>""); print "\n
"."Bairro".$webPage -> textfield(-name=>"bairro", -value=>""); print "\n
"."CEP".$webPage -> textfield(-name=>"cep", -value=>""); print "\n
"."CPF*".$webPage -> textfield(-name=>"cpf" -value=>""); print "\n
"."E-mail".$webPage -> textfield(-name=>"email", -value=>""); print "\n
"."Senha*". $webPage -> textfield(-name=>"senha", -value=>""); print "\n
"."Confirme*".$webPage -> textfield(-name=>"confirme", -value=>""); print "\n
".$webPage -> submit(-name=>"Envia", -onClick=>"tentaEnviar(this);"); print $webPage -> submit(-name=>"Cancela", -onClick=>"limpa(this);"); print $webPage -> end_form(); print $webPage -> end_div(); } sub cria_form_cadastro{ my $webPage = shift; print "
"; print $webPage ->start_form( -name => "Cadastra" , -method=>"post", -action => "http://localhost/cgi-bin/index.pl"); print "\n
"."Tipo*".$webPage ->popup_menu(-name => "tipo", -values=>['Funcionario','Cliente']); print "\n
"."Nome*".$webPage -> textfield(-name=>"nome", -value=>""); print "\n
"."Endereço*".$webPage -> textfield(-name=>"endereco", -value=>""); print "\n
"."Bairro".$webPage -> textfield(-name=>"bairro", -value=>""); print "\n
"."CEP".$webPage -> textfield(-name=>"cep", -value=>""); print "\n
"."CPF*".$webPage -> textfield(-name=>"cpf", -value=>""); print "\n
"."E-mail".$webPage -> textfield(-name=>"email", -value=>""); print "\n
"."Senha*". $webPage -> textfield(-name=>"senha", -value=>""); print "\n
"."Confirme*".$webPage -> textfield(-name=>"confirme", -value=>""); print "\n
".$webPage -> submit(-name=>"Envia", -onClick=>"tentaEnviar(this);"); print $webPage -> submit(-name=>"Cancela", -onClick=>"limpa(this);"); print $webPage -> end_form(); print $webPage -> end_div(); } #apaga o usuario selecionado na lista de usuarios cadastrados. sub apaga_usuario{ my $webPage = shift; $_ = $webPage->param("tipo"); if (not (defined $_ )){ return } if (!(/Mudanca_Humano/)){ return; } $_ = $webPage->param("Tipo_Alteracao"); if (!(/Apagar/)){ return; } #pega o usuario selecionado no Select: $_ = $webPage -> param("cadastrados"); # Lê o arquivo para um Array my $arquivo = 'Humanos_Cadastrados.txt'; open(INFO, $arquivo); my @linhas = ; close(INFO); #abre o arquivo para escrita open(INFO, ">".$arquivo); # pega todos os nomes e joga em um array. foreach my $linha ( @linhas ){ my @info = split(/:/, $linha); if (/$info[0]/){ next; } print INFO $linha; } close(INFO); } sub atualiza_usuario{ my $webPage = shift; $_ = $webPage->param("tipo"); if (not (defined $_ )){ return } if (!(/Mudanca_Humano/)){ return; } $_ = $webPage->param("Tipo_Alteracao"); if (!(/Modificar/)){ return; } #pega o usuario selecionado no Select: $_ = $webPage -> param("cadastrados"); # Lê o arquivo para um Array my $arquivo = 'Humanos_Cadastrados.txt'; open(INFO, $arquivo); my @linhas = ; close(INFO); #abre o arquivo para escrita open(INFO, ">".$arquivo); # pega todos os nomes e joga em um array. foreach my $linha ( @linhas ){ my @info = split(/:/, $linha); if (/$info[1]/){ next; } print INFO $linha; } close(INFO); } sub cria_usuario{ my $webPage = shift; my $nome = (defined $webPage->param("nome")) ? $webPage->param("nome"): "" ; my $endereco = (defined $webPage->param("endereco")) ? $webPage->param("endereco") : ""; my $bairro = (defined $webPage->param("bairro")) ? $webPage->param("bairro") : ""; my $cep = (defined $webPage->param("cep"))? $webPage->param("cep") : ""; my $cpf = (defined $webPage->param("cpf"))? $webPage->param("cpf") : ""; my $email = (defined $webPage->param("email"))? $webPage->param("email") : ""; my $senha = (defined $webPage->param("senha"))? $webPage->param("senha") : ""; open(ARQUIVO, ">>Humanos_Cadastrados.txt"); print ARQUIVO $nome.":".$endereco.":".$bairro.":".$cep.":".$cpf.":".$email.":".$senha."\n"; close(ARQUIVO); } my $webPage = new CGI; cria_pagina($webPage); #faz as alterações de arquivo antes de criar o html da pagina, #para que a pagina reflita as novas coisas do arquivo. apaga_usuario($webPage); atualiza_usuario($webPage); cria_usuario($webPage); cria_form_usuarios_cadastrados($webPage); # Se o formulário "modificar" for selecionados, mostra os campos preenchidos para mudanças, senão, mostra os campos vazios. $_ = $webPage -> param("tipo"); if (defined $_ && /Modificar/){ cria_form_alteracao_cadastro($webPage); } else{ cria_form_cadastro($webPage); } termina_pagina($webPage);