#!/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 = <INFO>; # Lê o arquivo para um Array
close(INFO);
#cria o Div de Usuarios cadastrados
print "<div class='usuarios_cadastrados'> ";
#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 "</div>";
}
sub cria_form_alteracao_cadastro{
my $webPage = shift;
#
#
# TODO: Ler o Arquivo texto e acertar a criação desse formulçario.
#
#
print "<div class='formCadastroPessoas'>";
print $webPage ->start_form( -name => "Altera" , -method=>"post" -action => "http://localhost/cgi-bin/index.pl");
print "\n<br>"."Tipo*".$webPage ->popup_menu(-name => "tipo", -values=>['Funcionario','Cliente']);
print "\n<br>"."Nome*".$webPage -> textfield(-name=>"nome", -value=>"");
print "\n<br>"."Endereço*".$webPage -> textfield(-name=>"endereco", -value=>"");
print "\n<br>"."Bairro".$webPage -> textfield(-name=>"bairro", -value=>"");
print "\n<br>"."CEP".$webPage -> textfield(-name=>"cep", -value=>"");
print "\n<br>"."CPF*".$webPage -> textfield(-name=>"cpf" -value=>"");
print "\n<br>"."E-mail".$webPage -> textfield(-name=>"email", -value=>"");
print "\n<br>"."Senha*". $webPage -> textfield(-name=>"senha", -value=>"");
print "\n<br>"."Confirme*".$webPage -> textfield(-name=>"confirme", -value=>"");
print "\n<br>".$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 "<div class='formCadastroPessoas'>";
print $webPage ->start_form( -name => "Cadastra" , -method=>"post", -action => "http://localhost/cgi-bin/index.pl");
print "\n<br>"."Tipo*".$webPage ->popup_menu(-name => "tipo", -values=>['Funcionario','Cliente']);
print "\n<br>"."Nome*".$webPage -> textfield(-name=>"nome", -value=>"");
print "\n<br>"."Endereço*".$webPage -> textfield(-name=>"endereco", -value=>"");
print "\n<br>"."Bairro".$webPage -> textfield(-name=>"bairro", -value=>"");
print "\n<br>"."CEP".$webPage -> textfield(-name=>"cep", -value=>"");
print "\n<br>"."CPF*".$webPage -> textfield(-name=>"cpf", -value=>"");
print "\n<br>"."E-mail".$webPage -> textfield(-name=>"email", -value=>"");
print "\n<br>"."Senha*". $webPage -> textfield(-name=>"senha", -value=>"");
print "\n<br>"."Confirme*".$webPage -> textfield(-name=>"confirme", -value=>"");
print "\n<br>".$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 = <INFO>;
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 = <INFO>;
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);