Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
O CODIGO ESTA NOS COMENTARIOS
Alguem poderia me ajudar, como eu posso por login na minha pagina index.php e cadastro na pagina cadastro.php, so que com um nivel de acesso, se a pessoa que logar for adm vai para a pagina indexadm.php, JA TENHO o CRUD feito e queria saber como por essa funcao de login, se puderem me ajudar agradeceria dms.
Bom eu consegui um CRUD, e ja tenho minha index eu queria saber apenas como fazer uma funcao de login e cadastro com ele se você poder me ajudar agradeco muito mano. O usuario apos logar na index vai para uma pagina com o nome painel.php caso for adm ele vai para o indexadm.php que e aonde esta o CRUD.
Estou procurando a em muitos lugares e n consegui por o login, se você poder me ajudar.
Se quiser posso por o codigo do CRUD todo aqui
Classe Usuarios.php
<?php
require_once 'Crud.php';
class Usuarios extends Crud{
protected $table = 'usuarios';
private $nome;
private $email;
private $senha;
public function setNome($nome){
$this->nome = $nome;
}
public function getNome(){
return $this->nome;
}
public function setEmail($email){
$this->email = $email;
}
public function setSenha($senha){
$this->senha = $senha;
}
public function insert(){
$sql = "INSERT INTO $this->table (nome, email, senha) VALUES (:nome, :email, :senha)";
$stmt = DB::prepare($sql);
$stmt->bindParam(':nome', $this->nome);
$stmt->bindParam(':email', $this->email);
$stmt->bindParam(':senha', $this->senha);
return $stmt->execute();
}
public function update($id){
$sql = "UPDATE $this->table SET nome = :nome, email = :email WHERE id = :id";
$stmt = DB::prepare($sql);
$stmt->bindParam(':nome', $this->nome);
$stmt->bindParam(':email', $this->email);
$stmt->bindParam(':id', $id);
return $stmt->execute();
}
}
Classe Crud.php
<?php
require_once 'DB.php';
abstract class Crud extends DB{
protected $table;
abstract public function insert();
abstract public function update($id);
public function find($id){
$sql = "SELECT * FROM $this->table WHERE id = :id";
$stmt = DB::prepare($sql);
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
$stmt->execute();
return $stmt->fetch();
}
public function findAll(){
$sql = "SELECT * FROM $this->table";
$stmt = DB::prepare($sql);
$stmt->execute();
return $stmt->fetchAll();
}
public function delete($id){
$sql = "DELETE FROM $this->table WHERE id = :id";
$stmt = DB::prepare($sql);
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
return $stmt->execute();
}
}
Classe indexadm.php
<?php
function __autoload($class_name){
require_once 'classes/' . $class_name . '.php';
}
?>
<!DOCTYPE HTML>
<html land="pt-BR">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Painel ADMIN</title>
<meta name="description" content="PAINEL ADMIN" />
<meta name="robots" content="indexadm, follow" />
<link rel="stylesheet" href="css/bootstrap.css" />
<link rel="stylesheet" />
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body>
<div class="container">
<?php
$usuario = new Usuarios();
if(isset($_POST['cadastrar'])):
$nome = $_POST['nome'];
$email = $_POST['email'];
$senha = $_POST['senha'];
$usuario->setNome($nome);
$usuario->setEmail($email);
$usuario->setSenha($senha);
# Insert
if($usuario->insert()){
echo "Inserido com sucesso!";
}
endif;
?>
<header class="masthead">
<nav class="navbar">
<div class="navbar-inner">
<h1 class="muted">Painel ADMIN</h1>
<div class="container">
<ul class="nav">
<li class="active"><a href="indexadm.php">Página inicial</a></li>
</ul>
</div>
</div>
</nav>
</header>
<?php
if(isset($_POST['atualizar'])):
$id = $_POST['id'];
$nome = $_POST['nome'];
$email = $_POST['email'];
$senha = $_POST['senha'];
$usuario->setNome($nome);
$usuario->setEmail($email);
$usuario->setSenha($senha);
if($usuario->update($id)){
echo "Atualizado com sucesso!";
}
endif;
?>
<?php
if(isset($_GET['acao']) && $_GET['acao'] == 'deletar'):
$id = (int)$_GET['id'];
if($usuario->delete($id)){
echo "Deletado com sucesso!";
}
endif;
?>
<?php
if(isset($_GET['acao']) && $_GET['acao'] == 'editar'){
$id = (int)$_GET['id'];
$resultado = $usuario->find($id);
?>
<form method="post" action="">
<div class="input-prepend">
<span class="add-on"><i class="icon-user"></i></span>
<input type="text" name="nome" value="<?php echo $resultado->nome; ?>" placeholder="Nome:" />
</div>
<div class="input-prepend">
<span class="add-on"><i class="icon-envelope"></i></span>
<input type="text" name="email" value="<?php echo $resultado->email; ?>" placeholder="E-mail:" />
</div>
<div class="input-prepend">
<span class="add-on"><i class="icon-password"></i></span>
<input type="password" name="senha" value="<?php echo $resultado->senha; ?>" placeholder="Senha:" />
</div>
<input type="hidden" name="id" value="<?php echo $resultado->id; ?>">
<br />
<input type="submit" name="atualizar" class="btn btn-primary" value="Atualizar dados">
</form>
<?php }else{ ?>
<form method="post" action="">
<div class="input-prepend">
<span class="add-on"><i class="icon-user"></i></span>
<input type="text" name="nome" placeholder="Nome:" />
</div>
<div class="input-prepend">
<span class="add-on"><i class="icon-envelope"></i></span>
<input type="text" name="email" placeholder="E-mail:" />
</div>
<div class="input-prepend">
<span class="add-on"><i class="icon-password"></i></span>
<input type="password" name="senha" placeholder="Senha:" />
</div>
<br />
<input type="submit" name="cadastrar" class="btn btn-primary" value="Cadastrar dados">
</form>
<?php } ?>
<table class="table table-hover">
<thead>
<tr>
<th>#</th>
<th>Nome:</th>
<th>E-mail:</th>
<th>Senha:</th>
<th>Ações:</th>
</tr>
</thead>
<?php foreach($usuario->findAll() as $key => $value): ?>
<tbody>
<tr>
<td><?php echo $value->id; ?></td>
<td><?php echo $value->nome; ?></td>
<td><?php echo $value->email; ?></td>
<td><?php echo $value->senha; ?></td>
<td>
<?php echo "<a href='indexadm.php?acao=editar&id=" . $value->id . "'>Editar</a>"; ?>
<?php echo "<a href='indexadm.php?acao=deletar&id=" . $value->id . "' onclick='return confirm(\"Deseja realmente deletar?\")'>Deletar</a>"; ?>
</td>
</tr>
</tbody>
<?php endforeach; ?>
</table>
</div>
<script src="js/jQuery.js"></script>
<script src="js/bootstrap.js"></script>
</body>
</html>
Classe de conexao.
config.php
<?php
define('DB_HOST', 'localhost');
define('DB_NAME', 'company');
define('DB_USER', 'root');
define('DB_PASS', '');
DB.php
<?php
require_once 'config.php';
class DB{
private static $instance;
public static function getInstance(){
if(!isset(self::$instance)){
try {
self::$instance = new PDO('mysql:host=' . DB_HOST . ';dbname=' . DB_NAME, DB_USER, DB_PASS);
self::$instance->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
self::$instance->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
} catch (PDOException $e) {
echo $e->getMessage();
}
}
return self::$instance;
}
public static function prepare($sql){
return self::getInstance()->prepare($sql);
}
}
Eu queria so por o login aqui na index.php
<?php
session_start();
function __autoload($class_name){
require_once 'classes/' . $class_name . '.php';
}
$usuario = new Usuarios();
//SEM LOGIN.
?>
<!doctype html>
<html lang="pt-br">
<!-- FORMULARIO DE LOGIN -->
<form method="post" name="frmLogin">
<div class="form-group">
<label for="exampleInputEmail1">Email</label>
<input type="email" name="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="@email.com" autocomplete="off">
</div>
<div class="form-group">
<label for="exampleInputPassword1">Senha</label>
<input type="password" name="senha" class="form-control" id="exampleInputPassword1" placeholder="********" autocomplete="off">
</div>
<div class="form-group form-check">
<input type="checkbox" class="form-check-input" id="exampleCheck1">
<label class="form-check-label" for="exampleCheck1">Check me out</label>
</div>
<button type="submit" name="btnSubmit" class="btn btn-primary">Enviar</button>
<a href="cadastro.php">Cadastrar-se</a> | <a href="recuperarSenha.php">Recuperar Senha</a>
</form>
AI AQUI vai o cadastro.php
<?php
session_start();
function __autoload($class_name){
require_once 'classes/' . $class_name . '.php';
}
$usuario = new Usuarios();//SEM LOGIN.
?>
<div id=formcad>
<form method="post" name="frmCadastro ">
<div class="form-group">
<label for="exampleInputName1">Nome</label>
<input type="name" name="nome" class="form-control col-md-8" id="exampleInputName1" aria-describedby="NameHelp" placeholder="Nome" autocomplete="off">
</div>
<div class="form-group">
<label for="exampleInputEmail1">Email</label>
<input type="email" name="email" class="form-control col-md-8" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="exemplo@email.com" autocomplete="off">
</div>
<div class="form-group">
<label for="exampleInputPassword1">Senha</label>
<input type="password" name="senha" id="txtPass" class="form-control col-md-5" placeholder="********" autocomplete="off">
</div>
<button type="submit" name="btnSubmit" value="Cadastrar" class="btn btn-primary">Enviar</button><a href="index.php">Voltar</a>
</form>
</div>
Sobre o CRUD....
Sobre cadastro etc... Temos que saber o quanto você sabe sobre envio de formulários.
Enfim, na tabela que conterá os dados dos usuários pode-se possuir uma coluna por exemplo 'usuario_nivel' ela seria (int) e por padrão seu valor sempre será 0 "zero" ou 1. Isso depende do jeito que vai querer fazer.
Então no cadastro de qualquer pessoa (veja no guia que mostrei).
Você irá salvar os dados de login & senha desse usuário.
No login o que você faz é comparar os dados enviados do formulário "login e senha" com os dados do banco. Estando correto você cria por exemplo uma cessão "acesso" nela você armazena o valor da coluna usuario_nivel. Logo então redireciona o usuário para o index (pode ser) atualizando assim o conteúdo do website.
A questão sobre o nível de acesso, é restrito ao que aquele usuário logado pode ver baseado no nível da coluna que armazena seu nível. Vejamos....