Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola pessoal Boa noite
Estou realizado um projeto onde cada usuario ele podera cadastrar e editar seus post
Sendo que dentro do seu admin de usuario ele irar poder fazer busca pela caixa de pesquisa dos seus poste se assim ele querer
Bom minha tabela de usuario esta assim ISSO É UM EX:
///////////USUARIO SQL//////
id
nome
login
senha
foto
ativo
Agora já onde eles vai fazer os cadastros e edições esta assim
///TABELA MURAL_DE_RECADOS SQL////
id
titulo
resumo
data
id_categoria
mensagem
foto
Outra tabela
////TABELA VIDEOS SQL////
id
titulo
data
id_categoria
cod_youtube
descricao
Aqui e uma pequena listagem de seus produtos
////TABELA PRODUTOS SQL/////
id
titulo
resumo
data
imagem
imagem1
imagem2
imagem3
imagem4
tipo
valor
id_categoria
Que eu quero e saber como eu que posso fazer que cada cliente cadastrar suas coisas e edita e possa deletar só o que ele postou.
@Omar~ ola omar bom dia
Olhe eu fiz antes de fazer este post ai onde o eu tenho 3 nivel de acesso
Nivél (1) WebMaster
Nivél (2) Administrador
Nivél (3) Editor
Quero por o Nivél (4) Cliente <-- onde ele podera cadastra editar e excluir seu post
Aqui o codigo controller/usuario.php
<?php
// Status do Usuário
function StatusUsuario($Status){
if ($Status == 1) {
echo '<span class="label label-info">Ativo</span>';
} elseif ($Status == 2) {
echo '<span class="label label-danger">Inativo</span>';
}
}
// Nivel do Usuário
function NivelUsuario($Status){
if ($Status == 1) {
echo '<span class="label label-info">WebMaster</span>';
} elseif ($Status == 2) {
echo '<span class="label label-success">Administrador</span>';
} elseif ($Status == 3) {
echo '<span class="label label-warning">Editor</span>';
}
}
// Adicionar
if (isset($_GET['Adicionar'])) {
if (isset($_POST['permissao'])) {
$Permissao = implode(', ', array_values(post('permissao')));
} else {
$Permissao = false;
}
if (isset($_POST['login']) && !empty($_POST['login'])) {
$Login = post('login');
$Query = DBCount('usuarios','login',"WHERE login = '{$Login}'");
if ($Query >= 1) {
AbreAlerta('Este login já está sendo usado por outro usuário');
Redireciona('?adicionar');
} else {
if (isset($_POST['email']) && !empty($_POST['email'])) {
$Email = post('email');
$Query = DBCount('usuarios','email',"WHERE email = '{$Email}'");
if ($Query >= 1) {
AbreAlerta('Este email já está sendo usado por outro usuário');
Redireciona('?adicionar');
} else {
if (isset($_FILES['avatar']) && !empty($_FILES['avatar']['name'])){
require_once 'database/upload.class.php';
$dir_dest = 'css_js/images/usuarios/';
$files = array( );
$file = $_FILES['avatar'];
$handle = new Upload( $file );
if ($handle->uploaded){
$handle->file_new_name_body = md5(uniqid($file['name']));
$handle->Process($dir_dest);
if ($handle->processed){
$file_dst_name = $handle->file_dst_name;
$Imagem = $handle->file_dst_name;
}
}
}
$Adicionar = array(
'nome' => post('nome'),
'login' => post('login'),
'senha' => md5(post('senha')),
'email' => post('email'),
'avatar' => $Imagem,
'nivel' => post('nivel'),
'permissao' => $Permissao,
'status' => post('status')
);
$Query = DBCreate('usuarios', $Adicionar);
if ($Query != 0) {
Redireciona('?sucesso');
} else {
Redireciona('?erro');
}
}
}
}
}
}
// Atualizar
if (isset($_GET['Atualizar'])) {
$id = get('Atualizar');
if (isset($_FILES['avatar']) && !empty($_FILES['avatar']['name'])){
require_once 'database/upload.class.php';
$dir_dest = 'css_js/images/usuarios/';
$files = array( );
$file = $_FILES['avatar'];
$handle = new Upload( $file );
if ($handle->uploaded){
$handle->file_new_name_body = md5(uniqid($file['name']));
$handle->Process($dir_dest);
if ($handle->processed){
$file_dst_name = $handle->file_dst_name;
$Imagem = $handle->file_dst_name;
$Atualizar = array('avatar' => $Imagem);
$Query = DBUpdate('usuarios', $Atualizar, "id = '{$id}'");
@unlink($dir_dest.post('imagem_atual'));
}
}
}
if (isset($_POST['senha']) && !empty($_POST['senha'])) {
if (isset($_POST['permissao'])) {
$Permissao = implode(', ', array_values(post('permissao')));
} else {
$Permissao = false;
}
$Atualizar = array(
'nome' => post('nome'),
'login' => post('login'),
'senha' => md5(post('senha')),
'email' => post('email'),
'nivel' => post('nivel'),
'permissao' => $Permissao,
'status' => post('status')
);
} else {
if (isset($_POST['permissao'])) {
$Permissao = implode(', ', array_values(post('permissao')));
} else {
$Permissao = false;
}
$Atualizar = array(
'nome' => post('nome'),
'login' => post('login'),
'email' => post('email'),
'nivel' => post('nivel'),
'permissao' => $Permissao,
'status' => post('status')
);
}
$Query = DBUpdate('usuarios', $Atualizar, "id = '{$id}'");
if ($Query != 0) {
Redireciona('?sucesso');
} else {
Redireciona('?erro');
}
}
// Ativar
if (isset($_GET['ativar'])) {
$id = get('ativar');
$AtualizaCliente = array(
'status' => '1'
);
$Query = DBUpdate("usuarios",$AtualizaCliente,"id = '{$id}'");
if ($Query != 0) {
Redireciona('?sucesso');
} elseif ($Query == 0) {
Redireciona('?erro');
}
}
// Desativar
if (isset($_GET['desativar'])) {
$id = get('desativar');
$AtualizaCliente = array(
'status' => '2'
);
$Query = DBUpdate("usuarios",$AtualizaCliente,"id = '{$id}'");
if ($Query != 0) {
Redireciona('?sucesso');
} else {
Redireciona('?erro');
}
}
// Excluir
if (isset($_GET['excluir'])) {
$id = get('excluir');
$Query = DBDelete('usuarios',"id = '{$id}'");
if ($Query != 0) {
Redireciona('?sucesso');
} else {
Redireciona('?erro');
}
}
?>
Este aqui é do Usuario onde eu faço o cadastro do usuario || usuario.php
<?php require_once('includes/funcoes.php'); ?>
<?php require_once('includes/header.php'); ?>
<?php require_once('includes/menu.php'); ?>
<?php require_once('controller/usuarios.php'); ?>
<?php $TitlePage = 'Usuários'; ?>
<?php $UrlPage = 'usuarios.php'; ?>
<?php $NumWM = DBCount('usuarios','id','WHERE nivel = 1'); ?>
<?php $NumADM = DBCount('usuarios','id','WHERE nivel = 2'); ?>
<div class="content-wrapper">
<section class="content-header">
<h1><?php echo $TitlePage; ?> <small><?php echo ConfigPainel('site_nome'); ?></small></h1>
<ol class="breadcrumb">
<li><a href="index.php"><i class="fa fa-dashboard"></i> Painel de Controle</a></li>
<li class="active"><?php echo $TitlePage; ?></li>
</ol>
</section>
<section class="content">
<div class="row">
<div class="col-md-12">
<div class="box">
<div class="box-body no-padding">
<div class="nav-tabs-custom">
<ul class="nav nav-tabs">
<li class="dropdown">
<a class="dropdown-toggle active" data-toggle="dropdown" href="#">Menu de Opções <span class="caret"></span></a>
<ul class="dropdown-menu">
<li role="presentation"><a role="menuitem" tabindex="-1" href="<?php echo $UrlPage; ?>">Usuários Cadastradas</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="?AdicionarItem">Cadastrar Usuário</a></li>
</ul>
</li>
</ul>
<div class="tab-content">
<?php if(isset($_GET['AdicionarItem'])){ ?>
<form method="post" action="?Adicionar" enctype="multipart/form-data">
<div class="col-md-6">
<div class="form-group">
<label>Nome:</label>
<input class="form-control" name="nome" required>
</div>
<div class="form-group">
<label>Login:</label>
<input class="form-control" name="login" required>
</div>
<div class="form-group">
<label>Senha:</label>
<input class="form-control" name="senha" required>
</div>
<div class="form-group">
<label>E-mail:</label>
<input class="form-control" name="email" required>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<?php if (DadosSession('nivel') == '1') { ?>
<label><?php echo $txt['nivel_dousuario']; ?>:</label>
<select class="form-control" name="nivel" required>
<option value="1"><?php echo $txt['webmaster_usuario']; ?></option>
<option value="2"><?php echo $txt['admin_usuario']; ?></option>
<option value="3"><?php echo $txt['editor_usuario']; ?></option>
<option value="4"><?php echo $txt['cliente']; ?></option>
</select>
<?php } else { ?>
<label><?php echo $txt['nivel_dousuario']; ?>:</label>
<select class="form-control" name="nivel" required>
<option value="2"><?php echo $txt['admin_usuario']; ?></option>
<option value="3"><?php echo $txt['editor_usuario']; ?></option>
<option value="4"><?php echo $txt['cliente']; ?></option>
</select>
<?php } ?>
</div>
<div class="form-group">
<label><?php echo $txt['permissao_acesso']; ?>:</label>
<select class="form-control select2" name="permissao[]" multiple="multiple" data-placeholder="<?php echo $txt['todos_os_mods']; ?>">
<?php $Query = DBRead('modulos','nome, url'); if (is_array($Query)) { foreach ($Query as $modulos) { ?>
<option value="<?php echo $modulos['url']; ?>"><?php echo $modulos['nome']; ?></option>
<?php } } ?>
<option value="ger_banners.php"><?php echo $txt['gerenciar_banners'] ?></option>
<?php $Query = DBRead('ger_banners','nome, url'); if (is_array($Query)) { foreach ($Query as $ger_banners) { ?>
<option value="<?php echo $ger_banners['url']; ?>"><?php echo $ger_banners['nome']; ?></option>
<?php } } ?>
</select>
</div>
<div class="form-group">
<label>Avatar:</label>
<input class="form-control" name="avatar" type="file">
</div>
<div class="form-group">
<label>Status:</label>
<select class="form-control" name="status" required>
<option value="1">Ativo</option>
<option value="2">Inativo</option>
</select>
</div>
</div>
<div class="col-md-12"><hr>
<center>
<button class="btn btn-primary">Adicionar</button>
</center>
<br>
</div>
</form>
Este é minha session.php
<?php
$IDUsuario = $_SESSION['node']['id'];
$NomeUsuario = $_SESSION['node']['nome'];
$LoginUsuario = $_SESSION['node']['login'];
$NivelUsuario = $_SESSION['node']['nivel'];
$StatusUsuario = $_SESSION['node']['status'];
$IPUsuario = $_SESSION['node']['ip_conexao'];
?>
Este aqui é a funcao.php com o session do php
// Dados Session
function DadosSession($Item){
return $_SESSION['node']["{$Item}"];
}
Este aqui que também esta na funcao.php
que faz ter acesso aos modulos que for dado a permissão para admin e o editor
// Verifica se o usuário tem permissão para acessar o módulo
function VerificaPermissao($URL){
$IDUsuario = DadosSession('id');
$Query = DBRead('usuarios','permissao',"WHERE id = '{$IDUsuario}'"); foreach ($Query as $usuarios) {
$ModulosPermitidos = $usuarios['permissao'];
if (empty($ModulosPermitidos)) {
return true;
} elseif (!empty($ModulosPermitidos)) {
if (strpos($ModulosPermitidos, $URL) !== false) {
return true;
} else {
return false;
}
}
}
}
Aqui esta alguns dos modulos recados.php cadastro
Sendo que os outros modulos será todos os modelos dele
<?php require_once('includes/funcoes.php'); ?>
<?php require_once('includes/header.php'); ?>
<?php require_once('includes/menu.php'); ?>
<?php require_once('controller/recados.php'); ?>
<?php $TitlePage = 'Mural de Recados'; ?>
<?php $UrlPage = 'recados.php'; ?>
<div class="content-wrapper">
<section class="content-header">
<h1><?php echo $TitlePage; ?> <small><?php echo ConfigPainel('site_nome'); ?></small></h1>
<ol class="breadcrumb">
<li><a href="index.php"><i class="fa fa-dashboard"></i> Painel de Controle</a></li>
<li class="active"><?php echo $TitlePage; ?></li>
</ol>
</section>
<section class="content">
<div class="row">
<div class="col-md-12">
<div class="box">
<div class="box-body no-padding">
<div class="nav-tabs-custom">
<ul class="nav nav-tabs">
<li class="dropdown">
<a class="dropdown-toggle active" data-toggle="dropdown" href="#">Menu de Opções <span class="caret"></span></a>
<ul class="dropdown-menu">
<li role="presentation"><a role="menuitem" tabindex="-1" href="<?php echo $UrlPage; ?>">Recados Cadastrados</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="?AdicionarItem">Cadastrar Recado</a></li>
<?php if (DadosSession('nivel') == 1) { ?>
<li role="presentation"><a role="menuitem" tabindex="-1" href="?AdicionarCategoria">Cadastrar Categoria</a></li>
<li role="presentation"><a role="menuitem" tabindex="-1" href="?ListarCategoria">Listar/Categorias</a></li>
<?php } ?>
</ul>
</li>
<?php if (DadosSession('nivel') == 1){ ?>
<li class="pull-right">
<button class="btn btn-primary" <?php Tooltip('Ajuda','top'); ?> data-toggle="modal" data-target="#Ajuda"><i class="fa fa-question-circle"></i></button>
</li>
<?php } ?>
</ul>
<div class="tab-content">
<?php if(isset($_GET['AdicionarItem'])){
VerificaCategoria('c_recados'); ?>
<form method="post" action="?Adicionar" enctype="multipart/form-data">
<div class="col-md-6">
<div class="form-group">
<label>Nome:</label>
<input class="form-control" name="nome" required>
</div>
<div class="form-group">
<label>Categoria:</label>
<select class="form-control" name="id_categoria">
<?php $Query = DBRead('c_recados','*','WHERE id > 0'); if (is_array($Query)) { foreach ($Query as $c_dados) { ?>
<option value="<?php echo $c_dados['id']; ?>"><?php echo $c_dados['categoria']; ?></option>
<?php } } ?>
</select>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label>E-mail:</label>
<input class="form-control" name="email">
</div>
<div class="form-group">
<label>Status:</label>
<select class="form-control" name="status">
<option value="S" >Ativo</option>
<option value="N">Inativo</option>
</select>
</div>
</div>
<div class="col-md-12">
<div class="form-group">
<label>Imagem:</label>
<input class="form-control" type="file" name="imagem">
</div>
<div class="form-group">
<label>Recado:</label>
<textarea class="form-control" name="recado" rows="4" required></textarea>
</div>
<div class="form-group">
<label>Resposta:</label>
<textarea class="form-control" name="resposta" rows="4"></textarea>
</div>
<center><hr>
<button class="btn btn-primary">Adicionar</button>
<br><br>
</center>
</div>
</form>
Aqui o controller/recado.php
<?phpfunction StatusSN($Status){
if ($Status == 'S') {
echo '<span class="label label-info">Ativo</span>';
} elseif ($Status == 'N') {
echo '<span class="label label-danger">Inativo</span>';
}
} if (isset($_GET['Adicionar'])) {
$Imagem = 'padrao.png';
if (isset($_FILES['imagem']) && !empty($_FILES['imagem']['name'])){
require_once 'database/upload.class.php';
$dir_dest = 'wa/recados/uploads/';
$files = array( );
$file = $_FILES['imagem'];
$handle = new Upload( $file );
if ($handle->uploaded){
$handle->file_new_name_body = md5(uniqid($file['name']));
$handle->Process($dir_dest);
if ($handle->processed){
$file_dst_name = $handle->file_dst_name;
$Imagem = $handle->file_dst_name;
}
}
}
$Adicionar = array(
'nome' => post('nome'),
'email' => post('email'),
'recado' => post('recado'),
'resposta' => post('resposta'),
'admin_resposta' => DadosSession('nome'),
'imagem' => $Imagem,
'id_categoria' => post('id_categoria'),
'status' => post('status')
);
$Query = DBCreate('recados', $Adicionar);
if ($Query != 0) { Redireciona('?sucesso'); } else { Redireciona('?erro');}
} if (isset($_GET['Atualizar'])) {
$id = get('Atualizar');
if (isset($_FILES['imagem']) && !empty($_FILES['imagem']['name'])){
require_once 'database/upload.class.php';
$dir_dest = 'wa/recados/uploads/';
$files = array( );
$file = $_FILES['imagem'];
$handle = new Upload( $file );
if ($handle->uploaded){
$handle->file_new_name_body = md5(uniqid($file['name']));
$handle->Process($dir_dest);
if ($handle->processed){
$file_dst_name = $handle->file_dst_name;
$Imagem = $handle->file_dst_name;
$Atualizar = array('imagem' => $Imagem);
$Query = DBUpdate('recados', $Atualizar, "id = '{$id}'");
@unlink($dir_dest.post('imagem_atual'));
}
}
}
$Atualizar = array(
'nome' => post('nome'),
'email' => post('email'),
'recado' => post('recado'),
'resposta' => post('resposta'),
'admin_resposta' => DadosSession('nome'),
'id_categoria' => post('id_categoria'),
'status' => post('status')
);
$Query = DBUpdate('recados', $Atualizar, "id = '{$id}'");
if ($Query != 0) { Redireciona('?sucesso'); } else { Redireciona('?erro'); }
} if (isset($_GET['DeletarItem'])) {
$id = get('DeletarItem');
$Query = DBDelete('recados',"id = '{$id}'");
if ($Query != 0) { Redireciona('?sucesso'); } else { Redireciona('?erro'); }
} if (isset($_GET['AddCategoria'])) {
$Adicionar = array(
'categoria' => post('categoria'),
'paginacao' => post('paginacao'),
'cor_conteudo' => post('cor_conteudo'),
'cor_titulo' => post('cor_titulo'),
'background' => post('background'),
'foto' => post('foto')
);
$Query = DBCreate('c_recados', $Adicionar);
if ($Query != 0) { Redireciona('?sucesso'); } else { Redireciona('?erro'); }
} if (isset($_GET['AtualizarCategoria'])) {
$id = get('AtualizarCategoria');
$Adicionar = array(
'categoria' => post('categoria'),
'paginacao' => post('paginacao'),
'cor_conteudo' => post('cor_conteudo'),
'cor_titulo' => post('cor_titulo'),
'background' => post('background'),
'foto' => post('foto')
);
$Query = DBUpdate('c_recados', $Adicionar, "id = '{$id}'");
if ($Query != 0) {Redireciona('?ListarCategoria&sucesso');} else {Redireciona('?erro');}
} if (isset($_GET['DeletarCategoria'])) {
$id = get('DeletarCategoria');
$Query = DBDelete('c_recados',"id = '{$id}'");
if ($Query != 0) {Redireciona('?sucesso');} else {Redireciona('?erro');}
}
?>
No index.php do painel onde faz as listagem dos modulos etc.. esta assim
<div class="row">
<?php $Query = DBRead('modulos','*','WHERE status = 1 ORDER BY ordem ASC'); if (is_array($Query)) { foreach ($Query as $modulos) {
if (!empty($modulos['tabela'])) { $QueryCount = DBCount($modulos['tabela'], 'id'); } else { $QueryCount = '*'; } ?>
<?php if (VerificaPermissao($modulos['url']) == true) { ?>
<div onclick="window.location.href='<?php echo $modulos['url']; ?>'" class="col-lg-3 col-md-4 col-sm-6 col-xs-12" style="cursor:pointer;">
<div class="info-box bg-<?php echo ConfigPainel('cor_blocos'); ?>">
<span class="info-box-icon"><i class="fa <?php echo $modulos['icone']; ?>"></i></span>
<div class="info-box-content">
<span class="info-box-text"><?php echo $modulos['nome']; ?></span>
<span class="info-box-number"><?php echo $QueryCount; ?></span>
<div class="progress">
<div class="progress-bar" style="width: 100%"></div>
</div>
<span class="progress-description pull-right">
<a href="<?php echo $modulos['url']; ?>" style="color:#FFF;">Gerenciar</a>
</span>
</div>
</div>
</div>
Bom é isso ai, acho que consegue entender
Você já escreveu a consulta para mostrar os post do usuário?
Com essa consulta aqui ficaria mais fácil explicar.
Então se fosse meu caso como eu faria....
- Na tabela de usuário temos uma coluna ID, que acredito que esse valor seja único para cada usuário.
Pois bem ao logar esse usuário armazenaria esse valor em uma sessão.
- Na tabela de post criaria nova coluna exemplo
postado_porint(9)Então toda vez que um usuário postar seu conteúdo o id dele fica será gravado nessa coluna
- Quando um usuário acessa o conteúdo, apenas verificaria se o ID dele é igual ao valor da coluna que mencionei. Sendo assim ele pode editar/apagar como bem entender.
- No caso do admin ele teria uma sessão gravada ao logar que indica que ele é o administrador, então, quando ele acessa o conteúdo verifico se essa sessão existe.
Se existir não entra na condição da coluna...
Exemplo:
// verificação dos dados de consulta aqui.... } else { // Não exite nada na tabela }