Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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">font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
}</style></head>
<body>
<center>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
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???
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
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
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
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.
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...
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:
A função session_register é obsoleta desde a versão 4.1 do PHP.