0
In the login page send the form with your login data, record the data in cookies and redirect to another page. But I am suffering problem if the user logout, I wanted to delete the cookies, on the login page I have a check if the cookies exist it redericiona automatically to a page where it checks the data(same page where I log cookies). However for this to work would have to delete this cookie so that if it did not exist it would have to write the data again in the form. Follows Code:
<!DOCTYPE html>
<?php
#PAGINA DO FORMULARIO DE LOGIN
include "seguranca/banco/ff_conexao_banco.php";
include "componentes/php/ff_operacaobd_php.php"; #inclui a pagina operation nas paginas administrativas!
include "componentes/php/ff_expressoes_php.php"; #inclui a pagina das validações de expressao nas paginas do front-end!
include "componentes/php/ff_mensagens_php.php"; #inclui a pagina safedelete nas paginas administrativas!
#verifica os dados!
if(isset($_COOKIE['lembrarUsuario'])){
$usuarioCookie = base64_encode($_COOKIE['lembrarUsuario']);
}else{
$usuarioCookie==NULL;
}
if(isset($_COOKIE['lembrarSenha'])){
$senhaCookie = base64_encode($_COOKIE['lembrarSenha']);
}else{
$senhaCookie==NULL;
}
# se os dados existem ele manda pra pagina de verificação
if($usuarioCookie AND $senhaCookie){
header("location: seguranca/autenticacao/ff_login_autenticacao.php?usuarioCookie=$usuarioCookie&senhaCookie=$senhaCookie");
?>
<?php
}else{
?>
<html lang="pt-br">
<head>
<title>Floricultura Filippi - Pedidos</title>
<meta name="author" content="Gabriel Filippi, Rhuan Carvalho, Bruna Campioli, Melissa Possamai" />
<meta name="description" content="Gerenciamento de Pedidos da Floricultura Filippi" />
<meta name="keywords" content="Pedidos, entrega, floricultura filippi" />
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,minimum-scale=1,maximum-scale=1">
<link rel="icon" href="layout/imagens/favicon.ico" type="image/x-icon">
<!-- Bootstrap Core CSS -->
<link href="componentes/plugins/bootstrap/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet">
<!-- CSS PADRÃO DO TEMPLATE -->
<link href="layout/css/template_default.css" rel="stylesheet">
<!-- Custom Fonts -->
<link href="componentes/plugins/font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">
<!-- CSS Gabriel, Rhuan, Bruna, Melissa-->
<link href="layout/css/ff_style_frontend.css" rel="stylesheet" type="text/css">
<!-- jQuery -->
<script type="text/javascript" src="componentes/plugins/jquery/dist/jquery.min.js"></script>
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container">
<div class="row">
<div class="col-sm-8 col-sm-offset-2 text " style="text-align: center;">
<img src="layout/imagens/logo.png" class="logo">
</div>
<div class="col-md-4 col-md-offset-4">
<div class="login-panel panel panel-default">
<div class="panel-heading painel_login">
<h2>Login!</h2>
<h5>Entre com seu nome de Usuário ou E-mail e Senha:</h5>
</div>
<div class="panel-body painel_login">
<form name="frmlogin" method="POST" action="index.php?folder=seguranca/autenticacao/&file=ff_login_autenticacao&ext=php">
<fieldset class="fieldset_login">
<?php
if(isset($_GET['folder'])&&isset($_GET['file'])&&isset($_GET['ext'])){
if(!include $_GET['folder'].$_GET['file'].".".$_GET['ext']){
echo "<h1>Página não encontrada</h1>";
}else{
?>
<script>
$(document).ready(function() {
$('.footerfront').css('bottom',"-95px");
});
</script>
<?php
}
}
?>
<div class="form-group">
<input class="form-control" type="text" name="txtusuario" maxlength="70" placeholder="E-mail ou Usuario" autofocus>
</div>
<div class="form-group">
<input class="form-control" type="password" name="pwdsenha" maxlength="32" placeholder="●●●●●●●●●●●●" >
</div>
<div class="checkbox">
<label>
<input type="checkbox" name="chkusuario" value="lembreme">Lembre-me
</label>
</div>
<!-- Change this to a button or input when using this as a form -->
<button type="submit" class="btn btn-lg btn-success btn-block" name="button">Login!</button>
</fieldset>
</form>
</div>
</div>
</div>
</div>
</div>
<footer style="background-color: #e4e1e1 !important;" class="footerfront">
<?php
$datacopy = date('Y');
?>
<div class="row" style="margin-right: 0px; margin-left: 0px;">
<div class="col-lg-6">
<p class="direitos_autorais">© Copyright <?php echo $datacopy; ?> - <a href="http://www.floriculturafilippi.com.br/" target="_blank" >Floricultura Filippi</a>. Todos os direitos reservados. - <a href="_licencas/loader.php">Licenciamento</a></p>
</div>
<div class="col-lg-3">
<span class="fa fa-whatsapp"></span>
<b style="text-align: right;"> (47) 99218-3829</b>
</div>
<div class="col-lg-3">
<span class="fa fa-phone"></span>
<b> (47) 3439-1090</b>
</div>
</div>
<!-- /.row -->
</footer>
</body>
</html>
<?php
}
?>
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
PAGINA ONDE VERIFICA OS DADOS E TBM REGISTRA OS COOKIES
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
<?php
# se dados da cookie existir armazena na variavel
if(isset($_GET["usuarioCookie"])){
include "../banco/ff_conexao_banco.php";
$p_usuario = base64_decode($_COOKIE['lembrarUsuario']);
$p_senha = base64_decode($_COOKIE['lembrarSenha']);
$hash_senha = MD5($salt.$p_senha); // criptografar a senha
}else{
# se nao armazena na variavel os dados do formulario
$p_usuario = $_POST['txtusuario'];
$p_senha = $_POST['pwdsenha'];
$hash_senha = MD5($salt.$p_senha);
}
$aviso = "Erro ao se autenticar"; /* TITULO do painel */
$cor = "panel-red"; /* cor do painel */
if($p_usuario==""){
$msg = buildMessage('senha', 'Usuário');
}else if($p_senha==""){
$msg = buildMessage('senha', 'Senha');
}else{
$sql_sel_usuario = "SELECT usuarios.id, usuarios.usuario, usuarios.senha, administradores.email, administradores.status, administradores_terceirizados.status, entregadores.status, funcionarios.status, administradores_terceirizados.email, entregadores.email, funcionarios.email, usuarios.permissao FROM usuarios LEFT JOIN administradores ON usuarios.id = administradores.usuarios_id LEFT JOIN funcionarios ON usuarios.id = funcionarios.usuarios_id LEFT JOIN entregadores ON usuarios.id = entregadores.usuarios_id LEFT JOIN administradores_terceirizados ON usuarios.id = administradores_terceirizados.usuarios_id WHERE (administradores.status=0 OR funcionarios.status=0 OR entregadores.status=0 OR administradores_terceirizados.status=0) AND (BINARY usuarios.usuario='".$p_usuario."' OR BINARY administradores.email='".$p_usuario."' OR BINARY administradores_terceirizados.email='".$p_usuario."' OR BINARY funcionarios.email='".$p_usuario."' OR BINARY entregadores.email='".$p_usuario."') AND BINARY usuarios.senha='".$hash_senha."'";
$sql_sel_usuario_preparado = $conexaobd->prepare($sql_sel_usuario);
$sql_sel_usuario_preparado->execute();
$sql_sel_usuario_dados = $sql_sel_usuario_preparado->fetch();
if($sql_sel_usuario_preparado->rowCount()>0){
if(isset($_POST["chkusuario"])){
$p_senha = $_POST['pwdsenha'];
setcookie("lembrarUsuario", base64_encode($p_usuario), (time() + (3 * 24 * 3600))); /* duração de 3 dias*/
setcookie("lembrarSenha", base64_encode($p_senha), (time() + (3 * 24 * 3600))); /* duração de 3 dias*/
}
//guardando as informações dentro de array
//iniciando sessão
session_start();
//armazenamento do id do usuario para sabermos quem está autenticando
$_SESSION['idUsuario'] = $sql_sel_usuario_dados['id'];
//armazenamento do usuario para mostrarmos nas telas do back-end
$_SESSION['usuario'] = $sql_sel_usuario_dados['usuario'];
//armazenamento da permissão para sabermos o que ele pode acessar
$_SESSION['permissao'] = $sql_sel_usuario_dados['permissao'];
//armazenamento do id da SESSÃO para futura implementação de segurança
$_SESSION['idSessao'] = session_id();
if(isset($_GET["usuarioCookie"])){
if($sql_sel_usuario_dados['permissao']==0 AND $sql_sel_usuario_dados['status']==0){
header('location: ../../sistema/admin/ff_admin.php');
}else if($sql_sel_usuario_dados['permissao']==1 AND $sql_sel_usuario_dados['status']==0){
header('location: ../../sistema/funcionario/ff_funcionario.php');
}else if($sql_sel_usuario_dados['permissao']==2 AND $sql_sel_usuario_dados['status']==0){
header('location: ../../sistema/admin_terceirizada/ff_admin_terceirizada.php');
}else if($sql_sel_usuario_dados['permissao']==3 AND $sql_sel_usuario_dados['status']==0){
header('location: ../../sistema/entregador/ff_entregador.php');
}else{
$msg = buildMessage('usuario_permissao', 'Permissão');
}
}else{
if($sql_sel_usuario_dados['permissao']==0 AND $sql_sel_usuario_dados['status']==0){
header('location: sistema/admin/ff_admin.php');
}else if($sql_sel_usuario_dados['permissao']==1 AND $sql_sel_usuario_dados['status']==0){
header('location: sistema/funcionario/ff_funcionario.php');
}else if($sql_sel_usuario_dados['permissao']==2 AND $sql_sel_usuario_dados['status']==0){
header('location: sistema/admin_terceirizada/ff_admin_terceirizada.php');
}else if($sql_sel_usuario_dados['permissao']==3 AND $sql_sel_usuario_dados['status']==0){
header('location: sistema/entregador/ff_entregador.php');
}else{
$msg = buildMessage('usuario_permissao', 'Permissão');
}
}
}else{
$msg = buildMessage('login', 'Usuário', 'Senha');
}
}
?>
<div class="mensagem col-md-12 col-lg-12">
<div class="panel <?php echo $cor ?>">
<div class="panel-heading">
<?php echo $aviso ?>
</div>
<div class="panel-body">
<p><?php echo $msg;?></p>
</div>
</div>
</div>
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
PARA EXCLUIR OS COOKIES ESTOU USANDO O SEGUINTE CÓDIGO ABAIXO
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
<?php
session_start();
session_unset();
session_destroy();
setcookie("lembrarUsuario", base64_encode($_COOKIE['lembrarUsuario']), (time() - (3 * 24 * 3600)));
setcookie("lembrarSenha", base64_encode($_COOKIE['lembrarSenha']), (time() - (3 * 24 * 3600)));
header ('location: ../../index.php?deslogado=true')
?>
When you "call" the page for a logout and delete the cookies put a "? logout=1" eg and put an if before the redirect...
– Rodrigo Jarouche
see my edited reply
– user60252
Your code is full of errors, and a lot of unnecessary stuff, so I’d start all over again with
0
, And it would separate into smaller parts, because trying to fix it gets a little bit more laborious. Unless you badly formatted the code when you created the question, it’s really chaotic.– Edilson
@Edilson only this badly formatted here, on the site is separated in several parts(pages).
– Gabriel Filippi