Alguém poderia me ajudar!Quero criar nível de acesso - porém não estou conseguindo finalizar essa parte!
//logar
public function logar($cracha, $senha)
{
global $pdo;
//verificar se cracha e senha estao cadastrado, se sim
$sql = $pdo->prepare("SELECT id_usuario FROM usuarios WHERE cracha = :c AND senha = :s");
$sql->bindValue(":c",$cracha);
$sql->bindValue(":s",md5($senha));
$sql->execute();
$num = $sql-> rowCount();
if($num > 0){
//acessar e verificar o nivel de acesso do usuario
session_start();
$_SESSION['cracha'] = $_POST['cracha'];
$_SESSION['senha'] = $_POST['senha'];
$verificar = $conectar->query("SELECT * FROM usuarios");
while ($linha = $verificar->fetch(PDO::FETCH_ASSOC)){
if($linha['usuarios'] == $usuarios){
$nivel = $linha['nivel'];
switch ($nivel) {
case '0':
header("location: areaPrivada.php");
break;
case '1':
header("location: cadastrar.php");
break;
default:
echo "Usuario sem acesso";
break;
}
}
}
}
}
Ocorre o erro:
Notice: Undefined variable: conectar in C:\\xampp\\htdocs\\PROGRAMA\\Classes\\usuarios.php on line 67
Fatal error: Uncaught Error: Call to a member function query() on null in C:\\xampp\\htdocs\\PROGRAMA\\Classes\\usuarios.php:67 Stack trace: #0 C:\\xampp\\htdocs\\PROGRAMA\\index.php(35): Usuario->logar('9530', '1234') #1 thrown in C:\\xampp\\htdocs\\PROGRAMA\\Classes\\usuarios.php on line 67
public function logar($cracha, $senha)
{
global $pdo;
//verificar se cracha e senha estao cadastrado, se sim
$sql = $pdo->prepare("SELECT id_usuario FROM usuarios WHERE cracha = :c AND senha = :s");
$sql->bindValue(":c",$cracha);
$sql->bindValue(":s",md5($senha));
$sql->execute();
$num = $sql-> rowCount();
if($num > 0){
//acessar e verificar o nivel de acesso do usuario
session_start();
$_SESSION['cracha'] = $_POST['cracha'];
$_SESSION['senha'] = $_POST['senha'];
$verificar = $conectar->query("SELECT * FROM usuarios");
while ($linha = $verificar->fetch(PDO::FETCH_ASSOC)){
if($linha['usuarios'] == $usuarios){
$nivel = $linha['nivel'];
switch ($nivel) {
case '0':
header("location: areaPrivada.php");
break;
case '1':
header("location: cadastrar.php");
break;
default:
echo "Usuario sem acesso";
break;
}
}
}
}
}
Ocorre o erro:
Notice: Undefined variable: conectar in C:\\xampp\\htdocs\\PROGRAMA\\Classes\\usuarios.php on line 67
Fatal error: Uncaught Error: Call to a member function query() on null in C:\\xampp\\htdocs\\PROGRAMA\\Classes\\usuarios.php:67 Stack trace: #0 C:\\xampp\\htdocs\\PROGRAMA\\index.php(35): Usuario->logar('9530', '1234') #1 thrown in C:\\xampp\\htdocs\\PROGRAMA\\Classes\\usuarios.php on line 67
Baby01
Curtidas 0
Melhor post
Fernando C
19/01/2019
olá. percebi mais 2 coisas:
1. vc não declarou as variaveis do form
($cracha e $senha);
2. vc nao precisa de 2 sqls, veja abaixo:
<?php
session_start();
$pdo= // aqui conexao
$cracha=$_POST['cracha'];
$senha=$_POST['senha'];
$sql = $pdo->prepare("SELECT nivel FROM usuarios WHERE cracha = :c AND senha = :s");
$sql->bindValue(":c",$cracha);
$sql->bindValue(":s",md5($senha));
$sql->execute();
$num = $sql-> rowCount();
if($num > 0){
while ($linha = $sql->fetch(PDO::FETCH_ASSOC)){
$nivel = $linha['nivel'];
echo $nivel;
}
switch ($nivel) {
case '0':
header("location: areaPrivada.php");
break;
case '1':
header("location: cadastrar.php");
break;
default:
echo "Usuario sem acesso";
break;
}
}
?>
1. vc não declarou as variaveis do form
($cracha e $senha);
2. vc nao precisa de 2 sqls, veja abaixo:
<?php
session_start();
$pdo= // aqui conexao
$cracha=$_POST['cracha'];
$senha=$_POST['senha'];
$sql = $pdo->prepare("SELECT nivel FROM usuarios WHERE cracha = :c AND senha = :s");
$sql->bindValue(":c",$cracha);
$sql->bindValue(":s",md5($senha));
$sql->execute();
$num = $sql-> rowCount();
if($num > 0){
while ($linha = $sql->fetch(PDO::FETCH_ASSOC)){
$nivel = $linha['nivel'];
echo $nivel;
}
switch ($nivel) {
case '0':
header("location: areaPrivada.php");
break;
case '1':
header("location: cadastrar.php");
break;
default:
echo "Usuario sem acesso";
break;
}
}
?>
GOSTEI 1
Mais Respostas
Fernando C
17/01/2019
olá. 1. vc não fez a conexão ao banco de dados (função conectar está indefinida).
2. depois vc precisa recuperar o nivel do usuario; vc só está recuperando o id.
tente ai e qqer coisa retorne.
2. depois vc precisa recuperar o nivel do usuario; vc só está recuperando o id.
tente ai e qqer coisa retorne.
GOSTEI 0
Baby01
17/01/2019
TOP, funcionou certinho. Muito Obrigado :)
GOSTEI 0