Pesquisar na Comunidade
Mostrando resultados para as tags ''orientaçao a objetos''.
Encontrado 3 registros
-
Boa noite, sou iniciante em orientação a objetos , estou tentando criar um menu simples para uma calculadora usando classes é me deparei com a seguinte questão,como instanciar a função a seguir ? -------------------------------------------------------- ------ (Arquivo.h) grafico.h ------------------------------------------------------------ #ifndef GRAFICO_H_INCLUDED #define GRAFICO_H_INCLUDED class grafico_imprime{ //class criada em grafico.h public: int numero_indice; //Numero do indice. void menu(int menu_indice); //Função que imprime o menu. }; #endif // GRAFICO_H_INCLUDED -------------------------------------------------------------- (Arquivo.cpp) grafico.cpp --------------------------------------------------------- #include "grafico.h" grafico_imprime::menu(int menu_indice){ //Função responsavel em imprimir o menu. switch(menu_indice){ //Switch usado para fazer a relação do 'numero_indice' é imprimir na tela a opção desejada. case 1: cout << "test 1"; break; case 2: cout << "test 2"; default: cout << "test 3"; } } ------------------------------------------------------------ (Principal.cpp) main.cpp ------------------------------------------------------------ #include <iostream> #include <stdlib.h> #include "grafico.h" // Biblioteca que conterá as Class e funções para imprimir menus,resultados etc. using namespace std; int main() { grafico_imprime menu_inicial; // Cria o objeto. cin >> menu_inicial.numero_indice; // Atribui um numero ao indice. // Duvida Aqui !!! Na chamada da função. system("pause"); return 0; } A minha ideia era criar um objeto é uma função que seria responsável em rodar a função switch que esta contida na função 'menu' sem a necessidade de escrever qualquer coisa diretamente na função principal. Ainda não entendo muito bem a lógica envolvida em OO, se alguém tiver a resolução para esse problema por favor comente a maneira que ache mas eficiente para resolver o mesmo.
-
É com muita satisfação que torno público a quem interessar o Curso de PHP que estou produzindo e publicando em meu canal no YouTube gratuitamente [canal eXcript]. O Curso de PHP está ficando bem legal e bastante completo, e mesmo quem não possui qualquer conhecimento na linguagem consegue fazê-lo, haja vista que a lógica de programação é abordada junto com a linguagem PHP. A partir de agora, quem não souber programar em PHP é porque não quis estudar PRIMEIRO EPISÓDIO https://www.youtube.com/watch?list=PLesCEcYj003TrV2MvUOnmVtMdgIp0C4Pd&v=R_yRrYUHai0 PRIMEIRA AULA DA ORIENTAÇÃO A OBJETOS https://www.youtube.com/watch?list=PLesCEcYj003TrV2MvUOnmVtMdgIp0C4Pd&v=oT7qY8nLJ6k Por fim, vou começar a publicar o material de apoio do curso em nosso site: http://www.excript.com/
-
Fiz esse código, mais não protegi contra sql injection, a pergunta é: devo proteger a gravação de dados?Ou será que posso proteger apenas login e consultas no banco de dados? essa classe grava dados de qualquer formulário, mais não consegui fazer ela protegendo o banco. tentei usar o (prepare();) mais da erros se alguém souber como fazer me ajuda aí favor. { <?php class trataDados { var $db; var $maxid; var $fetch; var $comparador; function CPDO(){ $this->db=new PDO('mysql:host=localhost;dbname=butterfly','root',''); } // esta funcão deve gravar dados de qualque formulario. //os dados pedidos dentro da função são: (nome da tabela, variavel que traz dados do formulario get ou post, parametro de comparação ex:email). //nesse caso não tem proteção contra mysql injection . function gravarDados($tabela,$dados,$param){ //primeiro fazemos a busca do campo qual queremos validare ex: se for email traz todos os email cadastrados; $buscaparam=$this->db->query("select $param from $tabela "); $parametro=$buscaparam->fetchALL(PDO::FETCH_OBJ); foreach($parametro as $paramfinal) { $this->comparador= $paramfinal->$param; }// fim foreach parametro //echo $this->comparador; //agora fazemos a validação se compador for igual ao dados do formulario a inseção e parada e traz a mensagem para que o usuario troque o nome do dado. if($this->comparador == $_POST[$param]){ echo'esse email já esta cadastrado'; } // se não da-se a continuação do cadastramento else{ //como ods dados do formulario vem como array na variavel get ou post percorremos com laço foreach. foreach( $dados as $campo => $valor){ $this->db->exec("INSERT INTO $tabela ($campo)values('$valor')");//insere o primeiro campo do formulario para criar o id do usuario; $fetch = $this->db->query("SELECT MAX(id) from $tabela"); //faz uma busca do ultimo id que foi inserido na tabela $id=$fetch->fetch(PDO::FETCH_OBJ); foreach($id as $maxid){ $this->maxid=$maxid;// recebe o ultimo id inserido na tabela; } break; // para o laço para que não seja criado um id para cada dado da variavel que traz os dados do formulario } foreach($dados as $campo => $valor){ //agora o update cuida de inserir todos os dados do formulario e fim todos os dados estao gravados; $this->db->exec("update $tabela set $campo='$valor' where id='$this->maxid'"); } }//fim do else }//fim da função gravaDados }//fim da classe $tratadados=new trataDados(); $tratadados->CPDO(); $tratadados->gravarDados('clientes',$_POST, 'email'); ?> <form action="tratadados.php" method="post"> <input type="text" name="nome"> <input type="text" name="snome"> <input type="text" name="email"> <input type="submit" value="enviar"> </form>