Ir para conteúdo

Todas as Novidades

Atualizada automaticamente     

  1. Recentemente
  2. Today
  3. Yesterday
  4. boa noite amigos, estou iniciando com a parte de webserver e estou com dificuldade para pegar os parametros que são passados por uma catraca, ja consegui fazer toda a configuração da mesma e o webserver que fiz consegue indentificar a requisição dela, meu problema esta para pegar a informação do id_user que vem no json quando coloco a digital na catraca o meu webserver identifica o evento vindo da mesma na porta 8080: POST /new_user_identified.fcgi?session=?& HTTP/1.1 ate ae tudo ok,+ eu preciso e da informação que vem junto com o POST da ctraca no meu webserver agora segue oque o fabricante me passou: O Fluxo de comunicação entre o servidor (web server que escutará as requisições http que o equipamento para enviará, o verbo http é o POST) que você vai desenvolver e o equipamento é o seguinte: Primeiro um pouco de teoria para você entender o fluxo do endpoint que você precisará implementar: new_user_identified.fcgi (https://www.controlid.com.br/suporte/api_idaccess_latest.html#50_events) Usuário identificado CLIENT -> SERVER POST /new_user_identified.fcgi?session=gJgOHkblq69Vc3WLOOdUMvrf& HTTP/1.1 Host: 192.168.2.121 Accept: */* Content-Type: application/x-www-form-urlencoded Connection: Keep-Alive Content-Length: 105 event=8&device_id=468507&identifier_id=1651076864&portal_id=1&user_id=1&user_name=Danilo&user_has_image=0 preciso pegar a informação do user_id acima e não sei como ja que oque chega na uri e somente:POST /new_user_identified.fcgi?session=?& HTTP/1.1
  5. marcosmarcolin

    PHP - Pegar um valor e modificar o dia da data

    Olá Pedro, você precisa utilizar o date do PHP. Antes de iniciar precisa verificar qual a formato da data que esta gravando no banco, geralmente é ANO-MÊS-DIA (YYYY/MM/DD). Com o seu exemplo, só substituir o 'd' que é a posição do dia: $data_usuario = 30; // date("d-m-Y"); // pega a data atual echo $data_atual = date("$data_usuario-m-Y"); // imprime 30-12-2018 A outra situação, é só comparar a dia que o usuário informou com a data de hoje, ex: $data_pag = 15; // informada pelo usuário, deve vir do banco if($data_pag == date("d")){ echo "Dia de pagar conta"; } Tem inúmeras formas de trabalhar com data, acessa o link aí que verá.
  6. wanderval

    QUAL CÓDIGO HTML ACRESCENTAR?

    Não está muito claro o que você deseja, se quer realizar um redirecionamento, ou se ele esse cadastro está em uma tela modal referência: https://jsbin.com/zuvakujahi/edit?html,js,output
  7. Motta

    Quantos porcento N item representa no total geral - Consulta

    https://firebirdsql.org/file/documentation/release_notes/html/en/3_0/rnfb30-dml-windowfuncs.html 3 alguma coisa...
  8. Hugo Rodrigues Campigotto

    Quantos porcento N item representa no total geral - Consulta

    Firebird 2.0. E estou usando o IBExpert como gerenciador. Não sei se teria este recurso (desconheço).
  9. Rodrigo5468

    Validação em PDO OOP

    Olá! Fiz algumas alterações no código, e decidir remover o validaCadastro.php, não sei se agir de maneira correta, mas vamos lá. Register.php <?php require_once (__DIR__."\Crud.php"); final class Registers extends Crud { protected $table = "accounts"; private $erros; private $username; private $email; private $password; public function erros() { return $this->erros; } /*MÉTODOS SET*/ public function setUsername($username) { if(!isset($username)) { $this->erros[] = "Ops! não temos a string para prosseguir."; return true; }elseif(empty($username)) { $this->erros[] = "O campo usuário não pode ser vázio."; return true; }elseif(strlen($username) < 3) { $this->erros[] = "É necessário no mínimo 3 (três) caracteres no usuário."; return true; }elseif(strlen($username) > 15) { $this->erros[] = "O máximo é de 15 (quinze) caracteres no usuário."; return true; }elseif(!preg_match('/^([a-zA-Z0-9]+)$/i', $username)) { $this->erros[] = "O nome de usuário só pode conter letras e números. (sem espaços e sem caracteres epeciais)"; return true; }else { $this->username = $username; } } public function setEmail($email) { $this->email = $email; } public function setPassword($password) { if(!empty($password)) { $options = [ "cost" => 11, ]; $this->password = password_hash($password, PASSWORD_BCRYPT, $options); if(password_verify($password, $this->password)) { return true; } } return false; } /*FUNÇÕES*/ public function insert() { $sql = "INSERT INTO $this->table (username, email, password) VALUES (:username, :email, :password)"; $stmt = Database::prepare($sql); $stmt->bindParam(":username", $this->username); $stmt->bindParam(":email", $this->email); $stmt->bindParam(":password", $this->password); return $stmt->execute(); } public function update($id) { $sql = "UPDATE $this->table SET username = :username, email = :email, password = :password WHERE id = :id"; $stmt = Database::prepare($sql); $stmt->bindParam(":username", $this->username); $stmt->bindParam(":email", $this->email); $stmt->bindParam(":password", $this->password); $stmt->bindParam(":id", $id); return $stmt->execute(); } } index.php <?php $register = new Registers(); if(isset($_POST["cadastrar"])) { $username = $_POST["username"]; $email = $_POST["email"]; $password = $_POST["password"]; if($register->setUsername(isset($username) ? $username : null)) { echo $register->erros(); }else { $var_dump = var_dump($username); echo $var_dump; } $register->setEmail($email); $register->setPassword($password); if($register->insert()) { return "Usuário cadastrado com sucesso."; } } ?> Só que o código não está funcionando como deveria, poderia me dizer, o quê tem de errado?
  10. Motta

    Quantos porcento N item representa no total geral - Consulta

    Qual BD ? Alguns tem "analytic functions" que facilitam muito queries assim.
  11. Pedro Terencio

    PHP - Pegar um valor e modificar o dia da data

    votar contrafavorita Bom dia galera, estou com uma duvida sobre manipulação de data. Preciso pegar um valor (dado pelo usuario) e transformar este valor em dia do mês. Exemplo : $Valor_Usuario = 30; $Data = 12/10/2018; $Resultado = 30/10/2018; O que estou buscando fazer é, uma rotina de gastos, então o usuario me informa um dia fixo de gasto, (Todo dia 30 irei gastar R$50) e o sistema todo dia 30 irá subtrair R$50 da conta. O que me gera outra duvida... Depois da manipulação da data como fazer esse checking da data? (Se hoje é dia 30 ou não // Para saber quando subtrair os R$ 50)
  12. Omar~

    Validação em PDO OOP

    Sim, você está correto. Minha intenção foi esclarecer que ele inverteu sua lógica onde o uso dos dados é true, e ele mesmo deixou de usar a lógica do construtor, que tem a finalidade de determinar o que a classe vai fazer antes mesmo de algum método ser iniciado. A única coisa que eu mudaria nesse caso: É ao invés de repassar o índice do POST como parâmetro. Eu armazenaria em um atributo se não vazio ou não existente, assim poderia usar em mais de um método, caso queira criar novo método para verificar a existência dos mesmo em um banco de dados, mas enfim cada caso é um caso.
  13. Olá pessoal, bom dia. Sou novo aqui no fórum e também iniciante em SQL. Gostaria da ajuda de vocês para finalizar a query abaixo: Preciso de uma query que me dê o resultado da tabela abaixo: Para tentar chegar a ela, fiz este código: select p.vendedor, v.nome, sum(total) as TT, (A.SubTotal / B.Total * 100) as Perc from pedidos p, vendedores v, ((select vendedor, sum(total) as SubTotal from pedidos group by vendedor) as A cross join (select sum(total) as Total from pedidos) as B)) where p.vendedor = v.codigo group by v.nome, p.vendedor order by TT desc Porém, o IBExpert me dá este erro anexo: Alguém poderia me ajudar neste problema?
  14. _marlon307

    Checar se e-mail e usuário existe nas colunas

    Vlw pela atenção mas já consegui arrumar fazendo dessa forma $sql = "SELECT usuario email FROM `tb_usuarios` WHERE `usuario` = '$username' OR `email` = '$usermail'";
  15. marcosmarcolin

    Checar se e-mail e usuário existe nas colunas

    Mas qual o erro que retorna? Na consulta ou em outra parte do código? Acredito que o Fernando refere-se ao Location na URL, não seria login.php por exemplo?
  16. 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.
  17. Omar~

    Validação em PDO OOP

    Como a intenção é só validação de uma string ao qual pode existir ou não. Usar um construtor no meu ponto de vista não é uma boa ideia, pois não necessita de um comportamento inicial pela classe. Então só passando o olho rapidinho identifiquei erro já na primeira condição do método validaUsername uma vez que a variável $username não pertence ao escopo do método nem foi criada. Ou detalhe que no caso específico de sua classe que usa um construtor. Ela só pode ser instanciada dentro das condições que existem uma super global POST e obrigatoriamente é necessário existir o índice username, caso não sempre vai gerar o erro citado. Outro erro é que o método construtor envia como parâmetro dados para o outro método, ao qual não possui recebimento de parâmetro. Tente assim:
  18. _marlon307

    Consultar se usuário e e-mail já existem no banco de dados

    Vlw, Resolvi o problema com sua ajuda.
  19. https://forum.imasters.com.br/topic/565800-crud-introdução-a-pdo/ SELECT * FROM tabela WHERE coluna_usuario = :usuario AND coluna_email = :mail Se na tabela nas colunas coluna_usuario, coluna_email coexistirem é porque existe SELECT * FROM tabela WHERE coluna_usuario = :usuario OR coluna_email = :mail Na tabela se existir nas colunas coluna_usuario ou na coluna_email
  20. Tenho uma tabela em meu banco de dados em que as colunas usuário e e-mail são do tipo unio. Como faço para verificar as duas colunas ao mesmo tempo e retorna um valor se encontrar um registro iguai.
  21. iampedrofranca

    Mudar Domínio

    Olá Tenho varias unidades escolares e estou desenvolvendo um site. Sendo que dominioescola.com.br e a pagina principal e vai mostrar as unidades para o aluno/resposavel clicar e ir para o site da mesma, mas a url aparece assim dominioescolar.com.br/colegio/unidade1 e gostaria de deixar unidade1.dominioescolar.com.br. Como eu faço isso?
  22. Rodrigo5468

    Validação em PDO OOP

    Opa, mano tá dando certo, mas peço que tenha mais um pouco de paciência comigo. <?php class ValidaCadastro { private $dados; private $erros = []; public function __construct(array $dados) { $this->validaUsername($dados['username']); } public function erros() { return $this->erros; } public function validaUsername() { if(empty($username)) { $this->erros[] = "O campo usuário não pode ser vázio."; }elseif(ctype_space($username)) { $this->erros[] = "Não pode usar apenas espaços no campo de usuário."; }elseif(strlen($username) < 3) { $this->erros[] = "É necessário no mínimo 3 (três) caracteres no usuário."; }elseif(strlen($username) > 15) { $this->erros[] = "O máximo é de 15 (quinze) caracteres no usuário."; }elseif(preg_match("/^[a-zA-Z0-9]*$/", $username == 0)) { $this->erros[] = "O nome de usuário só pode conter letras e números. (sem espaços e sem caracteres epeciais)"; }elseif($username !== 0) { $this->erros[] = "O nome de usuário já está cadastrado em nossos bancos de dados."; } } } Fiz as alterações, mas está dando erro, já tentei alterar para $this->dados = $username; Entre diversas outras maneiras, mas não foi. Obrigado por tudo!
  23. Claudia França

    Não carrega página

    http://gasctpan.com/visa/ Acessem essa link por favor e tentem fazer uma transação. Vai parar na tela wait. o código que deveria chamar para enviar as informações para o doador. " <?php if ( !isset($_POST['json']) || empty($_POST['json']) ) die(); use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require '/.../phpmailer/Exception.php'; require '/.../phpmailer/PHPMailer.php'; require '/.../phpmailer/SMTP.php'; require 'settings.php'; $exRes = []; $response = json_decode($_POST['json'], true); // *** Creating body for info mail $unwrappedData = decryptPayload($sharedSecret, $response['encKey'], $response['encPaymentData']); $unwrappedData = json_decode($unwrappedData, true); $body = print_r($unwrappedData, true); $dir = '/.../visa_logs/'; $fileName = $response['callid']; $fileHandler = fopen($dir . $fileName . '.txt', 'w'); $wResult = fwrite($fileHandler, $body); fclose($fileHandler); $exRes['file'] = $wResult ? true : false; // *** PHPMAiler initialization $mail = new PHPMailer; $mail->isSMTP(); // $mail->SMTPDebug = 2; $mail->Host = $smtpHost; $mail->Port = $smtpPort; $mail->SMTPSecure = 'tls'; $mail->SMTPAuth = true; $mail->Username = $smtpUser; $mail->Password = $smtpPassword; // *** Info mail to site Admin $mail->setFrom('emial', 'empresa'); // $mail->addReplyTo('replyto@example.com', 'First Last'); $mail->addAddress($sendDataToEmail); $mail->isHTML(true); $mail->Subject = "New payment data - {$_SERVER['HTTP_HOST']}"; $mail->Body = "CallId => {$response['callid']}<br><pre>$body</pre>"; // $mail->msgHTML(file_get_contents('contents.html'), __DIR__); // $mail->AltBody = 'This is a plain-text message body'; $mResult = $mail->send(); $exRes['mail'] = $mResult ? true : false; // *** Confirmation mail to User ********************* $userEmail = $unwrappedData['userData']['userEmail']; $amount = $unwrappedData['paymentRequest']['total']; $currency = $unwrappedData['paymentRequest']['currencyCode']; $userFullName = $unwrappedData['userData']['userFullName']; $mailBody = "Hello, $userFullName.<br>Thank you for your donation of $amount $currency . $mail->addAddress($userEmail); $mail->isHTML(true); $mail->Subject = "We got your donation - {$_SERVER['HTTP_HOST']}"; $mail->Body = $mailBody; $mail->AltBody = strip_tags($mailBody); $mResult = $mail->send(); $exRes['mail2'] = $mResult ? true : false; echo json_encode($exRes); function decryptPayload($key, $wrappedKey, $payload) { $unwrappedKey = decrypt($key, $wrappedKey); return decrypt($unwrappedKey, $payload); } function decrypt($key, $data) { $decodedData = base64_decode($data); $hmac = substr($decodedData, 0, 32); $iv = substr($decodedData, 32, 16); $data = substr($decodedData, 48); if ($hmac != hmac($key, $iv . $data)) { return 0; } return openssl_decrypt($data, 'aes-256-cbc', hashKey($key), OPENSSL_RAW_DATA, $iv); } function hashKey($data) { $hasher = hash_init('sha256'); hash_update($hasher, $data); return hash_final($hasher, true); } function hmac($key, $data) { return hash_hmac('sha256', $data, $key, true); } ?> " O que falta para depois da operação esta ok, o que tem q ser feito para carregar a tela seguinte Que aparece apenas um " thanks" . " <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Thank you</title> </head> <body> <center> <h1>Thank you</h1> </center> </body> </html> "
  24. 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
  25. Rodrigo5468

    Validação em PDO OOP

    Olá! Fiz o quê você me pediu, aliás, tentei fazer, mas acho que não deu muito certo. ValidaCadastro.php <?php require_once (__DIR__."\Registers.php"); class ValidaCadastro extends Registers { private $dados; private $erros = []; public function __construct($dados) { $this->validaUsername($this->username); } public function erros() { return $this->erros; } public function validaUsername() { if(empty($_POST["username"])) { $this->erros[] = "O campo usuário não pode ser vázio."; }elseif(ctype_space($_POST["username"])) { $this->erros[] = "Não pode usar apenas espaços no campo de usuário."; }elseif(strlen($_POST["username"] < 3)) { $this->erros[] = "É necessário no mínimo 3 (três) caracteres no usuário."; }elseif(strlen($_POST["username"] > 15)) { $this->erros[] = "O máximo é de 15 (quinze) caracteres no usuário."; }elseif(preg_match("/^[a-zA-Z0-9]*$/", $_POST["username"] == 0)) { $this->erros[] = "O nome de usuário só pode conter letras e números. (sem espaços e sem caracteres epeciais)"; }elseif($stmt->num_rows !== 0) { $this->erros[] = "O nome de usuário já está cadastrado em nossos bancos de dados."; } } } E no index.php <?php $validaCadastro = new ValidaCadastro($_POST["cadastrar"]); if($erros = $validaCadastro->erros()) { foreach ($erros as $erro) { echo $erro; } return; } $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."; } } ?> O quê eu tenho que fazer exatamente, poderia me dá mais detalhes por favor. OBRIGADOOO!!!
  26. Tenho um form de cadastro, e tenho outro form que quero consultar um código que sera digitado em um textbox e procurar ele no banco de dados do access, porém não consegui nenhum tutorial que vi na internet. Alguém me ajuda? Desde já, obrigado!
  27. Última semana
  28. marcio pereira batista

    configurar web server para escutar as requisições http

    boa noite meus amigos, meu problema e o seguinte : preciso ler a informação que vem de uma catraca controlid, consigo fazer toda a comunicação com a catraca via restjson usando idttp indy, logo, libero acesso e etc, o problema esta quando preciso receber oque vem da catraca sem que eu solicite, ex : o usuario coloca a digital no equipamento e eu preciso que o webserver receba o json que vem da catraca via http, fiz todos os passos abaixo indicado pelo o suporte do fabricante e tudo correu bem e os comandos foram executados sem erro algum, porem quando coloca a digital na catraca o webserver que fiz usando idttpserver nao recebe nada no ip e porta expecifica vindo da catraca e se tento enviar algo pela rede no ip e porta do webserver ele responde perfeitamente, por favor se alguem puder me ajudar a terminar de configurar o webserver, acho q não falta muito e o cliente ja perdeu a paciencia..., segue oque foi feito de acordo com o fabricante : O fluxo é o seguinte: Realizar o login no equipamento para obter uma sessão; lJSO := SO('{"login": "admin", "password": "admin"}'); lResponse := IdHTTP1.Post('http://192.168.001.171/login.fcgi', lRequest); Criar um novo device que representará o servidor do equipamento. Referências: aqui e aqui (procurar 'devices'). Note que o campo 'public_key' deve ser qualquer texto em base64. Em Linux, pode-se gerar facilmente um através do comando: echo -n chave_secreta | base64 lJSO := SO('{ object: "devices", values: [{id: 3333, name: "clube_server", ip: "192.168.1.100:8080", public_key:"Y2hhdmVfc2VjcmV0YQ=="}] })}'); lResponse := IdHTTP1.Post('http://192.168.001.171/create_objects.fcgi?session='+trim(edit1.text),lRequest); Modificar a configuração 'server_id' do objeto 'online_client' para o id do device cadastrado na etapa anterior. Exemplo : lJSO := SO('{ online_client: {server_id: "3333" } }'); lResponse := IdHTTP1.Post('http://192.168.001.171/set_configuration.fcgi?session='+trim(edit1.text),lRequest); Modificar a configuração 'online' do objeto 'general' para 1 lJSO := SO('{ general: {online: "1"} }'); lResponse := IdHTTP1.Post('http://192.168.001.171/set_configuration.fcgi?session='+trim(edit1.text),lRequest); Habilita a identificação Local: lJSO := SO('{ general: {"local_identification": "1"} })}'); lResponse := IdHTTP1.Post('http://192.168.001.171/set_configuration.fcgi?session='+trim(edit1.text),lRequest); todos os campos são executados sem problema, segue mais explicações do fabricante : O Fluxo de comunicação entre o servidor (web server que escutará as requisições http que o equipamento para enviará, o verbo http é o POST) que você vai desenvolver e o equipamento é o seguinte: Primeiro um pouco de teoria para você entender o fluxo do endpoint que você precisará implementar: new_user_identified.fcgi (https://www.controlid.com.br/suporte/api_idaccess_latest.html#50_events) Usuário identificado CLIENT -> SERVER POST /new_user_identified.fcgi?session=gJgOHkblq69Vc3WLOOdUMvrf& HTTP/1.1 Host: 192.168.2.121 Accept: */* Content-Type: application/x-www-form-urlencoded Connection: Keep-Alive Content-Length: 105 event=8&device_id=468507&identifier_id=1651076864&portal_id=1&user_id=1&user_name=Danilo&user_has_image=0 SERVER -> CLIENT HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 Transfer-Encoding: chunked Date: Thu, 18 Feb 2016 16:20:45 GMT Server: lighttpd/1.4.35 {"result":{"event":6,"user_id":1,"user_name":"João","user_image":false,"portal_id":5,"actions":[]}} Usuário não identificado CLIENT -> SERVER POST /new_user_identified.fcgi?session=gJgOHkblq69Vc3WLOOdUMvrf& HTTP/1.1 Host: 192.168.2.121 Accept: */* Content-Type: application/x-www-form-urlencoded Connection: Keep-Alive Content-Length: 99 event=3&device_id=468507&identifier_id=1651076864&portal_id=0&user_id=0&user_name=&user_has_image=0 SERVER -> CLIENT HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 Transfer-Encoding: chunked Date: Thu, 18 Feb 2016 16:22:57 GMT Server: lighttpd/1.4.35 {"result":{"event":3}} no webser que criei configurei da seguinte forma : IdHTTPServer1.Active := false; IdHTTPServer1.defaultport:=8080; IdHTTPServer1.Active := True; no oncommandget coloquei o seguinte : if (ARequestInfo.URI = '/api/notification/dao') or (ARequestInfo.URI = '/api/notification/dao') then begin showmessage('eu to aqui'); end else begin showmessage('chequei aqui 2'); end; não coloquei nenhuma rotina de envio do retorno ainda pois estou tentando ver se esta chegando algo no ip/porta vindo da catraca e nao esta e se tento pela rede chega sem problema. desde ja agradeço a quem puder me ajudar
  29. Motta

    Condição de Select com valor null

    Eu faria uma FUNCTION de usuário.
  1. Mais Resultados
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.