Jump to content

Sapinn

Members
  • Content count

    112
  • Joined

  • Last visited

Community Reputation

0 Comum

About Sapinn

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Sapinn

    Devolução ao estoque

    Entendi... Mas como eu faria pra devolver isso ao banco de dados? Uma solução não seria enviar um formulário com todos os id do produto e a quantidade da venda somar com a quantidade do produto atualmente e atualizar o preço? Então como eu faria para pegar esse produtos do banco de dados ?
  2. Sapinn

    Devolução ao estoque

    Fala galare, blz? Então, estou desenvolvendo um sistema de vendas e eu gostaria de saber como fazer para devolver o produto ao estoque no caso de cancelamento da venda ou na devolução. Por exemplo: Digamos que eu tenha um estoque com 10 fones de ouvido, 5 teclados e 20 pen drives. Então um cliente comprou 1 fone de ouvido, 1 teclado e 2 pendrive, eu já consigo ajustar o estoque para diminuir ficando: 9 fones de ouvido, 4 teclados, 18 pen drives. Mas digamos que, por alguma razão, o cliente gostaria de devolver o pen drives e o fone de ouvido como eu faria para colocar ambos de volta ao seu respectivo estoque, ou seja ajustar os 9 fones e os 18 pen drive de volta para 10 fones e 20 pen drive??
  3. Nesse caso eu devo fazer isso no meu Controller ou no meu Model??
  4. Boa pessoal. Então, estou fazendo um sistema para uma loja de manutenção de aparelhos eletrônicos, e eu tenho um formulário de cadastro onde eu posso inserir os dados de um cliente e os dados do seu aparelho. E eu consigo cadastrar simultaneamente cada um em suas respectivas tabelas. O que eu gostaria de fazer era assim que cadastra-se o cliente pega-se o seu id( Nesse caso o ultimo id inserido) e inserisse na tabela serviços junto. No PDO tem um jeito de fazer isso que é usando o lastInsertId() mas eu não estou sabendo como retornar esse ultimo id para fazer essa inserção
  5. Sapinn

    Erro ao passar array de dados

    O arquivo drive que você colocou está restrito, por favor libério-o. Obrigado pelas dicas irei analisar bem os dados e tentarei corrigir senão der certo irei retornar aqui.
  6. Sapinn

    Erro ao passar array de dados

    Beleza!! Controlador Admin: <?php class Admins extends Controller{ //construct que chama o model public function __construct() { $this->adminModel = $this->model("Admin"); } public function home(){ $dados = [ 'admins' => $this->adminModel->lerAdmin() ]; $this->view('paginas/admins/home',$dados); } //função que cadastra o admin public function cadastrar(){ $formulario = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING); if(isset($formulario)): //filtra os dados $dados = [ 'nome_admin' => trim($formulario['nome_admin']), 'email_admin' => trim($formulario['email_admin']), 'senha_admin' => trim($formulario['senha_admin']), 'confirmar_senha_admin' => trim($formulario['confirmar_senha_admin']), ]; //verificando se os dados não estão vazios if(in_array("", $formulario)): if(empty($formulario['nome_admin'])): Sessao::mensagem('admin','Preencha o campo nome','alert-danger'); endif; if(empty($formulario['email_admin'])): $dados['mensagem_erro'] = "Preencha o campo email"; endif; if(empty($formulario['senha_admin'])): $dados['mensagem_erro'] = "Preencha o campo senha"; endif; if(empty($formulario['confirmar_senha_admin'])): $dados['mensagem_erro'] = "Preencha o campo confirmar senha"; endif; else: if(Checa::checaEmail($formulario['email_admin'])): Sessao::mensagem('admin','O e-mail informado é inválido','alert-danger'); elseif($this->adminModel->checarEmail($formulario['email_admin'])): Sessao::mensagem('admin','O e-mail informado já foi cadastrado','alert-danger'); elseif(strlen($formulario['senha_admin']) < 6): Sessao::mensagem('admin','A senha precisa ter pelo menos 6 caracteres','alert-danger'); elseif($formulario['senha_admin'] != $formulario['confirmar_senha_admin']): Sessao::mensagem('admin','As senhas são diferentes','alert-danger'); else: if($this->adminModel->armazenar($dados)): Sessao::mensagem('admin','Admin cadastrado com sucesso!'); $dados = [ 'nome_admin' => '', 'email_admin' => '', 'senha_admin' => '', 'confirmar_senha_admin' => '', ]; else: Sessao::mensagem('admin','Erro ao cadastrar o admin!','alert-danger'); endif; endif; endif; else: $dados = [ 'nome_admin' => '', 'email_admin' => '', 'senha_admin' => '', 'confirmar_senha_admin' => '', 'mensagem_erro' => '', ]; endif; $this->view('paginas/admins/cadastrar', $dados); } //faz o login public function login(){ $formulario = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING); if(isset($formulario)): if(isset($formulario['manter_logado'])): $dados = [ 'email_admin' => trim($formulario['email_admin']), 'senha_admin' => trim($formulario['senha_admin']), 'manter_logado' => trim($formulario['manter_logado']), ]; else: $dados = [ 'email_admin' => trim($formulario['email_admin']), 'senha_admin' => trim($formulario['senha_admin']), ]; endif; if(in_array("", $formulario)): if(empty($formulario['email_admin'])): Sessao::mensagem('admin','Preencha o campo e-mail','alert-danger'); endif; if(empty($formulario['senha_admin'])): Sessao::mensagem('admin','Preencha o campo senha','alert-danger'); endif; else: if(Checa::checaEmail($formulario['email_admin'])): Sessao::mensagem('admin','O e-mail informado é inválido','alert-danger'); else: $admin = $this->adminModel->checarLogin($formulario['email_admin'], $formulario['senha_admin']); if($admin): $this->criarSessao($admin); else: Sessao::mensagem('admin','E-mail ou senha inválidos','alert-danger'); endif; endif; endif; else: $dados = [ 'email_admin' => '', 'senha_admin' => '', 'manter_logado' => '', 'mensagem_erro' => '', ]; endif; $this->view('paginas/admins/login', $dados); } private function criarSessao($admin){ $_SESSION['id'] = $admin->id; $_SESSION['nome'] = $admin->nome; $_SESSION['email'] = $admin->email; $_SESSION['acesso'] = $admin->acesso; URL::redirecionar('paginas/home'); } public function Sair(){ unset($_SESSION['id']); unset($_SESSION['nome']); unset($_SESSION['email']); unset($_SESSION['acesso']); session_destroy(); URL::redirecionar('paginas/login'); } } Model Admin: <?php class Admin { private $db; public function __construct() { $this->db = new DataBase; } public function lerAdmin(){ $this->db->query("SELECT * FROM admins"); return $this->db->resultados(); } public function checarEmail($email){ $this->db->query("SELECT email FROM admins where email = :email_admin"); $this->db->bind("email_admin",$email); if($this->db->resultado()): return true; else: return false; endif; } public function armazenar($dados){ $this->db->query("INSERT INTO admins (nome, email, senha, acesso) VALUES (:nome, :email, :senha, :acesso)"); $this->db->bind("nome", $dados['nome_admin']); $this->db->bind("email", $dados['email_admin']); $this->db->bind("senha", $dados['senha_admin']); if($this->db->executa()){ return true; }else{ return false; } } public function checarLogin($email, $senha){ $this->db->query("SELECT * FROM admins where email = :email_admin and senha = :senha_admin"); $this->db->bind("email_admin",$email); $this->db->bind("senha_admin",$senha); if($this->db->resultado()): $resultado = $this->db->resultado(); return $resultado; else: return false; endif; } } Class Controler: <?php class Controller { public function model($model){ require_once '../app/Models/'.$model.'.php'; return new $model; } public function view($view, $dados = []){ $arquivo = ('../app/Views/'.$view.'.php'); if(file_exists($arquivo)): require_once $arquivo; else: die('Método não encontrada'); endif; } }
  7. Sapinn

    Erro ao passar array de dados

    Cara eu não sei o que fazer ainda não deu certo. O $this->view('paginas/admins/home', $dados); Serve para passar os array de dados para a view home. Isso tá dando uma dor de cabeça gigante e eu não sei porquê está dando erro. Eu não estou conseguindo enviar esse array para a view home, existe alguma outra forma de se fazer isso??? Eu não sou tão bom em orientação a objetos.
  8. Sapinn

    Erro ao passar array de dados

    Ai cara eu fiz o que você pediu e ele não retornou nada, mesmo colocando igual Veja: <?php class Admins extends Controller{ private $dados = []; public function __construct() { $this->adminModel = $this->model("Admin"); } public function criarArray() { $this->dados = ['a' => '1', 'b' => '2', 'c' => '3']; } public function verArray() { return $this->dados; } $e = new Admins(); var_dump($e->verArray()); Eu tentei até mudar a versão do PHP da 7.4 para a 7.3 mas não obtive exite algum.
  9. Sapinn

    Erro ao passar array de dados

    NÃO SEI COMO RESOLVER ISSO PELO AMOR ... Eu tenho um método home que vai transferir os dados do banco para uma tabela Aqui esta o método no controlador: public function home(){ $dados = [ 'admins' => $this->adminModel->lerAdmin() ]; $this->view('paginas/admins/home', $dados); } E esse método no model: public function lerAdmin(){ $this->db->query("SELECT * FROM admins"); return $this->db->resultados(); } Ai eu chama os dados no home assim: <?=$dados['admins']?> Só pra testar eu sei que precisa usar um foreach, mas ele me retorna o seguinte erro: Notice: Undefined index: admins inC:\xampp\htdocs\PROJETOS\sistema-de-gerenciamento\app\Views\paginas\admins\home.phpon line178
  10. Uma nova dúvida surgiu... Quando o usuário marca a opção de manter-se conectado o link <?=URL?>/admins/cadastrar fica redirecionando o usuário para a pagina home e tudo isso por causa da função que eu chamo no index, essa função: $control->fazLogin($db->resultado()->email, $db->resultado()->senha); A função é a seguinte: public function fazLogin($email, $senha){ $admin = $this->adminModel->checarLogin($email, $senha); if($admin): $this->criarSessao($admin); else: URL::redirecionar('paginas/login'); endif; } Não sei porquê isso acontece, eu devo retirar a essa função e chama-la em outro lugar ????
  11. @Matheus Tavares irei postar aqui onde está o erro já que não achei nenhuma quebra de linha <?php class Url { public static function redirecionar($url){ header("Location: ".URL.DIRECTORY_SEPARATOR.$url); } } É essa classe que indica o erro, onde está esse header se caso eu colocar um @ nela o erro desaparece. Esse método é o que cria a sessão caso um cookie seja encontrado. private function criarSessaoCookie($admin){ $_SESSION['id'] = $admin->id; $_SESSION['nome'] = $admin->nome; $_SESSION['email'] = $admin->email; $_SESSION['acesso'] = $admin->acesso; setcookie('acesso', $_SESSION['acesso'], time() + (30 * 24 * 3600), "/"); URL::redirecionar('paginas/home'); }
  12. Opa galera. Então depois que eu comecei a usar cookies no meu sistema o seguinte erro está acontecendo Cannot modify header information - headers already sent by não sei exatamente o que é e preciso de ajuda. O erro ocorre quando eu verifico se a caixa "mantenha-me conectado" é marcada então eu faço uma verificação direto no index. <?php session_start(); include '../app/configuracao.php'; include '../app/autoload.php'; include '../app/Controllers/Admins.php'; $rotas = new Rota(); $db = new DataBase(); $control = new Admins(); if(isset($_COOKIE['acesso'])){ $db->query('select * from admins where acesso = :acesso'); $db->bind('acesso',$_COOKIE['acesso']); $db->resultado(); if($db->resultado()){ $control->fazLogin(isset($db->resultado()->email), isset($db->resultado()->senha)); } } ?>
  13. Sapinn

    Manter o usuário logado

    Entendi, vlw mais uma vez.
  14. Sapinn

    Manter o usuário logado

    Muito obrigado Omar~ eu consegui resolver o problema graças aos exemplos que você postou. Agora tenho algumas dúvidas de segurança. Quando o usuário vai fazer o cadastro eu automaticamente insiro um hash nele mas eu gostaria de saber se: Toda vez que eu o usuário fizer login esse hash deve ser alterado para um novo? O hash que eu estou gerendo e colocando no banco de dados é uniqid(rand()).md5(uniqid(rand(), true)).md5(microtime(true).mt_Rand()) gostaria de saber se ele é seguro ou se existe uma forma mais segura de hash. Eu li algumas coisas sobre e hash e na geração deles resolvi não usar nenhum dado do usuário como id, e-mail ou senha para evitar possíveis problemas de segurança.
  15. Sapinn

    Manter o usuário logado

    Poh cara, obrigado pela ajuda, mas infelizmente não consegui encontrar uma solução para isso já busquei em vários sites e nada, acho que vou ter que desistir de introduzir essa funcionalidade no site.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.