Jump to content

EdCesar

Members
  • Content count

    345
  • Joined

  • Last visited

  • Days Won

    17

EdCesar last won the day on December 29 2017

EdCesar had the most liked content!

Community Reputation

124 Muito Bom

6 Followers

About EdCesar

Informações Pessoais

  • Sexo
    Masculino

Recent Profile Visitors

1424 profile views
  1. EdCesar

    Listar dados de JSON com PHP e Curl

    @juninhogpe, beleza! Faça o seguinte teste: <?php $output= '{"odata.metadata":"http:\/\/ip:porta\/api\/sistema\/$metadata#sistema_interno.sistema_interno_cond_pgto_lista","odata.count":2,"value":[{"cond_pgto":466,"codigo":"000","descricao":"DINHEIRO","taxa":null,"tipo_operacao":"A","desconto":0,"tipo_pgto":0},{"condicoes_pgto":820,"codigo":"002","descricao":"MISTA","taxa":null,"tipo_operacao":"A","desconto":null,"tipo_pgto":10}]}'; $listas = json_decode($output, true); foreach ($listas['value'] as $lista) { echo $lista['codigo']; echo "<br>"; } /* Saida: 000 002 */ A sua iteração esta correta, verifique o valor da variável $output!
  2. EdCesar

    Problemas com PHP

    @douglas79, beleza! Desconsidere as mensagens Undefined index:... Se você acessar a pagina do script direto, esta correto em dar esse erro, pois você não esta mais enviando os dados, do post, do formulário. O erro esta no botão Pesquisar faça a seguinte alteração: Acrescente um type <input type="submit" name="submit" type="button" value="Pesquisar"> Ou mude para um botão <button name="submit">Pesquisar</button>
  3. EdCesar

    Validar e-mail com preg_match()

    Pessoal, beleza! @Dr. Programador, o FILTER_VALIDATE_EMAIL não verifica apenas se existe o arroba. De acordo com a especificação, # e % são caracteres validos, para um email. Se o provedor x,y,z não permite que se utilize, ai é outra historia. A especificação sobre o formato de um email, esta na RFC 5322 https://www.ietf.org/rfc/rfc5322.txt Este wiki é bom: https://en.wikipedia.org/wiki/Email_address#Local-part Resumo: O formato de um email é local-part@domain onde o local-parte pode ter até 64 caracteres e o domínio pode ter no máximo 255 caracteres O local-parte pode usar qualquer um desses caracteres ASCII : maiúsculas e minúsculas latino letras Apara Ze apara z; dígitos 0 para 9; caracteres imprimíveis diferentes de letras e algarismos !#$%&'*+-/=?^_`{|}~; ponto ., desde que não seja o primeiro ou último caractere, a menos que seja citado, e desde que não apareça consecutivamente, a menos que seja citado (por exemplo, John..Doe@example.com não é permitido, mas "John..Doe"@example.comé permitido); Exemplos de regex que respeite a RFC 5322 você pode encontrar aqui https://emailregex.com/ Fazendo alguns testes básicos com FILTER_VALIDATE_EMAIL, ele fez as seguintes validações: t..este@test.com // invalido .este@test.com // invalido t.este@test.com // valido #este@test.com // valido %este@test.com // valido O que esta ok, de acordo com a especificação. Se você vai validar emails de provedores específicos, que não permitem caracteres como "#$%&'", então não deveria usar o FILTER_VALIDATE_EMAIL, a questão que estou levantando, é que o PHP tenta validar os emails, com base na especificação. Não sei até que ponto essa validação nativa do PHP, respeita a RFC, se 100% ou menos. Se alguém já investigou isso, por favor, comente ai!
  4. @antonio_milat, beleza! De olho, não vejo nada de errado. É bobeira, mas não custa nada perguntar, quando você diz que o listener esta chamando duas vezes, nos logs fica: 1. Disparado uma vez Chamado duas vezes Chamado duas vezes também ou 2. Disparado uma vez Chamado duas vezes Chamado duas vezes também Chamado duas vezes Chamado duas vezes também Porque no primeiro caso, estaria certo. Ele foi chamado apenas uma vez, pois o construtor sempre sera executado junto e antes do handle
  5. EdCesar

    Nível de acesso

    @odenilson marques, beleza! Tem muitas formas de fazer esse tratamento, e muitas bibliotecas prontas, mas é provável que você não precise de nada "sofisticado". Uma forma muito simples de resolver isso, é: Quando o usuário logar, você armazena o perfil dele na sessão Crie um arquivo, permissao.php, que contenha uma função para validar as permissões: function permissao($permissoes, $usuario) { $temPermissao = in_array($usuario, $permissoes); if (!$temPermissao) { die('você não tem permissão para acessar essa pagina'); } } E inclua ela em todas as paginas, em que você quer controlar, e então chama essa função, passando quem ter permissão e a sessão do usuário que esta logado: require_once 'permissao.php'; permissao(['supervisor', 'gerente'], $_SESSAO['usuario_perfil']); Simples assim!
  6. EdCesar

    Validar e-mail com preg_match()

    @Dr. Programador, joia! O PHP já tem uma função que faz essa validação: if (filter_var($email, FILTER_VALIDATE_EMAIL)) { return true; } return false;
  7. EdCesar

    Iniciantes devem usar framework?

    @Wesley Balestrini, beleza! Eu entendo que um framework pode acelerar ou atrapalhar sua aprendizagem. Se você for curioso, e procurar entender como as ferramentas fazem suas "magicas", assim como tentar reproduzi-las, ira te ajudar e muito! Caso contrario, pode acelerar o seu trabalho, a aprendizagem não.
  8. EdCesar

    Erro de Sintaxe no Código PHP

    @Walinton, joia! Se não me falha a memória, desde a versão do PHP 5.3, é emitido um aviso que o recurso =& new foi descontinuado, e desde a versão 7.0 ira retornar esse Parse error. Então, ou você refatora $objeto =& new Class para $objeto = new Class, e o que mais for necessário, ou faz um downgrade da sua versão do PHP.
  9. EdCesar

    Utiliza mesma pasta no servidor para vários dominios.

    @Philippe Luis, beleza! Se entendi a pergunta, é só isso mesmo, basta os diferentes dominios apontar para o mesmo servidor, e pronto. Mas dependendo da quantidade de clientes e acessos, o ideal seria cada cliente ter a sua própria aplicação em seu próprio ambiente, cada um em uma VPS, por exemplo.
  10. EdCesar

    Categorias Separadas por ,

    @Marcos_imasters, beleza! Se entendi, Isso deve lhe ajudar: WHERE CONCAT(",", categoria, ",") REGEXP ",(1)," Para mais campos, basta acrescentar | no REGEXP REGEXP ",(1|2|5),"
  11. EdCesar

    Validação em PDO OOP

    @Omar~, beleza! Neste caso, instanciar a classe, vazia, abriria margens para falsos positivos, por exemplo: $validaCadastro = new ValidaCadastro(); echo $validaCadastro->erros(); // Sem erros Eu passei pela validação, sem passar os dados. Isso não deveria ser possível! Alem do mais, para essa regra, os campos nome, email e senha são obrigatórios para validar o cadastrado, nenhum é opcional. Mas o seu comentário só acrescenta, pois esse mesmo racional que você colocou sobre o construtor, muita gente tem.
  12. EdCesar

    Validação em PDO OOP

    @Rodrigo5468, só alguns ajustes... // Aqui eu me confundi, no construtor, vai $_POST, e não $_POST['cadastrar'] $validaCadastro = new ValidaCadastro($_POST); // E aqui fica assim mesmo public function __construct($dados) { $this->validaUsername($dados['username']); } // E no metodo, não precisa mais usar o $_POST, use o $userName public function validaUsername($userName) { if(empty($userName)) { $this->erros[] = "O campo usuário não pode ser vázio."; } // // } class ValidaCadastro extends Registers E ValidaCadastro não herda de Registers
  13. EdCesar

    Validação em PDO OOP

    @Rodrigo5468, joia! Existem muitas formas de fazer, a refatoração não tem limites! Uma boa prática, seria você ter suas validações isoladas, e os métodos realmente fazerem o que dizem que fazem, por exemplo: Eu espero que o método setName apenas sete o nome, e nada mais! Segue uma ideia: class ValidaCadastro { private $erros = []; public function __construct(array $dados) { $this->validaNome($dados['nome']); $this->validaEmail($dados['email']); $this->validaSenha($dados['senha']) } public function erros() { return $this->erros; } public function validaNome($nome) { /** * se o nome estiver vazio */ $this->erros[] = 'O campo usuário não pode ser vázio.'; /** * se o nome tiver menos que três letras */ $this->erros[] = 'É necessário no mínimo 3 (três) caracteres no usuário'; } public function validaEmail() { // } public function validaSenha() { // } } $validaCadastro = new ValidaCadastro($_POST) if ($erros = $validaCadastro->erros()) { foreach ($erros as $erro) { echo $erro; } return; } $register = new Registers(); $register->setUsername($username); $register->setEmail($email); // etc...
  14. EdCesar

    Uso de interface no php

    @Gabriel Heming, joia! Eu tentei dar um +1 no seu comentário, porem retorna o erro: "Sorry, there was a problem reacting to this content". Testei com o Chrome 68.0.3440.106 (Versão oficial) 64 bits e Firefox 61.0.1 (64-bit) .deb Já tinha reportado esse problema, há 5 dias, para o Admin, em https://forum.imasters.com.br/staff/ mas não sei se esse canal esta ativo?
  15. EdCesar

    [Validar] Evitar Cadastro de Dados Duplicados

    @Erick Cerqueira, joia! Existe varias formas de fazer esse tratamento, mas de uma forma muito simples, basta você definir o campo email como unique no banco de dados, dessa forma, caso o email já esteja cadastrado, não ocorrera um novo cadastro. ALTER TABLE usuarios ADD UNIQUE (email);
×

Important Information

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