Ir para conteúdo
Rasp

mysqli statement + select view

Recommended Posts

Prezados,

 

Fiz em ambiente local (xampp) uma tela de login simples e está funcionando perfeitamente, sem apresentar qualquer erro, porém, ao subir para meu servidor web (ambos rodam PHP 7.1), o sistema de login não funciona, só gera a mensagem de erro de login e senha. Após verificar os possíveis erros, identifiquei que a consulta SQL não está funcionando, porém, no PHPmyAdmin funciona normalmente (no servidor web), estou usando uma view, mas não encontrei nada que tivesse o mesmo problema que estou passando.

 

Segue código:

 

if($sql = $mysqli->prepare("SELECT * FROM `vw_login` WHERE `login` = ? LIMIT 1")) {
	$sql->bind_param("s", $frmlogin);
	$sql->execute();
	$sql->bind_result($id, $nome, $hash);

	if($sql->fetch() AND Bcrypt::check($frmsenha, $hash)) {
		...
		header('Location: /');
	} else {
		session_destroy();
		$retorno = "Login ou senha incorretos.";
	}

	$sql->close();
}

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 22/05/2018 at 10:52, Rasp disse:

Prezados,

 

Fiz em ambiente local (xampp) uma tela de login simples e está funcionando perfeitamente, sem apresentar qualquer erro, porém, ao subir para meu servidor web (ambos rodam PHP 7.1), o sistema de login não funciona, só gera a mensagem de erro de login e senha. Após verificar os possíveis erros, identifiquei que a consulta SQL não está funcionando, porém, no PHPmyAdmin funciona normalmente (no servidor web), estou usando uma view, mas não encontrei nada que tivesse o mesmo problema que estou passando.

 

Segue código:

 


if($sql = $mysqli->prepare("SELECT * FROM `vw_login` WHERE `login` = ? LIMIT 1")) {
	$sql->bind_param("s", $frmlogin);
	$sql->execute();
	$sql->bind_result($id, $nome, $hash);

	if($sql->fetch() AND Bcrypt::check($frmsenha, $hash)) {
		...
		header('Location: /');
	} else {
		session_destroy();
		$retorno = "Login ou senha incorretos.";
	}

	$sql->close();
}

Obrigado!

 

vw é uma view? se sim você colocou ela em seu servidor para efetuar a busca?

Compartilhar este post


Link para o post
Compartilhar em outros sites
4 horas atrás, igu disse:

 

vw é uma view? se sim você colocou ela em seu servidor para efetuar a busca?

 

Sim, como eu disse, migrei do xampp local para um servidor web, dentro do PHPMyAdmin ela roda perfeitamente, mas o statements mysqli do php não executa, porém, no xampp roda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Porque não tenta usar PDO?

Caso não conheça veja isso: https://forum.imasters.com.br/topic/565800-crud-introdução-a-pdo/

 

$sql = $obj_de_conexao->prepare("SELECT * FROM vw_login WHERE login = :datalogin");
$sql->execute([':datalogin' => $frmsenha);
if ($sql->rowCount()) {
    echo "Existe";
} else {
    echo "Não existe";
}
  • Está usando encriptação de senha? Pesquise pelo login ou mail se existirem traga os dados do usuário, e depois compare a senha. Porque se pesquisar do seu jeito, como vai logar um usuário se pode existir mais de uma senha igual no banco?

 

  • Gostei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então @Omar~

 

Tudo já está desenvolvido para mysqli, não queria ter de misturar ou refazer tudo antes de ao menos conseguir entender se isso é um problema da biblioteca mysqli ou algum erro meu. Com relação ao meu login, ele funciona exatamente do jeito que você mencionou!  Eu só comparo a senha através da classe Bcrypt após ter retorno. Com relação a senha, utlizando Bcrypt nunca terá uma senha igual, pois é incluído um salt ao gerar o hash (https://secure.php.net/manual/pt_BR/function.crypt.php)

 

Obrigado por ter respondido! Estou sendo obrigado a colocar "UP" diariamente para ver se alguém pode me ajudar, ao invés disso, tem alguém que não tem conhecimento pelo jeito e vem negativar o comentário. Brasileiros...

 

Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 27/05/2018 at 12:47, Rasp disse:

Então @Omar~

 

Tudo já está desenvolvido para mysqli, não queria ter de misturar ou refazer tudo antes de ao menos conseguir entender se isso é um problema da biblioteca mysqli ou algum erro meu. Com relação ao meu login, ele funciona exatamente do jeito que você mencionou!  Eu só comparo a senha através da classe Bcrypt após ter retorno. Com relação a senha, utlizando Bcrypt nunca terá uma senha igual, pois é incluído um salt ao gerar o hash (https://secure.php.net/manual/pt_BR/function.crypt.php)

 

Obrigado por ter respondido! Estou sendo obrigado a colocar "UP" diariamente para ver se alguém pode me ajudar, ao invés disso, tem alguém que não tem conhecimento pelo jeito e vem negativar o comentário. Brasileiros...

 

Abraço!

 

Olá tudo bem? Conseguiu descobrir o erro?? Estou com o mesmo problema. Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Claudia França
      Pessoal estou com um problema para homologar um pagamento service.
       o resultado do Status deve ser sucessfull.
      Parte do codido do index.
      "

          $('#payButton').one('click', function(){
              var amount = $('input[name=amount]').val();
              var currency = $('[name=currency]').val();
              console.log(amount, currency);
              V.init( {
                  apikey: '<?php echo $visaApiKey ?>',
                  settings: {
                      //logoUrl: 'https://www.novachance.org.br/wp-content/uploads/2018/06/xLogo_INC.jpg.pagespeed.ic.QrM-Azm3n5.jpg',
                      locale: 'en_US',
                      displayName: 'Viva a Musica',
                      websiteUrl: 'https://www.vivaamusica.org.br',
                      customerSupportUrl: 'https://www.vivaamusica.org.br/contato',
                      dataLevel: 'FULL'
                  },
                  paymentRequest: {
                      currencyCode: currency,
                      total: amount,
                      merchantRequestId: 'you can send any value to API ang get it in callback',
                      orderId: 'you can send any value to API ang get it in callback',
                      description: 'any order description if needs'
                  }
              });
                V.on('payment.success', function(payment) {
                  console.log('Visa success:', JSON.stringify(payment));
                  $('#succesOverlay').show();
                  $.ajax({
                      type: 'POST',
                      url: 'mailer.php',
                      data: {json: JSON.stringify(payment)},
                      dataType: 'json',
                      success: function(data){
                        console.log('Ajax success');
                        console.log(data);
                        location = 'thanks.php';
                      },
                      error: function(jqXHR, textStatus, errorThrown) {
                        console.log('Ajax error:');
                        console.log(textStatus, errorThrown);
                      }
                  });
              });
              V.on('payment.cancel', function(payment){
                  console.log('Canceled:', payment);
              });
              V.on('payment.error', function(payment, error){
                  console.log('Visa error:', payment, error);
              });
              $('.v-button').click();
          })
       
      "
       Chamada Json
       
      "
      "Customer": {
              "Name": "[$userFullName]"
          },
          "Payment": {
              "ServiceTaxAmount": 0,
              "Installments": 1,
              "Interest": 0,
              "Capture": false,
              "Authenticate": false,
              "Recurrent": false,
              "CreditCard": {
                  "CardNumber": "453211******1521",
                  "Holder": "Gama Gama",
                  "ExpirationDate": "08/2020",
                  "SaveCard": false,
                  "Brand": "Visa"
              },
              "Tid": "0319040817883",
              "ProofOfSale": "817883",
              "AuthorizationCode": "027795",
              "Wallet": {
                  "Type": "VisaCheckout",
                  "WalletKey": "1140814777695873901",
                  "Eci": 0
                  },
              
              "SoftDescriptor": "123456789ABCD",
              "Amount": 100,
              "ReceivedDate": "2018-03-19 16:08:16",
              "Status": "eventStatus",
              "IsSplitted": false,
              "ReturnMessage": "Operation Successful",
              "ReturnCode": "4",
              "PaymentId": "e57b09eb-475b-44b6-ac71-01b9b82f2491",
              "Type": "CreditCard",
              "Currency": "BRL","en_US",
              "Country": "BRA","USA",
              
              
          
      "updateInfo":  {
               "payInfo": {
               "reason": "Pagamento","Payment",
               "avsResponseCode": "Y",
               "Amount": 91.00,
               "currencyCode": "USD",
               "eventStatus": "Success",
               "eventType": "Authorize",
               "PaymentId": "e57b09eb-475b-44b6-ac71-01b9b82f2491",
              
               }
      }
           
            }
      }
      {
       
       
      "
       
       
      O pessoal da empresa me fala que tenho que enviar o CallID gerado ( não sei como faço isso) e fazer a chamado do alteração de evento quando a transação for sucesso.
       
      Pensei em criar um aquivo payment.php mas pelo que li no manual necessariamente, não eh necessário.
       
    • Por edison.silva
      Pessoal, alguem tem algum exemplo em php de geração do arquivo .TXT2 da NFe ou MDFe e o envio para API de rotas dele?
    • Por eduuh1524
      Olá.
      Boa noite a todos,eu preciso de uma ajuda.
      Eu tenho um projeto em PHP e MySQL
      Tem uma database chamada easy e a uma tabela chamada usuários
      E dentro da tabela tem usuário,senha, saldo
       
      Bem.
      Eu tenho um random resultados em duas form na (resultados.php)eu queria fazer que quando a pessoa clicasse no botão Gerar usasse o saldo e gerasse o resultado.
      Exemplo,a pessoa já começa com 1000 de saldo e o botão diminui esse saldo em 100 e quando esse saldo chegasse em 0 se tentasse usar dá um erro de saldo insuficiente.
      Como posso fazer isso?
      Dei uma olhada em uns artigos aqui mas estou meio confuso,sou iniciante em PHP mas tenho uma noçãozinha .
      Boa noite a todos.
       
    • Por rd111072
      Olá, moçada!

      Tenho esse gráfico aqui: http://riocir.com.br/renan/chart_barg_g2.php 
      Mas ele exibe só os dias da semana do mês 1. Queria que ele exibisse todos os dias de todos os meses (como é o resultado do echo).

      Segue o código. Alguém pode me ajudar?
       
       
    • Por capaldi
      <?php
      if(isset($_GET['deletar']) && $_GET['deletar'] == 'sim'):
          $id_produto = (int)$_GET['produto'];
          $pegar_dados_produto = BD::conn()->prepare("SELECT img_padrao FROM loja_produtos WHERE id = ?");
          $pegar_dados_produto->execute(array($idProduto));
          $dadosProd = $pegar_dados_produto->fetchObject();
          
          $verificar_imagens = BD::conn()->prepare("SELECT * FROM loja_imgprod WHERE id_produto = ?");
          $verificar_imagens->execute(Array($idProduto));
          
          if($verificar_imagens->rowCount() == 0){
              if(unlink('../../produtos/'.$dadosProd->img_padrao)){
                  $deletar_produto =BD::conn()->prepare("DELETE FROM loja_produtos WHERE id = ?");
                  if($deletar_produto->execute(array($IdProduto))){
                      echo'<script>alert("Produto excluido com sucesso!");location.href"index.php?pagina=editarProdutos</script>';    
                  }
                  
              }
              
          }else{
              while($dadosImagenm = $verificar_imagens->fetchObject()){
                  unlink('../../produtos/'.$dadosImagem->img);
              }
              if(unlik('../../produtos/'.$dadosProd->img_padrao)){
                  $deletar_produto = BD::conn()->prepare("DELETE FROM loja_produtos WHERE id = ?");
                  if($deletar_produto->execute(array($idproduto))){
                      echo'<script>alert("Produto excluido com sucesso!");location.href"index.php?pagina=editarProdutos</script>';
                  }
              }
          }
      endif;
      ?>
       
      Ola, estou tabalhando com esse script, e não consigo resolver esse problema alguém pose me ajudar?
×

Informação importante

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