- Fórum WMO
- → prix's Content
prix's Content
There have been 110 items by prix (Search limited from 21/04/2023)
#659294 Script Em Cgi
Posted by prix on 09/11/2005, 01:21 in CGI/Perl
possivelmente o problema esta na regex mas tenho q ver o html pra ter certeza.
$line =~ s/..\/figuras/figuras/ig;
#654578 Passo A Passo Para Criar Um Sistema De Login
Posted by prix on 26/10/2005, 01:22 in CGI/Perl
se do meu computador eu acessar 2 usuarios diferentes eu vou ter acesso.
no caso você teria que fazer um filtro e somente 1 ip poderia acessar por usuário e ai se vc tiver 2 usuarios diferentes usando 1 computador ao mesmo tempo, voce tem algo que não funcionaria como devido !
nao precisa do refresh basta colocar o codigo em cada script assim se ele estiver na pagina acessando outros locais ele aparece online se ele ficar inativo voce tira ele da lista ate ele acessar algo, e quando ele acessar ele volta na ativa.
se alguem fechar o navegador usando o X voce nao ira detectar.
o refresh nao ira ser efetuado.
se tiver algo que esteja em load constante em seu site java scripts nao irao funcionar para detectar o click no X de fechar e por ai vai.
Seria mais simples usar id, sessões e o ip. para ter segurança.
#654423 Passo A Passo Para Criar Um Sistema De Login
Posted by prix on 25/10/2005, 16:14 in CGI/Perl
corrigindo o amigo jgclnuma lan house, se duas pessoas entrarem nesse site, vão estar com o mesmo login, pois estão em uma rede com internet compartilhada, saca???
Eu entendi o caso do time, é uma boa e to pensando em implementar.teria uma pequena falha, pois se a pessoa estiver numa lan house como fica ? adiciona somente 1 pessoa?
entende ?
teria que ser por id ou nome do usuario para distinguir quem esta logado.
Mas eu não entendi sobre a lan house...como assim ?
O Script verifica se existe o usuario numa lista de usuarios...e existindo o usuario nessa lista, cria-se um segundo arquivo, contendo os usuários logados com seus ips.
então tem de alterar seu script pra destinguir as pessoas...
flw!!
numa lan house, se duas pessoas entrarem nesse site, vão estar com o mesmo login, pois estão em uma rede com internet compartilhada, saca???
Elas estarão com o mesmo IP
Entao se em vez de gravar o ip e no seu sistema onde você grava o usuario
você tivesse algo como o ID no inicio seria de mais facil controle em varios casos.
EXEMPLO:
arquivo de usuarios
ID|Hahahaah|haha|uia|acesso
OUTRAID|Hahahaah3|haha|uia|acesso
OUTRAID|Hahahaah4|haha|uia|acesso
arquivo de ultimos acessos
id|ip_do_usuario|acesso_total|timestamp
O que são as IDs ?
é um valor usado pra identificar ou interligar alguem ou alguma coisa a este valor.
Você pode usar o que quiser como id.
O mais padrão em uso em ids são numeros sequenciais.
exemplo
0000001|Hahahaah|haha|uia|acesso
0000002|Hahahaah|haha|uia|acesso
0000003|Hahahaah|haha|uia|acesso
0000004|Hahahaah|haha|uia|acesso
0000005|Hahahaah|haha|uia|acesso
0000006|Hahahaah|haha|uia|acesso
0000007|Hahahaah|haha|uia|acesso
Não esqueça que para o usuário continuar como online você tera que fazer um script para sempre que ele acessar ou atualizar uma pagina ele atualize o timestamp do arquivo em que grava os ultimos acessos
E você continua podendo manter o IP mantendo o ip você tem acesso a saber se ouve algum acesso irregular.
#653607 Passo A Passo Para Criar Um Sistema De Login
Posted by prix on 22/10/2005, 22:20 in CGI/Perl
Como vou saber se o meu cgi-bin eh protegido ? envie um arquivo para la, e digite, www.seusite.com/cgi-bin/arquivo.zip e tente baixar o arquivo caso você nao consiga o seu cgi-bin eh protegido.
E como alguem vai fazer download entao ?
Simples faça o script renomear o arquivo e move-lo para uma pasta que o download funciona.
Faça o arquivo ficar la por tanto tempo.
E depois apague o arquivo.
Assim somente aquela pessoa sabera qual o nome do arquivo, e logo depois ele nao mais existira.
Gabriel|gabriel|password|acesso|timestamp
Nao sei quem|nao|sei|acesso|timestamp
Hahahaah|haha|uia|acesso|timestamp
Acesso 1 ou 0 caso seja 1 o cara tem acesso aos downloads caso seja 0 ele nao tem.
O que eh o timestamp ?
timestamp eh o modo que o computador grava um evento sua data e hora
ex: 1130029823
Como gravar no banco de dados o ultimo valor em timestamp.
No codigo que você utiliza adicione na linha onde voce salva o banco de dados o seguinte:
$nome|$user|$pass|$acesso|$timestamp
E antes da linha que abre o banco de dados adicione:
$timestamp = time;
#!/usr/bin/perl
open(USER, "users.dat");
@user=<USER>;
close(USER);
$u_online = 0;
$tempo = 500; # 500 significa o tempo em segundos, quem estiver inativo por mais de 500 segundos ira sair da listagem de usuarios online. voce pode alterar para o tempo q desejar.
foreach $usuarios (@user) {
($nome,$usuario,$senha,$acesso,$online) = split(/\|/,$usuarios);
chomp $online;
$diferenca = time-$online;
if (($diferenca < $tempo) && ($diferenca > 0)) { $u_online++; }
}
if ($u_online > 1) { $s = 's'; }
print "Content-Type: text/html\n\n";
print "Tempos um total de $u_online usuário$s online\n";
pS: como você esta neste exemplo utilizando TXT como banco de dados recomendo que mude para MYSQL ou que atribua para cada usuario uma ID e crie outro arquivo para salvar os dados de acesso para gerar a lista de usuarios online.
Pois se você tiver um numero de acesso muito grande isso pode destruir o seu banco de dados.
#652619 Como Utilizar Modules Sem Poder
Posted by prix on 20/10/2005, 02:50 in Artigos, Dicas e Tutoriais de CGI/Perl
Vamos la, vamo usar aqui a module HTML::Template como exemplo, mas este processo pode ser repetir com quase todas as modules.
1. Crie um diretoria chamado modules.
2. Aplique o CHMOD 777 no diretoria modules.
3. Envie a module HTML::Template via ftp para o diretorio modules.
4. Todos os diretorios que forem criados deem o CHMOD 777 e todos os ARQUIVOS .PM devem ser enviados em ASCII e receber o CHMOD 644
5. Apos ter enviada a module para o diretorio modules basta adicionar em seu script:
use lib '/home/seudominio/modules';
6. logo apos adicionar "use lib '/home/seudominio/modules';" coloque:
use HTML::Template;
7. Pronto você já pode utilizar a module
#647148 Instalação De Script Em Cgi
Posted by prix on 04/10/2005, 19:15 in Dúvidas sobre Scripts Prontos de CGI/Perl
pois da um erro na licensa.
caso voce tenha compro seria mais rapido entrar em contato com o suporte deles pedindo a lincensa.
You have no license for using PerlDesk!
Can't locate auto/Log/Agent/logconfig.al
pelomenos eh o que o erro diz. os arquivos podem ser livrarias que geram e verificam a autenticidade do mesmo ou so para conferir se voce tem a mesma.
#640162 Servidor Socket Pelo Cgi
Posted by prix on 17/09/2005, 15:47 in CGI/Perl
http://www.perlfect....s/sockets.shtml
nao vi nenhum em portugues mas se achar posto aqui.
#638027 Cgi - Perl Desk - InstalaÇÃo Erro
Posted by prix on 13/09/2005, 11:51 in Dúvidas sobre Scripts Prontos de CGI/Perl
www.perldesk.com eles tem suporte em espanhol
#637685 QueryString
Posted by prix on 12/09/2005, 16:26 in Artigos, Dicas e Tutoriais de CGI/Perl
mude isso
if ($paginas eq "cgi") { # faz as comparações
open(A,"$paginas.html");
@pagina = <A>;
close(A);
print "@pagina";
para
if ($paginas eq "perl") { # faz as comparações
open(A,"cgi.html");
@pagina = <A>;
close(A);
print "@pagina";
#637684 Sistema De Busca
Posted by prix on 12/09/2005, 16:24 in Artigos, Dicas e Tutoriais de CGI/Perl
no caso ($key2 = /$descr/i)
#637682 Informações Do Usuário...
Posted by prix on 12/09/2005, 16:23 in Artigos, Dicas e Tutoriais de CGI/Perl
#637466 Pedido De Tutorial
Posted by prix on 12/09/2005, 09:23 in Artigos, Dicas e Tutoriais de CGI/Perl
INSERT INTO usuarios (nome,email,cachorrinho,mulher) VALUES (?, ?, ?, ?)
});
sempre que criar uma tabela, adicione um campo a mais e sempre no 1 campo coloque o nome de id ou codigo ou algo do genero.
crie o primeiro campo como INT 5, unsigned zerofill, auto increment, primary key.
pois assim para todos os novos usuarios cadastrados uma nova ID sera gerada. e ela sera considera primaria.
-----------
nome, serva para voce adicionar o nome neh ?? como voce cria ou adiciona algo novo se nao tiver as informações para adicionar ??
$ref = $sth->execute($nome) || die print('Não foi possivel adicionar o usuário.');
no caso acima voce colocaria:
$ref = $sth->execute($nome,$email,$cachorrinho,$mulher) || die print('Não foi possivel adicionar o usuário.');
#637404 Pedido De Tutorial
Posted by prix on 11/09/2005, 22:49 in Artigos, Dicas e Tutoriais de CGI/Perl
#!/usr/bin/perl
require 'lib.pl';
print "Content-Type: text/html\n\n";
$nome = 'Jaum da roça';
&conectar;
$sth = $dbh->prepare(q{
INSERT INTO usuarios (nome) VALUES
});
$ref = $sth->execute($nome) || die print('Não foi possivel adicionar o usuário.');
&desconectar;
if ($ref == 1) {
print "usuario adicionado com sucesso";
} else {
print "não foi possivel adicionar o usuario";
}
------ Alterar
#!/usr/bin/perl
require 'lib.pl';
print "Content-Type: text/html\n\n";
$id = '00000001';
$nome_novo = 'Jaum da roça';
&conectar;
$sth = $dbh->prepare(q{
UPDATE usuarios SET nome = ? WHERE id = ? LIMIT 1
});
$ref = $sth->execute($nome_novo,$id) || die print('Não foi possivel alterar o usuário.');
&desconectar;
if ($ref == 1) {
print "usuario alterado com sucesso";
} else {
print "não foi possivel alterar o usuario";
}
------ Ler
#!/usr/bin/perl
require 'lib.pl';
print "Content-Type: text/html\n\n";
$id = '00000001';
&conectar;
$sth = $dbh->prepare(q{
SELECT nome FROM usuarios WHERE id = ?
});
$sth->execute($id) || die print('Não foi possivel conectar ao banco de dados para listar o usuario.');
$ref = $sth->fetch;
$nome = $ref->[0];
$sth->finish;
if ($nome ne '') {
print "$nome";
} else {
print "Usuario não existe ou id incorreta.";
}
print "<br><br><br>Ou<br><br><br>";
$sth = $dbh->prepare(q{
SELECT nome FROM usuarios ORDER BY id DESC
});
$sth->execute || die print('Não foi possivel conectar ao banco de dados para listar o usuario.');
$conta = 0;
while($ref = $sth->fetchrow_hashref()){
print "$ref->{'nome'}";
$conta++;}
if ($conta == 0) { print "Sem usuarios"; }
&desconectar;
------ Apagar
#!/usr/bin/perl
require 'lib.pl';
print "Content-Type: text/html\n\n";
$id = '00000001';
&conectar;
$sth = $dbh->prepare(q{
DELETE FROM usuarios WHERE id = ?
});
$ref = $sth->execute($id) || die print('Não foi possivel apagar o usuário.');
&desconectar;
if ($ref == 1) {
print "usuario apagado com sucesso";
} else {
print "não foi possivel apagar o usuario";
}
#637402 Pedido De Tutorial
Posted by prix on 11/09/2005, 22:48 in Artigos, Dicas e Tutoriais de CGI/Perl
Acho que esses 2 arquivos abaixo não precisam de introdução neh ?
$database = 'nome_do_banco_de_dados';
$db_host = 'endereço_do_host_do_mysql';
$db_admin = 'nome_do_usuario_que_se_conecta_ao_banco_de_dados';
$db_senha = 'a_senha_do_usuario_acima_dito';
use DBI;
require 'db.pl';
sub conectar {
$dbh = DBI->connect("DBI:mysql:database=$database;host=$db_host","$db_admin","$db_senha")
|| die print('Não foi possivel abrir a conexão.');
}
sub desconectar {
$dbh->disconnect || die print('Não foi possivel terminar a conexão.');
}
#637398 Sistema De Busca
Posted by prix on 11/09/2005, 22:28 in Artigos, Dicas e Tutoriais de CGI/Perl
sao usados para comparações mais complexas.
por exemplo (do jeito que esta, ira resultar em diferente, se vc mudar o $variavel para teste, ira dar igual.):
$variavel = 'asd';
print "Content-Type: text/html\n\n";
if ($variavel !~ /teste/i) {
print "diferente\n";
} else {
print "igual\n";
}
porem se voce tirar o ~ que nem fez no =~ ele nao ira funcionar.
outro exemplo(neste exemplo a variavel sendo teste ele vira igual sendo outro valor ela nao se da por igual, e se voce colocar a variavel com o valor teste e tirar o ~ do =~ ele da diferente, logo o seu codigo esta errado:
$variavel = 'asd';
print "Content-Type: text/html\n\n";
if ($variavel =~ /teste/i) {
print "igual\n";
} else {
print "diferente\n";
}
Por que da errado ? por que ela inclui um valor extra na pesquisa um valor nao real que na comparação vira um erro.
#637393 QueryString
Posted by prix on 11/09/2005, 22:13 in Artigos, Dicas e Tutoriais de CGI/Perl
#637391 Ip
Posted by prix on 11/09/2005, 22:12 in Artigos, Dicas e Tutoriais de CGI/Perl
Testei o codigo pelo perl localmente e pelo meu servidor de hospedagem.
Pelo servidor de hospedagem ele funciona 100% do jeito que ta no 1 topico.
#637389 Informações Do Usuário...
Posted by prix on 11/09/2005, 22:07 in Artigos, Dicas e Tutoriais de CGI/Perl
5.8.7.813
ftp://ftp.activestate.com/ActivePerl/Wind...-x86-148120.msi
#637383 Ip
Posted by prix on 11/09/2005, 22:02 in Artigos, Dicas e Tutoriais de CGI/Perl
#637379 Sistema De Busca
Posted by prix on 11/09/2005, 21:55 in Artigos, Dicas e Tutoriais de CGI/Perl
=~
ficando:
if($key2 =~ /$descr/i){
o erro ai eh que o ~ deve vir depois e nao antes do =
- Fórum WMO
- → prix's Content
- Privacy Policy
- Regras ·