All pastes #962481 Raw Edit

Stuff

public text v1 · immutable
#962481 ·published 2008-03-29 19:57 UTC
rendered paste body
#!/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&ccedil;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&ccedil;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);