Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou estudando sistemas de login em PHP e possuo duas dúvidas:
1 - Estava estudando o código do SysLogin v2.1.4, criado pelo Thiago Alves e disponibilizada nesse tópico, e usando ele como base para estudar.
Ao realizar o logon, aparece mensagens dinâmicas: Se o login foi feito com sucesso, se não digitou todos os dados, se o usuario ja existe ao cadastrar e etc.
Entendi perfeitamente a lógica do código PHP mas não consegui entender como puxar, com o efeito, o resultado da ação do usuario.
Por exemplo, no arquivo config.php tem essas linhas:
$msg[0] = 'Preencha todos os campos.'; // Campos nulos (Login,Cadastro)
$msg[1][0] = 'Usuário ou senha não correspondem.'; // Erro nas informacoes (Login)
$msg[1][1] = 'Esse usuário já existe, escolha outro.'; // Erro nas informacoes (Cadastro)
$msg[2][0] = 'Login efetuado! Aguarde'; // Sucesso (Login)
$msg[2][1] = 'Cadastro efetuado! Aguarde'; // Sucesso (Cadastro)
$msg[3] = 'Erro do sistema, tente outra hora.'; // Erro (MySQL,Query) (Login,Cadastro)
$msg[4] = 'Campo de verificação incorreto.'; // reCAPTCHA incorreto (Login,Cadastro)
No arquivo login.php tem essas linhas:
<div id="txtload"></div>
<div id="txt0" class="txt"><?php echo $msg[0]; ?></div>
<div id="txt1" class="txt"><?php echo $msg[1][1]; ?></div>
<div id="txt2" class="txt"><?php echo $msg[2][1]; ?> <span id="tempo"></span></div>
<div id="txt3" class="txt"><?php echo $msg[3]; ?></div>
<div id="txt4" class="txt"><?php echo $msg[4]; ?></div>
Mas no arquivo **func_login.php** apresenta uma variavel chamada **$data** e no final tem o código **echo $data; **. Como a variavel **$data** comunica com a variavel **$msg**?
2 - Estou usando uma função de SQL Injection um pouco melhorada:
<?php
function anti_injection($sql){
$sql = preg_replace(sql_regcase("/(from|select|insert|delete|or|=|where|drop table|show tables|#|\*|--|\\\\)/"), "" ,$sql);
$sql = trim($sql);
$sql = strip_tags($sql);
$sql = (get_magic_quotes_gpc()) ? $sql : addslashes($sql);
if (!is_numeric($sql)) {
$sql= get_magic_quotes_gpc() ? stripslashes($sql) : $sql;
$sql= function_exists("mysql_real_escape_string") ? mysql_real_escape_string($sql) : mysql_escape_string($sql);
}
return $sql;
}
?>
Existe alguma melhoria a mais para se fazer nessa função?
Qualquer sugestão de segurança será bem vinda http://forum.imasters.com.br/public/style_emoticons/default/graduated.gif
Depois de revirar o código inteiro, consegui encontrar a resolução do problema 1. Era através de javascript e não PHP, como imaginava. Agora já entendi o problema 1 http://forum.imasters.com.br/public/style_emoticons/default/joia.gif
Quanto ao problema 2, todas as minhas pesquisas sempre resultavam em scripts semelhantes e criei esse juntando os melhores que vi. Se for ultrapassado e se tiver melhorias no script 2, podem me dizer, por favor? http://forum.imasters.com.br/public/style_emoticons/default/graduated.gif
O segundo achei bem interessante. Parece ser seguro. Tem um tópico muito bom, onde se debate sobre este assunto e várias pessoas apresentam soluções.
http://forum.imasters.com.br/index.php?/topic/276729-seguranca-em-php/
Carlos Eduardo
Posta o aqruivo.