Jump to content

POWERED BY:

Gabriel Heming

Moderadores
  • Content count

    4192
  • Joined

  • Last visited

  • Days Won

    90

Posts posted by Gabriel Heming


  1. 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.


  2. 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


  3. 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" });

     


  4. 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.

     


  5. 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.


  6. 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).


  7. 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.


  8. 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);

  9. 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


  10. 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")

     

×

Important Information

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