Jump to content

Gabriel Heming

Moderadores
  • Content count

    4171
  • Joined

  • Last visited

  • Days Won

    90

Gabriel Heming last won the day on July 2 2018

Gabriel Heming had the most liked content!

Community Reputation

766 Incrível

About Gabriel Heming

  • Rank
    Especialista em Desenvolvimento de Software
  • Birthday 05/05/1989

Informações Pessoais

  • Sexo
    Masculino
  • Interesses
    PHP, C#/.NET, Microsoft Dynamics AX, JavaScript, Java, OOP, Padrões de Arquiteturas e de Projeto, Engenharia de Software.

Contato

  • Site Pessoal
    https://gabrielheming.github.io/

Recent Profile Visitors

46746 profile views
  1. 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...
  2. 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
  3. É 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).
  4. 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.
  5. 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.
  6. 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
  7. 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)."`";
  8. 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.
  9. 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;
  10. Gabriel Heming

    Função fopen() fica rindo de mim e não funciona!

    O primeiro warning é o que gera os demais problemas. Basicamente o script não localiza o arquivo. Valide o path que está sendo utilizado. Lembrando que Linux é case sensitive.
  11. Gabriel Heming

    Função fopen() fica rindo de mim e não funciona!

    Você deve dar permissão ao usuário apache de leitura e escrita na pasta do seu projeto. Quando você executa vai terminal, o usuário que está executando é o seu. Via browser, é o servidor, que é apache.
  12. Gabriel Heming

    Problemas ao Acessar webservice cadsus atraves do php

    Já testou consumir o WS via SoapUI? Utilize a biblioteca SOAP do PHP e não nusoap.
  13. Gabriel Heming

    Comparando Strings em PHP!

    Qual é o valor que está usando como entrada? A variável $_GET['erro'] está correta? Não deveria ser algo como $_GET['id']?. Faça o seguinte, adicione o seguinte código no início do seu script, e nos mostre o resultado: var_dump($_GET); Além disso, nos informe os dados da tabela do banco de dados, para podermos avaliar o seu código.
  14. Gabriel Heming

    Problema ao passar valor da api dos correios para api do pagseguro

    Parece que você está usando uma forma bem antiga de checkout. Eu recomendo utilizar esta: https://dev.pagseguro.uol.com.br/docs/bibliotecas-php-checkout-redirecionamento
  15. Gabriel Heming

    PHP buscar dados em outra aba do navegador

    Não é possível. Em primeiro lugar, o PHP roda no servidor. O que você recebe no navegador é tudo o que o PHP já processou e enviou como resultado. A linguagem que roda no browser é JavaScript. Em segundo lugar, mesmo com JavaScript, não é possível acessar o conteúdo de outras abas, isso é uma questão de segurança. Se for o mesmo sistema, faça um script para utilizar um cadastro pré-existente e criar o novo cadastro. Se forem sistemas diferentes, bom, faça um arquivo de exportação, para ser importado no outro sistema. No segundo cenário, também é possível usar uma API e a funcionalidade seria semelhante a primeira.
×

Important Information

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