Ir para conteúdo

Gabriel Heming

Moderadores
  • Total de itens

    4192
  • Registro em

  • Última visita

  • Dias vencidos

    90

Tudo que Gabriel Heming postou

  1. Sua pergunta está bem confusa. O que você quer dizer com jogar? Os dados vem de onde (frontend, backend)?
  2. Gabriel Heming

    Como consumir uma função de consulta SELECT pdo?

    Só um ponto, o token "new" já diz que é para instanciar uma classe. Ou seja, pode usar com ou sem parênteses: $instance = new Foo(); é o mesmo que: $instance = new Foo; A obrigatoriedade dos parênteses é apenas quando quer passar algum parâmetro: $instance = new Foo($bar); Como ponto pessoal, com os parênteses fica mais fácil de ler.
  3. Gabriel Heming

    Conexão Sql Oracle

    Esse projeto é mantido pela Oracle. Última atualização foi há 2 meses
  4. Gabriel Heming

    Como consumir uma função de consulta SELECT pdo?

    Evite usar um screenshot aqui, é difícil de ler e não é possível localizar pela busca. Use a tag code para isso. Tem algumas coisas que você irá ter de resolver. A primeira, é quando você quer chamar a função de uma classe, deve usar a variável na qual a instância está salva. Logo $c = new Bancodados(); $c->Consulta(); Outra, é que você está usando as variáveis $email e $senha. Você precisa enviá-las como parâmetros para o método $c->Consulta($email, $senha); E lá no método, receber esses parâmetros function Consulta($email, $senha) { //... restante da função Outro ponto, que não é um problema, mas apenas para saber, não precisa colocar as variáveis dentro de aspas duplas, vai acabar só criando redundância: $selectionar->bindValue(":email", $email); $selectionar->bindValue(":senha", $senha); E uma recomendação, é a forma correta de autenticar um usuário: https://pt.stackoverflow.com/questions/305240/o-que-eu-devo-fazer-para-autenticara-usuario-de-maneira-correta
  5. Gabriel Heming

    Conexão Sql Oracle

    ODP.NET https://www.oracle.com/database/technologies/appdev/dotnet/odp.html
  6. Em geral, use a biblioteca Azure.Storage.Blobs. O que você deve cuidar, é que a Azure possui uma biblioteca para cada tipo de storage (FileShare, BlobStorage, etc..); Se está usando BlobStorage, Azure.Storage.Blobs Outro ponto, é que deve primeiro criar o arquivo e depois realizar o upload. Em geral, o código abaixo é a base que necessitas // conexão com o container BlobContainerClient container = new BlobContainerClient("connectionString", "containerName"); container.CreateIfNotExists(); // criação do stream em memória string json = JsonSerializer.Serialize("{JSON string}"); byte[] jsonEncoded = Encoding.UTF8.GetBytes(json); var source = new MemoryStream(jsonEncoded); // recupera o BlobClient (o arquivo em específico ainda não existe) BlobClient blob = container.GetBlobClient("file/path/json.json"); // Realiza o upload dele. await blob.UploadAsync(source, new BlobHttpHeaders() { ContentType = "application/octet-stream" });
  7. Gabriel Heming

    Atualizar valor da API automaticamente

    Somente com PHP não é possível. Você vai precisar alguma tecnologia frontend para manter uma conexão com o servidor e atualizar os dados conforme eles forem sendo alterados. No tópico abaixo, há todas as informações necessárias: https://forum.imasters.com.br/topic/566730-como-mostrar-notificação-com-base-na-data-e-hora/?tab=comments#comment-2256327 Apenas um adendo as informações. Use long polling apenas se websocket, ou outra tecnologia de push notifications/server push, não for possível.
  8. Gabriel Heming

    ASP.net Core web API

    Para rodar uma aplicação em .net, você precisa de um servidor que suporte um aplicação .NET. O mais aconselhado é publicar diretamente via Visual Studio para o servidor aonde irá rodar a sua aplicação.
  9. Gabriel Heming

    [Resolvido] Formato de Data

    DateTime::W3C, DateTime::ATOM e DateTime::RFC3339. Eu escrevi um artigo sobre isso uns anos atrás. https://gabrielheming.github.io/development/javascript/2018/10/04/php-send-datetime-to-javascript.html
  10. Gabriel Heming

    Como transpilar php em html?

    Bom, PHP não tem essa funcionalidade, tanto que a transpilação é o conceito de ler o código em uma linguagem e transformar no equivalente de outra linguagem. O PHP por si só é interpretado (as vezes compilado também), por isso não é gerado um dist. Além disso, ele roda apenas no servidor. Acredito que poderias ir na direção de um template engine, o TWIG é um exemplo. Nesse caso, o template é escrito em uma linguagem própria (em geral, é similar a quase todos os outros templates engine). Aí sim, esse pode ser compilado para PHP (eu ainda diria que é uma transpilação, mas o TWIG chada de compilação).
  11. Gabriel Heming

    Condição apresentando erro buscando dados no bd

    Você não está concatenando corretamente. Para concatenar, você deve "fechar" a string e usar ponto. Além do mais, não é necessário usar a tag PHP: echo 'string '.$variavel.' mais string';
  12. Gabriel Heming

    Evitar posts duplicados

    o reCaptcha utiliza análise de comportamento para identificar se o usuário é um bot ou não. O "Google" em si, já sabe se é um usuário"humano" acessando um site apenas pelo modo que você movimenta o mouse. O "esquema" de selecionar imagens é muito mais para ajudar o deep learning do que garantir que não é um bot. De qualquer forma, é indicado que o reCaptcha seja adicionado em todo o site para que o script possa avaliar o comportamento do usuário em todo o website. Após, você recebe uma análise de risco, e cabe a você aceitar ou não. Em geral, é seguro. Além do mais, é mais garantido que um bot consiga se passar por um humano do que um humano por um bot.
  13. Gabriel Heming

    Check box com php e msqli

    Parece que o problema está no filtro, remova os colchetes e informe que é um array. $problema = filter_input(INPUT_POST, 'checkArr', FILTER_SANITIZE_STRING, FILTER_REQUIRE_ARRAY); ou, dependendo da forma que você quiser tratar, pode forçar que o resultado seja um array. $problema = filter_input(INPUT_POST, 'checkArr', FILTER_SANITIZE_STRING, FILTER_FORCE_ARRAY);
  14. Gabriel Heming

    PHP Contagem regressiva com base na data do banco de dados

    Apesar de você estar imprimindo a data no javascript, não está tratando-a corretamente: var valueDate = '<?=$DateGET?>'; Adicione os apóstrofos, para que o javascript entenda o resultado como uma string. O que está ocorrendo, é que o código javascript está sendo interpretado da seguinte maneira: var valueData = 07/10/2020 11:57 am; Quando o correto é: var valueData = '07/10/2020 11:57 am'; Outro ponto é o formato de data, eu escrevi este artigo abaixo há um tempo atrás: https://gabrielheming.github.io/development/javascript/2018/10/04/php-send-datetime-to-javascript.html Ou até mais compacto: https://stackoverflow.com/a/40919161/1628790
  15. Gabriel Heming

    Exemplo de CIOT da e-frete em c#

    Um web service SOAP é sempre apenas uma interface. A melhor forma de entender como ele funciona, é utilizar o software SoapUI antes de qualquer desenvolvimento. Se você estiver utilizando o Visual Studio IDE (não o visual studio code), o que você deve fazer é adicionar o endereço do Web Service, como uma referência ao projeto. Assim, o Visual Studio irá gerar todas as classes necessárias para trabalhar com o serviço. Entretanto, esse serviço parecem possuir apenas login e logout. É bem provável que após a autenticação você poderá acessar outros métodos e/ou outros serviços. No link abaixo há um bom passa-a-passo de como adicionar como referência: https://stackoverflow.com/a/41496861/1628790
  16. Gabriel Heming

    Erro ao conectar no banco de dados após publicar no IIS

    Você está utilizando o Entity Framework Core, ou alguma outro framework? No Startup.cs, você precisa utilizar a configuração do appsettings.json. A connection string deve ser adicionada explicitamente na conexão. Seu Startup.cs vai ficar mais ou menos assim: using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http.Features; using Microsoft.AspNetCore.Mvc.ApplicationModels; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; public class Startup { private readonly IConfiguration configuration; public Startup(IConfiguration configuration) { this.configuration = configuration; } public void ConfigureServices(IServiceCollection services) { services.AddDbContextPool<AppDbContext>(options => { options.UseSqlServer(configuration.GetConnectionString("DefaultConnection")); }); } } Alguns detalhes: O código acima é para .NET Core usando EF Core; AppDbContext é a classe de contexto (especialização de Microsoft.EntityFrameworkCore.DbContext); É necessária a dependência do package Microsoft.EntityFrameworkCore.SqlServer. O ponto central das configurations strings, é que você poderá recuperar elas utilizando o diretamente o código abaixo: configuration.GetConnectionString("DefaultConnection") Aonde DefaultConnection é a chave que você definiu, no seu caso, pode ser uma das duas chaves que você definiu: configuration.GetConnectionString("HoleriteContext") ou configuration.GetConnectionString("prjHoleriteContextConnection")
  17. Gabriel Heming

    Substituir array por array com preg_replace

    Nenhuma pergunta é burra. Indiferente com a escolha, você terá resultados bem similares... é um problema de escopo. A palavra que você procura pode estar em diferentes locais. Início/meio/fim de frase; Antes de pontuação (. , ! ? : ;); Entre apóstrofos. etc... O mais fácil para resolver isso, seria utilizar uma marcação simples, tal qual Back in [a]Black[/a] E utilizar as marcações como delimitadores. De outra forma, seria pegar todas as situações que podem ocorrer, e tratar cada uma independentemente. Você pode começar com essa expressão regular e ir ampliando ela: ((?!\w)|[\t\n\r ])(?<word>black)(?!\w) Ela não está completa, não cobre todas as possibilidade, mas cobre a maioria delas...
  18. Gabriel Heming

    Select dentro de outro Select

    Você não precisa das duas consultas. A primeira consulta é o suficiente. // código exatamente igual até essa parte aqui $resultado->execute(); //se a consulta não localizar nada, o retorno será FALSE if ($result = $resultado->fetch(PDO::FETCH_ASSOC)) { //aqui você tomará as ações caso o usuário for localizado //agora basta usar o resultado e testar if ($result['nivel'] == 'staff') { // caso for staff } elseif ($result['nivel'] == 'operacao') { // caso for operacao } } else { //aqui será executado caso o usuário não exista então } Eu imagino que seus códigos sejam para estudos, o que é muito bom por sinal. Segue um link para você fazer um login seguro para o seu site: https://forum.imasters.com.br/topic/557686-trabalhando-com-criptografia-de-login-com-md5/?do=findComment&amp;comment=2225560
  19. Gabriel Heming

    Variável de um Array - Resultado de Um SELECT do Banco de Dados

    É bom conhecer o funcionamento do método fetch para enteder o que ele está fazendo: https://www.php.net/manual/en/pdostatement.fetch.php O método fetch tem vários parâmetros, mas o mais importante é nesse caso é o primeiro. Que pode ser um dos seguinte: PDO::FETCH_ASSOC; PDO::FETCH_BOTH; PDO::FETCH_BOUND; PDO::FETCH_CLASS; PDO::FETCH_INTO; PDO::FETCH_LAZY; PDO::FETCH_NAMED; PDO::FETCH_NUM; PDO::FETCH_OBJ; PDO::FETCH_PROPS_LATE. Não precisa se preocupar com todos, apenas com 3: PDO::FETCH_ASSOC; PDO::FETCH_BOTH; PDO::FETCH_NUM. PDO::FETCH_ASSOC retornará um array associativo, então, com a sua consulta: $sql="SELECT nome, password, nivel FROM login WHERE nome= :nome AND password= :password"; Eu posso acessar os valores de forma associativa: $result = $resultado->fetch(PDO::FETCH_ASSOC); echo $result['nome']; echo $result['password']; echo $result['nivel']; Se você quiser salvar em uma variável, basta fazer o seguinte: $nome = $result['nome']; $password = $result['password']; $nivel = $result['nivel']; Já PDO::FETCH_NUM retornará um array indexado (numérico) na ordem que são retornados pela consulta, então, com a sua consulta, o resultado seria o seguinte: $result = $resultado->fetch(PDO::FETCH_NUM); echo $result[0]; //nome echo $result[1]; //password echo $result[2]; //nivel Já o PDO::FETCH_BOTH é uma combinação das duas formas, ou seja, você pode acessar os dados da maneira que quiser (conforme os exemplos acima).
  20. Gabriel Heming

    Servidor processa 1 requisição de cada vez

    Seu problema é a sessão de usuário. O PHP só permite uma requisição por sessão. Enquanto uma sessão não for finalizada a outra fica em espera. Se o seu processo não faz uso de objetos da sessão, utilize session_write_close o "mais cedo" possível, para que outros processos possam ser iniciados em paralelo.
  21. Gabriel Heming

    Como inserir vários registros usando prepare PDO

    $query = "INSERT INTO cicero(nome, sobrenome, email , telefone, cpf) VALUES (? , ? , ? , ? , ?)"; $insert = $conn->prepare($query); foreach ($_POST as $key => $row) { $insert->bindValue(1 , $row['nome']); $insert->bindValue(2 , $row['sobrenome']); $insert->bindValue(3 , $row['email']); $insert->bindValue(4 , $row['telefone']); $insert->bindValue(5 , $row['cpf']); $insert->execute(); } Você não precisa validar o retorno do método execute se estiver utilizando exceções. Pra isso, basta adicionar o atributo abaixo: $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); O resto você faz via tratamento de exceções.
  22. Gabriel Heming

    Cadastrar data Mysql

    Isso deve calcular corretamente as 36 parcelas. <?php //dia 15 do mês corrente $start = DateTime::createFromFormat('d' , '15'); //intervalo de 1 mês $interval = new DateInterval('P1M'); //Valida se o dia 15 do mês corrente já não passou if ($start < (new DateTime())) { //adiciona 1 mês caso seja pro dia 15 do mês que vem $start->add($interval); } //Calcula os períodos, data inicial + 35 ocorrências foreach(new DatePeriod($start , $interval , 35) as $key => $date) { $i = $key +1; echo "{$i} -> {$date->format('d/m/Y')}\n"; } Pra entender um pouco mais: https://forum.imasters.com.br/topic/550659-resolvido-erro-em-dateperiod-php-encontra-2-meses-ao-invés-de-3/ https://forum.imasters.com.br/topic/535853-como-pegar-a-diferença-entre-datas/?do=findComment&amp;comment=2139989
  23. Gabriel Heming

    Trocar tabela por variável

    Eu imagino que você irá fazer uma função para isso. Em primeiro lugar, mysql_* functions não devem ser usadas há um bom tempo. Utilize no lugar mysqli. Uma função assim resolveria seu problema: function query($table) { $table = "`".str_replace("`" , "``" , $table)."`"; $query = "SELECT * FROM {$table}"; /** restante do código **/ } O trecho de código abaixo, é o suficiente para previnir problemas de SQL injection, quando o valor a ser atribuído é o nome da tabela. $table = "`".str_replace("`" , "``" , $table)."`";
  24. Gabriel Heming

    Problemas ao Acessar webservice cadsus atraves do php

    Qual o erro que ocorre? Poderia fazer usando cURL, mas ai já é reinventar a roda. Vamos resolver o erro para que você possa usar a biblioteca recomendada.
  25. Gabriel Heming

    Comparando Strings em PHP!

    Qual é o código do arquivo abaixo? bd/autenticacao.php O que é possível de verificar, é que você está tentando passar um usuário de uma página para outra e recuperá-lo. Entretanto, não está fazendo da forma correta. O redirecionamento abaixo não faz sentido nenhum: header("location:../index.php?erro=3"); Uma vez que você salva o usuário na sessão, deveria usar os dados da sessão: <?php if ($_SESSION['logado'] == 'sim') { echo 'usuário está logado'; } Você pode salvar o ID do usuário na sessão também e usuar quando necessário: //exemplo $_SESSION['user']['id'] = $row->id;
×

Informação importante

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