Eu como estudo PHP como um Hobbie, resolvi fazer um sistema de login com as seguintes caracteristicas.
1-Área para administrador, para ele excluir,alterar e cadastra algum usuario.
2-Área de Cadastro.
3-Página de Login (Pronta Já)(so faltando colocar a verificação de nivel de permissao e se já confirmo email, que so serao feito posteriomente).
3-Página pro Administrados visualizar as Log de Acesso
4-Log de Acesso: Que mostra o nome do usuario , ip e dia do acesso toda vez que alguém logar.
5-Uma página perfil (Area Restrita),onde vai ter as informações do usuario.
6- Posta aqui...
Mas até agr eu so tenho a página login.php.E uma tabela chamada usuarios ,com 4 campos, id, usuario,senha e email.(Edit:Adicionado o de permissao)
Segue o código do login.php.
<?
session_start();
include ("conexao.php");//incluir a pagina que contem a classe MySQL
include ("config.php");
$cnx = new MySQL('sistemalogin');//Fazer conexao ao BD sistemalogin
$lg = new Login();//Instanciar Objeto.
//Verificar se o usuario aperto em "Entrar"
if(isset($_POST['entrar'])){
//Armazena campos do formulario em variaveis
list($usuario,$senha) = $lg->getCampos($_POST['usuario'],$_POST['senha']);
//Verificar se os campos estão vazios
if(empty($usuario) or empty($senha)){
$rs = "Porfavor preencher todos os campos.";
}else{
//Validar login
$res = $lg->validarLogin($usuario,$senha,'usuarios');
if (!$res){
$rs = "Usuario ou/e senha incorretos!";
}
}
}
?>
<HTML>
<HEAD>
<TITLE>Sistema de Login</TITLE>
<style type="text/css">
fieldset{
width: 210px;
height: auto;
border-color: blue;
}
#fieldset1{
border-color: red;
color: red;
}
</style>
</HEAD>
<BODY>
<div align="center">
<fieldset align="center">
<legend><strong>Logar-se</strong></legend>
<form method="POST" action="login.php">
<label>Login:</label>
<input type="text" name="usuario" />
<label>Senha:</label>
<input type="password" name="senha" />
<input type="submit"name="entrar" value="Entrar">
</form>
</fieldset>
</div>
<?
if(isset($rs)){
?>
<div align="center">
<fieldset id="fieldset1">
<legend><strong>Erro:</strong></legend>
<? echo "<span>".$rs."</span>"; ?>
</fieldset>
</div>
<? } ?>
</BODY>
</HTML>
Segue agora o config.php:
<?
class Login{
private $lg = array();
function Login(){
//Ativar/Desativar codificação de senha
$this->lg['ePK'] = true;
//Palavra-chave pra codificar senha
$this->lg['key'] = "key";
//Ativar/Desativar metodo Anti_injection.
$this->lg['anti_injection'] = true;
//Ativar/Desativar log de acesso
$this->lg['logAcesso'] = true;
//Diretorio do arquivo para log de acesso
$this->lg['nomeLogAcesso'] = "logs/acesso.txt";
//Pagina a redirecionar apos logar
$this->lg['pagLogado'] = "arearestrita.php";
}
//Metodos
public function validarLogin($usuario,$senha,$tabela){
if($this->lg['ePK'] == true){
$senha = $this->ePK($senha,$this->lg['key']);
}
$sql = "SELECT * FROM $tabela WHERE usuario='$usuario' AND senha='$senha' AND permissao > 0";
$query = mysql_query($sql);
$row = mysql_num_rows($query);
if($row == 1){
$SESSION['usuario'] = $usuario;
if($this->lg['logAcesso']==true){
$this->logAcesso($usuario);
}
echo $this->redirecionar($this->lg['pagLogado']);
exit;
}else{
return false;
}
}
public function anti_injection($sql) {
$sql = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/"),"",$sql);
$sql = trim($sql);
$sql = strip_tags($sql);
$sql = addslashes($sql);
return $sql;
}
public function getCampos($usuario,$senha){
if ($this->lg['anti_injection']== true){
$usuario = $this->anti_injection($usuario);
$senha = $this->anti_injection($senha);
}
return array($usuario,$senha);
}
public function logAcesso($usuario){
$fp = fopen($this->lg['nomeLogAcesso'],"a");
$txt = "Usuario:".$usuario.",Hora de Acesso:".date("d/m/Y H:i:s ").",IP:".$ip."\n";
fwrite($fp,$txt);
fclose($fp);
}
public function ePK($senha,$chave){
$txt = strrev($senha);
$txt = str_repeat(md5($txt),2);
$txt = md5($txt);
$txt .= md5($chave);
$txt = md5($txt);
return $txt;
}
public function redirecionar($pagina) {
$pag = "<script type=\"text/javascript\">window.location = \"".$pagina."\"</script> ";
return $pag;
}
}
Funcionando perfeitamente. Comentem o que acharam? Fico faltando algo,se sim,o que?
Qualquer dúvida sobre o código até agr so postar.
@EDIT
Modificado,apos conselho de Jefferson Oliveira,opinei por adotar OO(Orientação a Objetos),não ta perfeito mas esta facil de editar ao gosto da pessoa , basta mudar as opções em config.php e conexao.php(esse ultimo pra editar conexao ao banco de dados.
Esperando,opinião de vocês, se acharam bom o modo que estou usando a class nesse sistema pra que eu possa da continuidade nesse mesmo modo.
Pergunta
david.lyonnais
Eu como estudo PHP como um Hobbie, resolvi fazer um sistema de login com as seguintes caracteristicas.
1-Área para administrador, para ele excluir,alterar e cadastra algum usuario.
2-Área de Cadastro.
3-Página de Login (Pronta Já)(so faltando colocar a verificação de nivel de permissao e se já confirmo email, que so serao feito posteriomente).
3-Página pro Administrados visualizar as Log de Acesso
4-Log de Acesso: Que mostra o nome do usuario , ip e dia do acesso toda vez que alguém logar.
5-Uma página perfil (Area Restrita),onde vai ter as informações do usuario.
6- Posta aqui...
Mas até agr eu so tenho a página login.php.E uma tabela chamada usuarios ,com 4 campos, id, usuario,senha e email.(Edit:Adicionado o de permissao)
Segue o código do login.php.
Segue agora o config.php:Funcionando perfeitamente. Comentem o que acharam? Fico faltando algo,se sim,o que?
Qualquer dúvida sobre o código até agr so postar.
@EDIT
Modificado,apos conselho de Jefferson Oliveira,opinei por adotar OO(Orientação a Objetos),não ta perfeito mas esta facil de editar ao gosto da pessoa , basta mudar as opções em config.php e conexao.php(esse ultimo pra editar conexao ao banco de dados.
Esperando,opinião de vocês, se acharam bom o modo que estou usando a class nesse sistema pra que eu possa da continuidade nesse mesmo modo.
Até
Editado por david.lyonnaisLink para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.