Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Mayck May

Sistema de login sem uso de banco de dados

Recommended Posts

Bom dia,

 

Estou desenvolvendo um sistema de login sem uso de banco de dados com sessão, porem o resultado é sempre "você não esta logado",

 

poderiam me dizer onde esta errado?

 

login.php

<form name="form1" method="post" action="verificar.php">

Usuário: <input name="login" type="text">

Senha: <input name="senha" type="password">

<input type="submit" value="Logar-se">
</form>

 

verificar.php

<?php
$login = $_POST['login'];
$senha = $_POST['senha'];
if (($login != "manuel") || ($senha != "123")) {
$ok1 = "permitido1";
session_register("ok1");
Header("Location: paginasecreta1.php");
}
elseif (($login != "ana") || ($senha != "456")) {
$ok2 = "permitido2";
session_register("ok2");
Header("Location: paginasecreta2.php");
}
else {
Header("Location: senhainvalida.php");

}

?>

 

paginasecreta1.php

<?php
$ok1 = $_SESSION["ok1"];
if($ok1=="permitido1") {
echo "Conteúdo restrito.";
}
else {
echo "Você não esta logado.";
}
?>

 

paginasecreta2.php

<?php
$ok2 = $_SESSION["ok2"];
if($ok2=="permitido2") {
echo "Conteúdo restrito.";
}
else {
echo "Você não esta logado.";
}
?>

 

senhainvalida.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="refresh" content="10; url=login.php"/> 
<title>Untitled Document</title>
<style type="text/css">
<!--
body,td,th {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
}
-->
</style></head>

<body>

<center>
Login ou Senha invalidos, tente novamente

ATENÇÃO 
você terá seu acesso bloqueado após tentativas erradas


Por favor
Aguarde... você será redirecionado para página de login
</center>
</body>
</html>

 

Desde já agradeço a todos pela ajuda

Maycke

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro, sempre que você for utilizar sessões do PHP deve inicializá-la com a função session_start.

 

Segundo que seu script está errado, para setar um valor na sessão deve ser assim:

 

$_SESSION['ok1'] = 'permitido';

 

e não:

 

$ok1 = "permitido1";
session_register("ok1");

 

A função session_register é obsoleta desde a versão 4.1 do PHP.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tbm ñ sei se é oq você quer fazer,

mas em php o " ! " represente negação, logo:

 

<?php
$login = $_POST['login'];
$senha = $_POST['senha'];
if (($login != "manuel") || ($senha != "123")) { //se $login for DIFERENTE " ! " de manuel OU  " || " a senha diferente de 123 então...
$ok1 = "permitido1";
session_register("ok1");
Header("Location: paginasecreta1.php");
}
elseif (($login != "ana") || ($senha != "456")) {
$ok2 = "permitido2";
session_register("ok2");
Header("Location: paginasecreta2.php");
}
else {
Header("Location: senhainvalida.php");

}

?>

 

ali você quiz dizer que se o login ñ for "manuel" ou a senha for diferente de "123" ai ele e redirecionado para a paginasecreta1.php

era isso msmo que você queria???

Compartilhar este post


Link para o post
Compartilhar em outros sites

A idéia é ter um sistema de login com multiplos usuários tendo cada um sua página especifica sem necessidade de um BANCO DE DADOS

 

Mais uma vez agradeço pela força

 

Maycke

Compartilhar este post


Link para o post
Compartilhar em outros sites

aparentemente está com um erro de logica grande

 

geralmente se verifica se login e senha são iguais e não se login ou senha são diferentes de algo

 

do jeito que está fazendo terá algum trabalho de manutenção, fora que o sistema ficará um pouco vulnerável também mas ai é escolha sua ou de seu cliente

Compartilhar este post


Link para o post
Compartilhar em outros sites

pois e cara...

um sistema de login sem BD fica mto vulnerável...

isso seria interessante se na paginasecreta.php ñ tivesse nda importante..

mas ai nao faria sentido ela ser secreta...

Oo

Compartilhar este post


Link para o post
Compartilhar em outros sites

verificar.php

<?php
$login = $_POST['login'];
$senha = $_POST['senha'];
if (($login != "manuel") || ($senha != "123")) {
$ok1 = "permitido1";
session_register("ok1");
Header("Location: paginasecreta1.php");
}
elseif (($login != "ana") || ($senha != "456")) {
$ok2 = "permitido2";
session_register("ok2");
Header("Location: paginasecreta2.php");
}
else {
Header("Location: senhainvalida.php");

}

?>

Pra mim, só o fato deste código existir, já indica que você precisa de um banco de dados. Porque, de fato, você está armazenando informações sobre os usuários na própria pagina. Se você pensar bem, um sistema de login sem SGBD não é uma boa ideia porque não dá para automatizar o cadastro. Você sempre vai ter que fazer esse serviço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra ser sincero, eu analisei o seu código e algumas coisas estão erradas.

 

<?php
$login = $_POST['login'];
$senha = $_POST['senha'];
if (($login != "manuel") || ($senha != "123")) { // Se $login diferente "manuel" e $senha diferente "123" o_o WTF?
$ok1 = "permitido1";
session_register("ok1");
Header("Location: paginasecreta1.php");
}
elseif (($login != "ana") || ($senha != "456")) {
$ok2 = "permitido2";
session_register("ok2");
Header("Location: paginasecreta2.php");
}
else {
Header("Location: senhainvalida.php");

}

?>

 

Será muito difícil se você não usar um banco de dados, mas há varios SGDBs e o mySQL O_O

É uma coisa tão simples cara lol, foi como disseram, ficaria impossível e meio vulnerável você terminar esse sistema...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.