Jump to content

Search the Community

Showing results for tags 'oo'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Web Development
    • HTML e CSS
    • Javascript
    • PHP
    • Ruby
    • Python
    • Java
    • .NET
    • Docker, Kubernets and other environments
    • WordPress
    • Mobile
    • Agile
    • Desenvolvimento de Games
    • Banco de Dados
    • Design and UX
    • Algoritmos & Outras Tecnologias
  • Entretenimento e uso pessoal
    • Segurança & Malwares
    • Geral
    • iMasters's pub

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Found 14 results

  1. Luiz Henrique

    Problema com herança de classes

    Olá pessoas. Segue code depois explico. class Usuario { public $email; private $senha; public function alteraSenha($senha) { $this->senha = md5($senha); } } class Cliente extends Usuario { public function __construct($email = null, $senha = null) { $this->email = $email; $this->senha = ($senha); } } $cliente = new Cliente("mail@mail.com","123456"); o retorno disso é: mail@mail.com / 123456. OK Porém preciso tratar a senha e passar pela função alteraSenha e já tentei: $cliente = new Cliente("mail@mail.com"); $cliente->alterSenha('12346'); Também assim dentro da classe Cliente: public function setSenha($senha) { parent::alteraSenha($senha); } Dentro do __construct: $this->senha = alteraSenha($senha); E em todas as opções, o retorno da senha fica vazio, não dá erro mas volta vazio. A única forma de funcionar é fazendo a declaração diferente: $cliente = new Cliente(); $cliente->email = "mail@mail"; $cliente->setSenha('12356'); Dessa forma funciona, mas eu queria a declaração da outra forma para otimizar linhas. O que estou fazendo errado. Obrigado
  2. 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
  3. Iai galera beleza? Estou com um erro simples aqui como eu faço para estender minha conexão para outros arquivos ? Estou tentado fazer mas está dado um erro aqui arquivo connection.php <?php class Conexao{ public $db_name = 'pessoa'; public $host = 'localhost'; public $user = 'root'; public $pass = ''; public function __construct() { try { $pdo = new PDO("mysql:db_name=".$this->db_name.";host=".$this->host,$this->user,$this->pass); } catch (PDOException $e) { echo "Erro no banco ".$e->getMessage(); exit(); } } } arquivo Pessoa.php <?php include 'connection.php'; class Pessoa { private $pdo; public function __construct() { $this->pdo = new Conexao(); } public function buscarDados(){ $stmt = []; $sql = $this->pdo->query("SELECT * FROM pessoa order by id desc"); $stmt = $sql->fetchAll(PDO::FETCH_ASSOC); return $stmt; } } arquivo index.php <?php require_once 'models/Pessoa.php'; $p = new Pessoa(); ?> <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="assets/css/style.css"> <title>Crud PDO </title> </head> <body> <section id="esquerda"> <form action=""> <h2>Cadastrar Pessoa</h2> <label for="nome">Nome: </label> <input type="text" name="nome" id="nome"> <label for="telefone">Telefone: </label> <input type="text" name="telefone" id="telefone"> <label for="email">Email:</label> <input type="text" name="email" id="email"> <input type="submit" value="Cadastrar"> </form> </section> <section id="direita"> <?php $p->buscarDados(); ?> <table> <tr id="titulo"> <td>Nome</td> <td>Telefone</td> <td colspan="2">Email</td> </tr> <tr> <td>Maria</td> <td>00000000</td> <td>maria@gmail.com</td> <td><a href="">Editar</a> <a href="">Excluir</a></td> </tr> </table> </section> </body> </html> Erro que é apresentado: Fatal error: Uncaught Error: Call to undefined method Conexao::query()
  4. Sapinn

    Erro ao tentar chamar arquivo CSS

    Estou com dificuldade para chamar um arquivo CSS usando a configuração de um arquivo php. O bootstrap também não surte efeito na paginas Vejam só Config.php <?php define('APP_NOME','Projeto GIBI'); define('URL','http://localhost/bora_php'); index.php <?php include './../app/configuracao.php'; include './../app/Libraries/Rota.php'; include './../app/Libraries/Controller.php'; ?> <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="<?=URL?>/public/css/estilos.css"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" > <title><?= APP_NOME?></title> </head> <body> <?php $rotas = new Rota(); ?> <script src="https://code.jquery.com/jquery-3.5.1.min.js" ></script> <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" ></script> <script src="<?=URL?>/public/css/script.js" ></script> </body> </html> estilo.css html{ background-color: red; } Estou tentando seguir a padronização MVC(que por sinal eu tenho certa dificuldade), então não consigo achar onde estou errando
  5. Boa noite pessoal, sou iniciante no php e tenho uma dúvida que eu acho que pode ser bem simples para vocês que estão mais avançados do que eu. Bom, eu gostaria de saber como usar a orientação ao objeto para cadastro no banco de dados - mysql, só que eu não sei fazer da maneira orientada ao objeto e gostaria de saber. <?php class Pessoa { $nome; $sobrenome; $endereço; } gostaria de saber como usar uma classe parecida a de cima com o banco de dados Muito obrigado, toda ajuda é bem vinda
  6. LuanMartinsTI

    Existe perigo ao criar uma funcao assim

    Eu gostaria de saber se existe algum problema relacionado a seguranca criando uma funcao assim, no exemplo sempre que eu crio uma funcao pre reutilizar os dados sao passados direto na chamada da funcao dentro do php, o usuario nao insere nenhum dado, quando o usuario vai inserir dados eu nao trabalho dessa forma, entao minha duvida [e, se mesmo o parametro da funcao sendo informado dentro do php no codigo pode existir algum problema. public function contar_cadastro($tabela, $sql){ try { if($sql == null){ $this->Select = $this->Conn->prepare("SELECT * FROM $tabela"); $this->Select->execute(); return $this->Select->rowCount(); }else{ $this->Select = $this->Conn->prepare("SELECT * FROM $tabela". " " ." $sql"); $this->Select->execute(); return $this->Select->rowCount(); } } catch (PDOException $exc) { exibeMensagens($Msg, $ErrNo); } } E as chamadas das funcoes assim $cmsPDO = new CmsPDO(); $r_userStaff = $cmsPDO->contar_cadastro('usuarios', ' where cargo > 2'); $r_userVip = $cmsPDO->contar_cadastro('usuarios', ' where cargo = 2'); $r_userBan = $cmsPDO->contar_cadastro('usuarios', " where ban = '1'"); $r_usuarioPDO = $cmsPDO->contar_cadastro('usuarios', null); $r_servVip = $cmsPDO->contar_cadastro('servidores', " where vipfree = 'V'"); $r_servFree = $cmsPDO->contar_cadastro('servidores', " where vipfree = 'F'"); $r_servInat = $cmsPDO->contar_cadastro('servidores', " where verificado = '1'"); $r_servOff = $cmsPDO->contar_cadastro('servidores', " where estado = 'Off'"); $r_servOn = $cmsPDO->contar_cadastro('servidores', " where estado = 'On'"); $r_servidores = $cmsPDO->contar_cadastro('servidores', null); Eu normalmente crio as funcoes assim: public function cadastrar_usuario($usuario){ try { if($this->veriricarnick($usuario) == false){ if($this->verificiarEmail($usuario) == false){ $query = 'INSERT INTO usuarios ' . '(id, nome, senha, email, cargo, ip)' . 'value(null,:nome, :senha, :email, :cargo, :ip)'; $this->Criar = $this->Conn->prepare($query); $this->Criar->bindValue(':nome' , $usuario->getNome() , PDO::PARAM_STR); $this->Criar->bindValue(':senha' , $usuario->getSenha(), PDO::PARAM_STR); $this->Criar->bindValue(':email' , $usuario->getEmail(), PDO::PARAM_STR); $this->Criar->bindValue(':cargo' , $usuario->getCargo(), PDO::PARAM_INT); $this->Criar->bindValue(':ip' , $usuario->getIp() , PDO::PARAM_STR); $this->Criar->execute(); if($this->Criar->rowCount() == 1){ return 1; }else{ return false; } }else{ return false; } }else{ return false; } } catch (PDOException $exc) { exibeMensagens("<b> Erro ao inserir.</b> Mensagem:{$exc->getMessage()} Código: {$exc->getCode()}", WS_ERROR); } }
  7. Rodrigo5468

    Validação em PDO OOP

    Boa tarde a todos. Estou desenvolvendo um sistema de registro para fins de estudos, mas tenho algumas dúvidas e dificuldades até. Estou usando "programação orientada a objetos", e quero validar alguns campos do meu registro, se puderem me auxiliar, será de grande ajuda. Meu Diretório: Projeto1/ ├── backend/ │ ├── classes/ │ │ ├── Register.php ├── index.php Em Register.php tenho o seguinte código para fazer a validação, mas acredito que estou fazendo algo de errado. public function setUsername($username) { $sql = "SELECT * FROM $this->table WHERE username = :username"; $stmt = Database::prepare($sql); $stmt->execute(array('username' => $_POST["username"])); if(empty($_POST["username"])) { return "O campo usuário não pode ser vázio."; }elseif(ctype_space($_POST["username"])) { return "Não pode usar apenas espaços no campo de usuário."; }elseif(strlen($_POST["username"] < 3)) { return "É necessário no mínimo 3 (três) caracteres no usuário."; }elseif(strlen($_POST["username"] > 15)) { return "O máximo é de 15 (quinze) caracteres no usuário."; }elseif(preg_match("/^[a-zA-Z0-9]*$/", $_POST["username"] == 0)) { return "O nome de usuário só pode conter letras e números. (sem espaços e sem caracteres epeciais)"; }elseif($stmt->num_rows !== 0) { return "O nome de usuário já está cadastrado em nossos bancos de dados."; }else { $this->username = $username; } } E no index.php tenho o seguinte código, acredito que está certo, mas eu gostaria de mostrar as mensagens de erros que estão no Register.php, como que posso fazer isso? $register = new Registers(); if(isset($_POST["cadastrar"])) { $username = $_POST["username"]; $email = $_POST["email"]; $password = $_POST["password"]; $register->setUsername($username); $register->setEmail($email); $register->setPassword($password); if($register->insert()) { return "Usuário cadastrado com sucesso."; } } Obrigado pela atenção!
  8. rnicson

    Selecionar de acordo com usuário

    Possuo um script que seleciona Eventos de acordo com o dia,porém quero implementar uma condição que selecione de acordo com uma coluna que criei chamada user. <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Event; use MaddHatter\LaravelFullcalendar\Facades\Calendar; class EventController extends Controller { public function index() { $events = []; $data = Event::all(); if($data->count()) { foreach ($data as $key => $value) { $events[] = Calendar::event( $value->title, true, new \DateTime($value->start_date), new \DateTime($value->end_date.' +1 day'), null, // Add color and link on event [ 'color' => '#ff0000', 'url' => 'pass here url and any route', ] ); } } $calendar = Calendar::addEvents($events); return view('home', compact('calendar')); } } Minha dúvida seria onde se encaixa essa condição? where user = ...
  9. Estou com dificuldades em entender quando um determinado trecho de código deve ser repetido em mais de uma classe afim de manter a independência da mesma, pois segundo artigos que leio sobre orientação a objetos - Um Objeto (classe) deve ser independente o suficiente para ser utilizada sem dependências. - Ter apenas uma funcionalidade, desempenhando apenas o seu papel (coesão). Meu sistema é foi criado para vendas de comerciais, onde cada bloco/horário tem um preço diferente, calculado com base no preço médio + acréscimos - descontos. O objetivo (funcionalidade ou papel) da classe VendasController é retornar para View Orcamentos, informações sobre produtos e valores para realização de um orçamento e posteriormente um contrato. Para retornar essas informações eu obtenho o preço médio de cada bloco e adiciono os acréscimos em alguns métodos dentro desta classe, ela tem o funcionamento independente. Agora estou desenvolvendo outra classe que se chama DistribuicoesController, onde a sua funcionalidade é distribuir uma quantidade X de comerciais no blocos/horários disponiveis, e uma de suas opções seriam distribuir no blocos com menor custo médio. Portanto a questão aqui é: Tanto na Classe VendasController como na classe DistribuicoesController eu faço uso de preço médio dos blocos. Qual seria o mais correto: eu repetir o código nas duas classes, fazer tudo dentro de uma unica classe, criar uma "super classe" e usa-la estendida dentro das classes VendasController e DistribuicoesController.
  10. gust.php

    PHP OO Duvidas

    Olá galera... Acho que o meu problema é mais relacionado a OO que PHP.... Eu tenho a seguinte estrutura: Motorista, Veiculo e uma terceira tabela MOTORISTA_VEICULO que faz o relacionamento das 2 classes. Acredito que esta seja a maneira correta, pois nem todo motorista tem um carro relacionado. Meu problema esta aqui: Quando quero pegar uma informação do carro pelo motorista eu consigo: $motorista->getVeiculo()->getPlaca(); // OK, tenho a placa do carro Agora, se eu quiser pegar alguma informação do carro pelo motorista não funciona: $veiculo->getMotorista()->getNome(); // Fatal error: Call to undefined method Doctrine\ORM\PersistentCollection::getNome() in Minhas classe: MOTORISTA /** * @ORM\ManyToMany(targetEntity="Veiculo", cascade={"merge"}) * @ORM\JoinTable(name="MOTORISTA_VEICULO", * joinColumns={@ORM\JoinColumn(name="MOTO_IDMOTORISTA", referencedColumnName="IDMOTORISTA")}, * inverseJoinColumns={@ORM\JoinColumn(name="MOTO_IDVEICULO", referencedColumnName="IDCAR", unique=true)} * ) */ private $veiculo; public function __construct() { parent::__construct(); $this->veiculo = new \Doctrine\Common\Collections\ArrayCollection(); } function getVeiculo() { return $this->veiculo; } function setVeiculo($veiculo) { $this->veiculo[] = $veiculo; } VEICULO ** * * @ORM\ManyToMany(targetEntity="Motorista", mappedBy="veiculo") */ private $motorista; function getMotorista() { return $this->motorista; } function setMotorista($motorista) { $this->motorista = $motorista; } public function __construct() { $this->motorista = new \Doctrine\Common\Collections\ArrayCollection(); }
  11. Rodrigo5468

    Verificar campos e DB

    Olá, Estou fazendo um sistema de cadastro em PDO OO. Cadastro.php public function insert() { if(isset($usuario) && isset($nomesobrenome) && isset($email) && isset($senha)) { if(empty($usuario) OR empty($nomesobrenome) OR empty($email) OR empty($senha)) { echo 'Existe campos vazios.</div>'; } }else { $verifica = DB::prepare("SELECT * FROM {$this->table} WHERE usuario=:usuario OR nomesobrenome=:nomesobrenome OR email=:email"); $verifica->bindValue(':usuario',$this->usuario,PDO::PARAM_STR); $verifica->bindValue(':nomesobrenome',$this->nomesobrenome,PDO::PARAM_STR); $verifica->bindValue(':email',$this->email,PDO::PARAM_STR); $verifica->execute(); if($verifica->rowCount() == 0) { $sql = "INSERT INTO $this->table (usuario, nomesobrenome, email, senha) VALUES (:usuario, :nomesobrenome, :email, :senha)"; $stmt = DB::prepare($sql); $stmt->bindParam(':usuario', $this->usuario); $stmt->bindParam(':nomesobrenome', $this->nomesobrenome); $stmt->bindParam(':email', $this->email); $stmt->bindParam(':senha', $this->senha); return $stmt->execute(); }else { return false; } } } register.php <?php $usuarios = new Usuarios(); if(isset($_POST['cadastrar'])) { $usuario = $_POST['usuario']; $nomesobrenome = $_POST['nomesobrenome']; $email = $_POST['email']; $senha = $_POST['senha']; $usuarios->setUsuario($usuario); $usuarios->setNomesobrenome($nomesobrenome); $usuarios->setEmail($email); $usuarios->setSenha($senha); #Insert if($usuarios->insert()) { echo 'Conta registrada com sucesso! Você deverá confirmar a conta em seu endereço de e-mail.</div>'; } } ?> Quando eu registro a conta aparece a seguinte frase "Conta registrada com sucesso! Você deverá confirmar a conta em seu endereço de e-mail.". Mas já existe um cadastro no banco de dados não aparece nenhum erro, informando que já existe o usuário, o nome e sobrenome ou o e-mail. E quando existe campos vazios o script cadastra a conta do mesmo jeito. O que preciso mudar para corrigir o meu código? Obrigado desde já.
  12. Johnny Saymon

    Obtenção de objetos grandes já persistidos

    Olá! Cenário: Tenho uma classe NotaFiscal que tem um relacionamento com vários outros objetos, como Cliente, Fornecedor, Produtos e etc, sendo que estes objetos ligados diretamente ainda tem seus relacionamentos com outros objetos. Objetivo: Apresentar uma lista de notas fiscais quem contém poucos dados, como número da nota, nome do cliente e valor total. Dúvida: Recuperar o objeto NotaFiscal e todas as suas relações em um banco de dados, por exemplo, não seria um grande problema de desempenho, visto que preciso de poucos dados? Me parece um erro obter apenas as notas sem suas relações e um exagero obter tudo.
  13. Boa tarde! Desculpe, caso seja um tema básico, pois estou entrando no mundo do PHP OO agora. Criei uma classe que teria umas quantidade grande de atributos e com os gets e sets, o netbeans começou alertar que a classe deveria ter no máximo 200 linha. Em uma consulta com o objetivo de diminuir, encontrei os métodos __get e __set e surgiu algumas dúvidas: Apesar de ter toda a estrutura, isto seria mesmo Orientação a Objeto? Não seria o mesmo que tornar os atributos publico, uma vez que você chama "$classe->atributo"? O melhor caminho não seria, refatorar a classe em classes menores ou esta é um boa pratica de programação? O que acontece com os recursos de autocompletar, tem com ativá-los? Obrigado.
  14. Rodrigo5468

    Validação

    Olá, boa noite à todos! Estou tendo algumas dificuldades em achar a melhor forma possível de validar um formulário, um cadastro... Irei deixar aqui logo abaixo o exemplo de como estou usando em teste, está funcionando mas não tenho certeza se é o método certo. <?php public function insert() { if(isset($usuario) && isset($nomesobrenome) && isset($email) && isset($senha)) { if(empty($usuario) OR empty($nomesobrenome) OR empty($email) OR empty($senha)) { echo 'Há campos vazios.'; } }else { $verifica = DB::prepare("SELECT * FROM {$this->table} WHERE usuario=:usuario OR nomesobrenome=:nomesobrenome OR email=:email"); $verifica->bindValue(':usuario',$this->usuario,PDO::PARAM_STR); $verifica->bindValue(':nomesobrenome',$this->nomesobrenome,PDO::PARAM_STR); $verifica->bindValue(':email',$this->email,PDO::PARAM_STR); $verifica->execute(); if($verifica->rowCount() == 0) { $sql = "INSERT INTO $this->table (usuario, nomesobrenome, email, senha) VALUES (:usuario, :nomesobrenome, :email, :senha)"; $stmt = DB::prepare($sql); $stmt->bindParam(':usuario', $this->usuario); $stmt->bindParam(':nomesobrenome', $this->nomesobrenome); $stmt->bindParam(':email', $this->email); $stmt->bindParam(':senha', $this->senha); return $stmt->execute(); }else { return false; } } } Estou estudando OO e PDO. Neste formulário existe 4 campos e, um adicional que é os termos, um checkbox. Eu quero verificar os seguintes campos. Usuário, Nome, E-mail Se não existir dados iguais em cada campo ele concede a permissão para enviar ao banco de dados, se não o script mostra os erros na tela do usuário. Li alguns artigos no Google, encontrei um que entendi melhor, ele pediu para criar uma variável. //Cria uma variável que terá os dados do erro $erro = false; //Verifica se o POST tem algum valor if(!isset($_POST) || empty($_POST )) { $erro = 'Nada foi postado.'; } //Cria as variáveis dinamicamente foreach($_POST as $chave => $valor) { //Remove todas as tags HTML //Remove os espaços em branco do valor $$chave = trim(strip_tags($valor)); //Verifica se tem algum valor nulo if(empty($valor)) { $erro = 'Existem campos em branco.'; } } //Verifica se $email realmente existe e se é um email. //Também verifica se não existe nenhum erro anterior if((!isset($email) || !filter_var($email, FILTER_VALIDATE_EMAIL)) && !$erro) { $erro = 'Envie um email válido.'; } //Se existir algum erro, mostra o erro if($erro) { echo $erro; }else{ //Se a variável erro continuar com valor falso //Você pode fazer o que preferir aqui, por exemplo, //enviar para a base de dados, ou enviar um email //Tanto faz. Vou apenas exibir os dados na tela. echo "<h1>Veja os dados enviados</h1>"; foreach($_POST as $chave => $valor) { echo '<b>' . $chave . '</b>: ' . $valor . '<br><br>'; } } A partir disso eu preciso criar os famosos "if", até aí tudo bem, mas como eu coloco no meu script? Fiz algumas tentativas e não conseguir. Poderiam me auxiliar neste assunto?
×

Important Information

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