Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola amigos , estou começando no php e por esse dias fiz uma sistema bem simples para um determinado controle interno da empresa mas agora preciso restringir o acesso a ele por autenticação , e andei lendo alguns tutoriais e ate modelos mas nao estou conseguindo fazer corretamente , li também que uma boa pratica e mudar os dados da sessão mas não tenho ideia de por onde começar , por hora alguem poderia me indicar um modelo simples, um tutorial ou modelo eu testei um da dev midia mas nao fuciona, assim com um modelo que alguem ja tenha usado para eu poder começar e depois eu ir postando aqui as duvidas , conto com a ajuda de voce obrigado !
Vamos à alguns pontos.
Autenticação
MD5 foi amplamente divulgado como hash criptográfico para autenticação, mas não é nem um pouco seguro. Existe o post abaixo que pode tirar todas as suas dúvidas:
Tempo de sessão
Você pode fazer de duas formas. Configurando o PHP/Apache ou criando um script para isso. Em meu anos de experiência, a segunda opção foi sempre a mais viável e assertiva.
No link abaixo há ambas.
https://stackoverflow.com/a/8311400/1628790
Separação ou um arquivo só
>
Em 05/04/2018 at 09:08, Rodrigo Ferreira Santos disse:
[...]eu queria colocar a autenticação e a validação em um so aquivo, eu li que e feito com um action mas não tenho ideia de como fazer[...]
Actions é um método do controller que é acionado/chamado através de uma requisição. Ou seja, o usuário acessa uma URL (link, botão, escreveu na barra de endereços, etc..), um front controller (uma classe, ou conjunto de classes que interpreta requisições) receberá a requisição e enviará para o método correto de algum controller. Esse método é o action.
No seu caso, eu verifiquei que é um arquivo para realizar a autenticação e outro para verificar se o usuário está logado. Se não for usar orientação à objetos, do jeito que está fica mais interessante.
Funções MySQL
Funções MySQL foram descontinuadas no PHP 5.5 e removidas no PHP 7. Utilize MySQLi ou PDO:
Gabriel muito obrigado por sua resposta amigo, ajudou e muito deu certo o controle de acesso aqui agora estou estudando nas materias que voce me passou para criptografar a senha obrigado !!!
Senhores eu estou seguindo um tutorial da devmedia da seguinte forma :
Arquivo de conexao com a base e configuraçao
Arquivo de login login.php:
// Conexão com o banco de dados require "comum.php";// Inicia sessões
session_start();
// Recupera o login
$login = isset($_POST["login"]) ? addslashes(trim($_POST["login"])) : FALSE;
// Recupera a senha, a criptografando em MD5
$senha = isset($_POST["senha"]) ? md5(trim($_POST["senha"])) : FALSE;
// Usuário não forneceu a senha ou o login
if(!$login || !$senha)
{
/**
* Executa a consulta no banco de dados.
* Caso o número de linhas retornadas seja 1 o login é válido,
* caso 0, inválido.
*/
$SQL = "SELECT id, nome, login, senha, postar
FROM aut_usuarios
// Caso o usuário tenha digitado um login válido o número de linhas será 1..
if($total)
{
// Obtém os dados do usuário, para poder verificar a senha e passar os demais dados para a sessão
$dados = @mysql_fetch_array($result_id);
// Agora verifica a senha
if(!strcmp($senha, $dados["senha"]))
{
// TUDO OK! Agora, passa os dados para a sessão e redireciona o usuário
// Senha inválida
else
{
// Login inválido
else
{
// Inicia sessões
session_start();
// Verifica se existe os dados da sessão de login
if(!isset($_SESSION["id_usuario"]) || !isset($_SESSION["nome_usuario"]))
{
// Usuário não logado! Redireciona para a página de login