Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Opa galera tudo certinho sou iniciante e a um tempo atrás fiz um sisteminha com session deixei parado e essa semana resolvi usar ele o que para minha surpresa não esta funcionando mais devido a atualização da versão do php na minha hospedagem .... bom se alguém puder me dar uma força ja tentei de tudo mas não consegui meu conhecimento é baixo ainda ....
Erro esta no final do código teria que substituir if(!session_is_registered("nome")) {
>
Citar
session_is_registered
segue o código de verificação completo
<?
session_name("name");
session_start();
if($acao == "logar") {
$conn = mysql_connect("mysql.servidor.com.br","user","senha"); //configure os dados do seu MySQL
$banco = mysql_select_db("banco"); //coloque o nome do seu banco de dados
$nome = $_POST['nome'];
$q_user = mysql_query("SELECT * FROM login WHERE login='$nome'");
if(mysql_num_rows($q_user) == 1) {
$query = mysql_query("SELECT * FROM login WHERE login='$nome'");
$dados = mysql_fetch_array($query);
if($_POST['pwd'] == $dados['senha']) {
session_register("nome");
header("Location: admin.php");
exit;
}
// Senha inválida
else
{
echo("<script>");
echo("alert('Senha Inválida !!');");
echo("document.location='index.php';");
echo("</script>");
}
} echo("<script>");
echo("alert('Login Inválido !!');");
echo("document.location='index.php';");
echo("</script>");
}
}
//agora a parte que verifica se o login já foi feito
if(!session_is_registered("nome")) {
// Usuário não logado! Redireciona para a página de login
echo("<script>");
echo("alert('Acesso Negado !!');");
echo("document.location='log-admin.php';");
echo("</script>");
}
?>Olá!
Segue sugestão
<?php
// arquivo conexão
// ativa a exibição de erros
error_reporting(E_ALL);
// variáveis para conexão
$host = 'localhost'; // define o host do banco de dados
$user = 'root'; // user do banco de dados
$password = ''; // senha do banco de dados
$database = 'database'; // nome do banco de dados
// estabelecer conexão com o mysql
$sqli = new mysqli($host, $user, $password);
// verificar se houve erro na conexão
if ($sqli->connect_error) {
// se houve erro, mostra erro na tela
echo "<p>Erro ao Conectar: $sqli->connect_error</p>";
}
// alterar o tipo de codificação da conexão com o banco de dados, para utf8
if (!$sqli->set_charset('utf8')) {
echo "<p class='error'>O charset não é utf8: $sqli->error</p>";
}
// selecionar/abrir o banco de dados para trabalhar
if (!$sqli->select_db($database)) {
// se o banco de dados não for encontrado
echo "<p class='error'>Banco de dados não encontrado, chefe!</p>";
}
// arquivo de verificar o login
session_start();
if (isset($_GET['acao']) && $_GET['acao'] == 'logar') {
// trata o nome
$nome = $sqli->real_escape_string($_POST['nome']);
// define a query de busca
$query = "SELECT * FROM login WHERE login='$nome' LIMIT 1";
// executa a query e guarda o resultado em $result
$result = $sqli->query($query);
// se há algum resultado
if ($result->num_rows) {
// guarda o resultado em $dados
$dados = $result->fetch_assoc();
// verificar se a senha postada é igual a senha retornada
if ($_POST['pwd'] == $dados['senha']) {
// registra o user na sessão
$_SESSION['user'] = $dados;
// redireciona para admin.php
header('Location: admin.php');
exit;
} // Se a senha não confere
else {
echo '<script>'
. 'alert("Senha Inválida !!");'
. 'document.location="index.php";'
. '</script>';
}
} // Se não há resultados em $result, o Login é inválido
else {
echo '<script>'
. 'alert("Login Inválido !!");'
. 'document.location="index.php";'
. '</script>';
}
}
//agora a parte que verifica se o login já foi feito
// se não há user em $_SESSION
if (!isset($_SESSION['user'])) {
// Usuário não logado! Redireciona para a página de login
echo '<script>'
. 'alert("Acesso Negado !!");'
. 'document.location="log-admin.php";'
. '</script>';
}Fala washalbano vou ver o que acontece no servidor e volto aqui para comentar muito obrigado pela sugestão meu amigo.
Washalbano já não tem mais a mensagem de erro anterior aparece somente uma mensagem de alerta dizendo acesso negado e e na pagina aparece a seguinte mensagem na linha 38 a qual seria essa parte do código
>
Citar
if ($acao == 'logar') {
Onde o sr. criou a variável $acao?
Se existe um campo do seu form method='post' com name='acao' e value='logar', faça assim:
if(isset($_POST['acao']) && $_POST['acao']=='logar'){
>
52 minutos atrás, tetsuo disse:
Onde o sr. criou a variável $acao?
Se existe um campo do seu form method='post' com name='acao' e value='logar', faça assim:
if(isset($_POST['acao']) && $_POST['acao']=='logar'){
OK Vou postar o código>
4 minutos atrás, studdiox disse:
OK Vou postar o código
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>: : : PAINEL DE ADMINISTRACAO DO WEBSITE : : :</title>
<style type="text/css">
<!--
body, td, th { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: #FFFFFF; }
body { background-color: #000000; }
a:link { color: #000000; text-decoration: none; }
a:visited { color: #000000; text-decoration: none; }
a:hover { color: #000000; text-decoration: none; }
a:active { color: #000000; text-decoration: none; }
-->
</style>
</head>
<body>
<form name="form1" method="post" action="loga.php?acao=logar">
<div align="center">
<p> </p>
<p>Painel de Acesso <br>
</p>
</div>
<table width="338" border="0" align="center" cellpadding="4" cellspacing="2">
<tr>
<td width="59" bordercolor="#333333" background="images/barramenu.jpg" bgcolor="#333333">NOME
: </td>
<td width="239" bordercolor="#333333" background="images/barramenu.jpg" bgcolor="#333333">
<label>
<input name="nome" type="text" id="nome" size="35">
</label>
</td>
</tr>
<tr>
<td bordercolor="#333333" background="images/barramenu.jpg" bgcolor="#333333">SENHA
: </td>
<td bordercolor="#333333" background="images/barramenu.jpg" bgcolor="#333333">
<label>
<input name="pwd" type="password" id="pwd" size="35">
</label>
</td>
</tr>
<tr>
<td colspan="2" bordercolor="#333333" bgcolor="#333333">
<div align="center">
<label>
<input type="submit" name="Submit" value="ENTRAR">
</label>
<div align="right"></div>
</div>
<div align="right"></div>
</td>
</tr>
</table>
<div align="center"><br>
<br>
<br>
<br>
<br>
<br>
<label> </label>
<a href="deslogar.php">Deslogar</a><br>
</div>
</form>
</body>
</html>A primeira coisa que você tem que fazer em SESSIO é chamar a função session_start(); antes que qualquer outra coisa como aconteceu na segunda linha de seu código!
ok
ja fiz assim
<?php
session_name("user1,user2");
session_start();
session_destroy();
?>
mas continua dando o mesmo erro não logado erro linho 38
Tentei trocar por