Perl/Cgi [RESOLVIDO]

1. Perl/Cgi [RESOLVIDO]

Danillo Costa
hellnux

(usa Kurumin)

Enviado em 05/08/2011 - 10:17h

Olá,

Sou novo em Perl e CGi. Preciso de gerar um código HTML que ao clicar no botão execute um comando na shell. É possível?

Pensei em algo como:

print "<input type=button onClick=\"ls -al /home\" value='click here'>" ;

A principio nem precisa retornar nada na tela, apenas executar.


  


2. Re: Perl/Cgi [RESOLVIDO]

Daniel Vinciguerra
dvinciguerra

(usa Debian)

Enviado em 05/08/2011 - 21:27h

Existe uma necessidade real para o uso do Shell Script?

Digo isso porque Perl porde e faz tudo que um script bash
faz...

Não é muito usual fazer uma implementação deste tipo tendo
em mente sempre que você esbarra em inumeros aspectos
relacionados a segurança, controle e performance da sua
aplicação.

Contudo, tendo alertado você sobre o risco, posto um exemplo
de como você poderia fazer isso de forma simples.


use CGI;

# creating a new CGI object
my $cgi = CGI->new;

# list directory files if button clicked
my $list = "";
if($cgi->param) {
opendir my $dir, './' or die $!;
foreach ( readdir($dir) ) {
$list .= "<p>$_</p>" if $_ ne '.' && $_ ne '..';
}
closedir $dir;
}

# print output Html
print $cgi->header;
print qq{
<h2>Execute SysCall By Perl</h2>
<form method="post">
<input type="hidden" name="__mode" value="execute">
<input type="submit" value="Execute" />
$list
</form>
};


Este trecho de código faz uma simples listagem no diretório
e exibe os nomes dos arquivos em lista.

Não usa Shell Script mas para isso bastaria um simples:

use IPC::Open3::Simple;
...
$ipc->run('...');

Leia a documentação deste módulo para mais informações:
http://search.cpan.org/~erwan/IPC-Open3-Simple-0.04/lib/IPC/Open3/Simple.pm

Qualquer duvida me avise!

Forte abraço,



3. Re: Perl/Cgi [RESOLVIDO]

Danillo Costa
hellnux

(usa Kurumin)

Enviado em 05/08/2011 - 23:33h

Obrigado dvinciguerra! Vou checar o teu código.

Não chamarei bem um shell script. Há um tempo, desenvolvi um shell script que é gerenciado pelo service. Então, neste cgi bastaria criar alguns botões, cada um chamando um comando, como:

service meu_servico stop


4. Re: Perl/Cgi [RESOLVIDO]

Danillo Costa
hellnux

(usa Kurumin)

Enviado em 07/08/2011 - 13:43h

Resolvido!

Usei o código: http://www.htmlstaff.org/ver.php?id=1662






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts