Cara, eu já fiz o script, só estava esperando a liberação de meu servidor, para que eu possa testar o envio de emails. Mas visto que você tem pressa, aí vai o script prontinho. Lembrando que para acessar a página de administração você deverá incluir a querystring
?admin ao link do arquivo.
#!/usr/bin/perl
print "Content-type:text/html\n\n";
$usuarios="usuarios.txt"; # Arquivo de logs de usuários
$login="demo"; # Login do administrador
$senha="demo"; # Senha do administrador
$site = "meusite@site.com"; # Email de seu Site
$assunto = "Dados do cadastro"; # Assunto da mensagem à enviar aos usuários
$sendmail = "/usr/sbin/sendmail"; # Local do sendmail
$mensagem =qq| # Coloque abaixo a mensagem que usuário cadastrado receberá em seu email. (HTML Ativado)
Olá usuário, você está recebendo este email porque se cadastrou no site $site.
Abaixo estão os dados de seu cadastro:
Nome: $CAMPO{nome}
Senha: <b><em>$CAMPO{senha}</em</b>
Atenciosamente,
$site
|;
$protegido=qq|
<!-- COLOQUE AQuI O CONTEÚDO PROTEGIDO DE SEU SITE //-->
<!-- COLOQUE AQuI O CONTEÚDO PROTEGIDO DE SEU SITE //-->
|;
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@conteudo = split(/&/, $buffer);
foreach $par (@conteudo) {
($campo, $valor) = split(/=/, $par);
$valor =~ tr/+/ /;
$valor =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$CAMPO{$campo} = $valor;
}
$qs = "$ENV{QUERY_STRING}";
if ($qs eq ""){
&index;
}
if ($qs eq "admin"){
print qq|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Acesso Restrito</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
.texto {font-family:Sans-Serif;font-size:8pt}
INPUT {font-family:Sans-Serif;font-size:8pt; font-weight:bold}
A {font-family:Sans-Serif;font-size:8pt; color:#888888; text-decoration:none}
A:hover{font-family:Sans-Serif;font-size:8pt; color:#333333; text-decoration:none}
</style>
</head>
<body>
<form name="form1" method="post" action="?logar">
<table width="100%">
<tr>
<td bgcolor="#E8E8E8"><table width="100%" class="texto">
<tr>
<td bgcolor="#003333" colspan="2"><div align="center"><font color="#FFFFFF"><strong>Acesso
Restrito</strong></font> </div></td>
</tr>
<tr>
<td colspan="2">Se você é o administrador, logue-se no
campo abaixo</td>
</tr>
<tr>
<td width="50%"><div align="right">Login:</div></td>
<td width="50%"><input name="login" type="text" id="login" value=""></td>
</tr>
<tr>
<td><div align="right">Senha:</div></td>
<td><input name="senha" type="password" id="senha2" value=""></td>
</tr>
<tr>
<td> </td>
<td><input name="submit" type="submit" value="Entrar"></td>
</tr>
</table></td>
</tr>
</table>
</form>
</body>
</html>
|;
}
if ($qs eq "cadastra"){
&cadastra;
}
if ($qs eq "cadastrar"){
&cadastrar;
}
if ($qs eq "edita"){
&edita;
}
if ($qs eq "logar"){
if ($CAMPO{login} eq "$login"){
if ($CAMPO{senha} eq "$senha"){
open(USUARIOS,$usuarios);
@usuarios = <USUARIOS>;
close(USUARIOS);
print qq|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Acesso Restrito</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
.texto {font-family:Sans-Serif;font-size:8pt}
INPUT {font-family:Sans-Serif;font-size:8pt; font-weight:bold}
A {font-family:Sans-Serif;font-size:8pt; color:#888888; text-decoration:none}
A:hover{font-family:Sans-Serif;font-size:8pt; color:#333333; text-decoration:none}
</style>
</head>
<body>
<form name="form1" method="post" action="?edita">
<table width="100%">
<tr>
<td bgcolor="#E8E8E8"><table width="100%" class="texto">
<tr>
<td width="100%" bgcolor="#003333"><div align="center"><font color="#FFFFFF"><strong>Acesso
Restrito</strong></font> </div></td>
</tr>
<tr>
<td>Abaixo está a lista de usuários cadastrados. Os
dados estão organizados como: NOME\|EMAIL\|SENHA\| <br>
Consequentemente, você pode adicionar senhas aos usuários
que ainda não possuem na formatação especificada
acima: </td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td><div align="center">
<textarea name="usuarios" cols="100%" rows="10" id="usuarios">@usuarios</textarea>
</div></td>
</tr>
<tr>
<td><div align="center"> </div></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td height="17"><strong>ATENÇÃO</strong>: Se você modificou/adicionou
uma senha à um usuário, coloque o email do usuário
para que ele seja informado: Caso contrário deixe o campo
abaixo vazio</td>
</tr>
<tr>
<td><div align="center">
<input name="sendmail" type="text" id="sendmail" value="">
</div></td>
</tr>
<tr>
<td><div align="center"> </div></td>
</tr>
<tr>
<td> <div align="center">
<input name="submit2" type="submit" value="Modificar">
</div></td>
</tr>
</table></td>
</tr>
</table>
</form>
</body>
</html>
|;
}else{print qq|Senha errada!|;}
}else{print qq|Login errado!|;}
}
if ($qs eq "verifica"){
&verifica;
}
sub cadastra{
print qq|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Cadastro</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
.texto {font-family:Sans-Serif;font-size:8pt}
INPUT {font-family:Sans-Serif;font-size:8pt; font-weight:bold}
A {font-family:Sans-Serif;font-size:8pt; color:#888888; text-decoration:none}
A:hover{font-family:Sans-Serif;font-size:8pt; color:#333333; text-decoration:none}
</style>
</head>
<body>
<form name="form1" method="post" action="?cadastrar">
<table width="100%">
<tr>
<td bgcolor="#E8E8E8"><table width="100%" class="texto">
<tr>
<td bgcolor="#003333" colspan="2"><div align="center"><font color="#FFFFFF"><strong>Cadastro</strong></font></div></td>
</tr>
<tr>
<td colspan="2">Complete os campos abaixo e clique em cadastrar.</td>
</tr>
<tr>
<td width="50%"><div align="right">Nome:</div></td>
<td width="50%"><input name="nome" type="text" id="login2" value=""></td>
</tr>
<tr>
<td><div align="right">E-mail:</div></td>
<td><input name="email" type="text" id="email" value=""></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td><input name="submit" type="submit" value="Cadastrar"></td>
</tr>
</table></td>
</tr>
</table>
</form>
</body>
</html>
|;}
sub cadastrar{
$a="0";
open(USUARIOS,$usuarios);
@usuarios = <USUARIOS>;
close(USUARIOS);
foreach (@usuarios){
chomp;
($nome,$email,$senha) = split(/\|/);
$nome =~ s/Nome://;
$email =~ s/Email://;
$senha =~ s/Senha://;
if ($nome eq "$CAMPO{nome}"){
$a = "1";
}else{}}
if ($a eq "1"){
print qq|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Cadastro</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
.texto {font-family:Sans-Serif;font-size:8pt}
INPUT {font-family:Sans-Serif;font-size:8pt; font-weight:bold}
A {font-family:Sans-Serif;font-size:8pt; color:#888888; text-decoration:none}
A:hover{font-family:Sans-Serif;font-size:8pt; color:#333333; text-decoration:none}
</style>
</head>
<body>
<form name="form1" method="post" action="?cadastrar">
<table width="100%">
<tr>
<td bgcolor="#E8E8E8"><table width="100%" class="texto">
<tr>
<td width="100%" bgcolor="#003333"><div align="center"><font color="#FFFFFF"><strong>Cadastro</strong></font></div></td>
</tr>
<tr>
<td>Este usuário já existe, volte e tente novamente.
</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td><input name="Voltar" type="button" id="Voltar" value="Voltar" onClick="self.location.href('java script:history.back()')"></td>
</tr>
</table></td>
</tr>
</table>
</form>
</body>
</html>
|;
}else{
print qq|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Cadastro</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
.texto {font-family:Sans-Serif;font-size:8pt}
INPUT {font-family:Sans-Serif;font-size:8pt; font-weight:bold}
A {font-family:Sans-Serif;font-size:8pt; color:#888888; text-decoration:none}
A:hover{font-family:Sans-Serif;font-size:8pt; color:#333333; text-decoration:none}
</style>
</head>
<body>
<form name="form1" method="post" action="?cadastrar">
<table width="100%">
<tr>
<td bgcolor="#E8E8E8"><table width="100%" class="texto">
<tr>
<td width="100%" bgcolor="#003333"><div align="center"><font color="#FFFFFF"><strong>Cadastro</strong></font></div></td>
</tr>
<tr>
<td>Parabéns $CAMPO{nome}, você foi cadastrado com sucesso.<br>
Após a liberação de seu cadastro você receberá um email contendo o login e a senha.</td>
</tr>
</table></td>
</tr>
</table>
</form>
</body>
</html>
|;
&grava;
}}
sub edita{
open(USUARIOS,">$usuarios");
print USUARIOS $CAMPO{usuarios};
close(USUARIOS);
open(USUARIOS,"$usuarios");
@usuarios = <USUARIOS>;
close(USUARIOS);
open(SENDMAIL,"|$sendmail -t");
print SENDMAIL qq|
To:$CAMPO{sendmail}
From:$site
Subject:$assunto
Content-type:text/html
$mensagem|;
close(SENDMAIL);
print qq|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Acesso Restrito</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
.texto {font-family:Sans-Serif;font-size:8pt}
INPUT {font-family:Sans-Serif;font-size:8pt; font-weight:bold}
A {font-family:Sans-Serif;font-size:8pt; color:#888888; text-decoration:none}
A:hover{font-family:Sans-Serif;font-size:8pt; color:#333333; text-decoration:none}
</style>
</head>
<body>
<form name="form1" method="post" action="?edita">
<table width="100%">
<tr>
<td bgcolor="#E8E8E8"><table width="100%" class="texto">
<tr>
<td width="100%" bgcolor="#003333"><div align="center"><font color="#FFFFFF"><strong>Acesso
Restrito</strong></font> </div></td>
</tr>
<tr>
<td>Os dados foram editados com sucesso, veja como ficou sua lista de usuários: </td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td><div align="center">
<textarea name="usuarios" cols="100%" rows="10" id="usuarios">@usuarios</textarea>
</div></td>
</tr>
<tr>
<td><div align="center"> </div></td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td height="17"><strong>ATENÇÃO</strong>: Se você modificou/adicionou
uma senha à um usuário, coloque o email do usuário
para que ele seja informado: Caso contrário deixe o campo
abaixo vazio</td>
</tr>
<tr>
<td><div align="center">
<input name="sendmail" type="text" id="sendmail" value="">
</div></td>
</tr>
<tr>
<td><div align="center"> </div></td>
</tr>
<tr>
<td> <div align="center">
<input name="submit2" type="submit" value="Modificar">
</div></td>
</tr>
</table></td>
</tr>
</table>
</form>
</body>
</html>
|;
}
sub grava{
open(USUARIOS,">>$usuarios");
print USUARIOS "Nome:$CAMPO{nome}|Email:$CAMPO{email}|Senha:$CAMPO{senha}|";
close(USUARIOS);
}
sub index{
print qq|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Acesso Restrito</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
.texto {font-family:Sans-Serif;font-size:8pt}
INPUT {font-family:Sans-Serif;font-size:8pt; font-weight:bold}
A {font-family:Sans-Serif;font-size:8pt; color:#888888; text-decoration:none}
A:hover{font-family:Sans-Serif;font-size:8pt; color:#333333; text-decoration:none}
</style>
</head>
<body>
<form name="form1" method="post" action="?verifica">
<table width="100%">
<tr>
<td bgcolor="#E8E8E8"><table width="100%" class="texto">
<tr>
<td bgcolor="#003333" colspan="2"><div align="center"><font color="#FFFFFF"><strong>Acesso
Restrito</strong></font> </div></td>
</tr>
<tr>
<td colspan="2">Você deve ser um usuário registrado antes
de prosseguir.</td>
</tr>
<tr>
<td width="50%"><div align="right">Nome:</div></td>
<td width="50%"><input name="nome" type="text" id="nome" value=""></td>
</tr>
<tr>
<td><div align="right">Senha:</div></td>
<td><input name="senha" type="password" id="senha2" value=""></td>
</tr>
<tr>
<td> </td>
<td><input name="submit" type="submit" value="Entrar"></td>
</tr>
<tr>
<td> </td>
<td>Não é cadastrado? <a href="?cadastra">Clique aqui</a></td>
</tr>
</table></td>
</tr>
</table>
</form>
</body>
</html>
|;}
sub verifica{
if ($CAMPO{senha} eq ""){
print qq|Sua senha esta errada ou ainda não foi ativada|;
}else{
open(USUARIOS,"$usuarios");
@usuarios = <USUARIOS>;
close(USUARIOS);
foreach (@usuarios){
chomp;
($n,$e,$s) = split(/\|/);
$n=~ s/Nome://;
$e =~ s/Email://;
$s =~ s/Senha://;
if ($CAMPO{nome} eq "$n"){
if ($CAMPO{senha} eq "$s"){
print "$protegido";
}else{print qq|Senha errada!|;}
}else{print qq|Login errado!|;}
}}}
Teste aí e veja se esta funcionando, ok!