Jump to content
unnie

[RESOLVIDO] Comando Update não está funcionando

Recommended Posts

Se alguém estiver lendo, olá! Estou tentando fazer um CRUD e na parte de validação do e-mail, eu recebo um email tudo certinho, entretanto não estou conseguindo fazer o update de um campo do BD que corresponde ao id que informa se o e-mail está verificado ou não ...

 

O código de verificação de e-mail está abaixo:

<?php
include "dbh.inc.php";

$token = $_GET['token'];
$email = $_GET['email'];
$idEmail = 1;
$sql = "SELECT * FROM users WHERE emailUsers=? AND token=?";
$stmt = mysqli_stmt_init($conn);
if(!mysqli_stmt_prepare($stmt, $sql)){
    echo"".$email;
    header("Location: ../header.php?error=sqlerror");
    exit();
}
else{
    mysqli_stmt_bind_param($stmt, "ss", $email, $token);
    mysqli_stmt_execute($stmt);
    $result = mysqli_stmt_get_result($stmt);
    if($row = mysqli_fetch_assoc($result)){
      ##############################################################################################
            $sql = "UPDATE users SET emailConfirm='$idEmail' WHERE emailUsers='$email' AND token='$token'";
            $stmt = mysqli_stmt_init($conn);
            mysqli_stmt_execute($stmt);
            echo "".$row['emailConfirm'].$row['emailUsers'].$row['token'].$row[''];     
      ##############################################################################################
    }
    if(!mysqli_stmt_affected_rows()>0){
        echo"Afetou Linhas";
    }
    else{
        echo"Nenhuma Linha Afetada";
    }
}

no e-mail contém um link estilo:

 

site.com/arquivo.php?email=$email&token=$token

site.com/arquivo.php?email=oemaildousuario&token=tokendousuario

 

quando peço que faça o 'echo' do token e e-mail, é imprimido na tela o email e token que estão no link corretamente como eu quero e quando peço 'echo' de outra informação do usuário que contem as informações equivalentes ao do token e email do link as informações são mostradas corretamente também, mas no momento que peço pelo UPDATE nada acontece no BD, o id de validação (emailConfirm) de e-mail continua em '0'  e não faz o update para 1...

 

alguém pode me ajudar???  Obrigada !

Share this post


Link to post
Share on other sites
1 hora atrás, unnie disse:

$sql = "UPDATE users SET emailConfirm='$idEmail' WHERE emailUsers='$email' AND token='$token'";

$stmt = mysqli_stmt_init($conn);

mysqli_stmt_execute($stmt);

 

Você está passando sua consulta(update), mas nenhum momento você passou ela($sql) como parâmetro para ser preparada/executada.

 

Obs: Note que no seu primeiro select lá em cima você passa o $sql como parâmetro abaixo.

Share this post


Link to post
Share on other sites

Muito obrigada pela ajuda, apenas faltava mesmo preparar a consulta Update antes de executa-la ...

Agora está tudo funcionando !! Obrigada pela sua ajuda !!

 

 

16 horas atrás, marcosmarcolin disse:

 

Você está passando sua consulta(update), mas nenhum momento você passou ela($sql) como parâmetro para ser preparada/executada.

 

Obs: Note que no seu primeiro select lá em cima você passa o $sql como parâmetro abaixo.

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Samuel Pietro
      Tenho um select em PDO e preciso que a consulta retornada vire uma variavel, mas a variavel só pega a ultima linha da tabela e eu preciso que pegue todas as linhas que existirem.
       
      $conexao = conexao::getInstance(); $sql = 'SELECT * FROM RegistroE'; $stm = $conexao->prepare($sql); $stm->execute(); $Sql = $stm->fetchAll(PDO::FETCH_OBJ); foreach ($Sql as $SqlReg): $conteudo_meio = picture_X($SqlReg->E_01,1) .picture_X($SqlReg->E_02,25) .picture_9($SqlReg->E_03,4) .picture_X($SqlReg->E_04,14) .picture_9($SqlReg->E_05,8) .picture_9($SqlReg->E_06,8) .picture_9($SqlReg->E_07,8) .picture_9($SqlReg->E_08,8) .picture_9($SqlReg->E_09,8) .complementoRegistro(96,"brancos") .picture_9($SqlReg->E_11,1) .complementoRegistro(1,"brancos") ; endforeach; Como eu poderia está fazendo isto?
    • By peterstefan
      Bom dia, estou fazendo uma cadastro via rest e estou utilizando o curl para cadastrar no webservice...
      Meu código está cadastrando tudo certinho, porem quando ele cadastra e mostra o retorno que foi cadastrado com sucesso ele fica o AGUARDE, CARREGANDO e não para.. não sei oque esta faltando pq já tentei varias coisas e não deu certo... 
       
       
       
      $Data = [ "nomeRazaoSocial" => $PostData['nomeRazaoSocial'], "identMF" => $PostData['identMF'], "email" => $PostData['email'], "telefone" => $PostData['telefone'], "senhaProvisoria" => $PostData['senhaProvisoria'] ]; $DataString = json_encode($Data); $curl = curl_init(WEBSERVICECADASTRO); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($curl, CURLOPT_POSTFIELDS, $DataString); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($DataString)) ); $result = curl_exec($curl); if ($result) { $jSON['success'] = "<i class='icon-checkmark'></i>Pronto, cadastro foi realizado com sucesso!"; }else{ $jSON['error'] = "<i class='icon-warning'></i>Oops! Erro ao cadastrar! Por favor, tente novamente!"; }  

       

    • By RSN
      Boa Noite,
      Preciso enviar uma consulta sql no corpo do e-mail, porém não estou conseguindo concatenar o laço while.
      <?php include_once('conexao.php'); require 'PHPMailer/PHPMailerAutoload.php'; $resultado = mysql_query("SELECT * FROM cupom WHERE FlagEstorno = 1;"); $linhas = mysql_num_rows($resultado); $mensagem = '<div class="x_content"> <table id="datatable-buttons" class="table table-striped table-bordered"> <thead> <tr> <th>Loja</th> <th>Nro Cupom</th> <th>Data</th> <th>Operador</th> </tr> </thead> <tbody> while($linhas = mysql_fetch_array( $resultado)){ echo " <tr>"; echo "<td>".$linhas['nroloja']."</td>"; echo "<td>".$linhas['NroCupom']."</td>"; echo "<td>".$linhas['DataProc']."</td>"; echo "<td>".$linhas['Operador']."</td>"; echo " </tr>"; }'; $mail = new PHPMailer(); $mail->isSMTP(); $mail->Host = 'smtp.gmail.com'; $mail->SMTPAuth = true; $mail->SMTPSecure = 'tls'; $mail->Username = ''; $mail->Password = ''; $mail->Port = 587; $mail->setFrom(''); $mail->addReplyTo(''); $mail->addAddress('', 'Nome'); $mail->isHTML(true); $mail->Subject = 'Assunto do email'; $mail->Body = $mensagem; $mail->AltBody = 'Para visualizar essa mensagem acesse http://site.com.br/mail'; //$mail->addAttachment('/tmp/image.jpg', 'nome.jpg'); if(!$mail->send()) { echo 'Não foi possível enviar a mensagem.<br>'; echo 'Erro: ' . $mail->ErrorInfo; } else { echo 'Mensagem enviada.'; } ?>  
    • By Augustomesquita
      Bom dia pessoal!
      Vocês também estão programando em primeira pessoa? Recentemente escrevi este artigo e gostaria de compartilhar a ideia com vocês.
      Pare de programar em primeira pessoa!
    • By Matheus Guto
      Eae pessoal, bom sou novo no ramo e quero uma ajudinha em um erro de um programa para médias
      Parse error: syntax error, unexpected 'endif' (T_ENDIF) in C:\xampp\htdocs\atividade2.php on line 32
      ah, e tá aqui o código
       
      <html>
          <head>
              <title>Médias</title>
          <meta charset="UTF-8">
          </head>
      <body>
          <div>
              <form method="get">
                  Primeira nota:<input type="text" name="nota1"/> <br>
                  Segunda nota:<input type="number" name="nota2"/> <br>
                  Terceira Nota:<input type="number" name="nota3"/>
                  <input type="submit" name="botao" value="clique"/>
              </form>
          <?php
              if (isset($_GET["botao"])) {
                  $nota1 = isset($_GET["nota1"])?$_GET["nota1"]:"";
                  $nota2 = isset($_GET["nota2"])?$_GET["nota2"]:"";
                  $nota3 = isset($_GET["nota3"])?$_GET["nota3"]:"";
              if ($nota1 == ""|| $nota3 =="" || $nota3 ==""){
                  echo "por favor digite todas as notas";
              } else {
                  $media = ($nota1+$nota2+$nota3)/3;
              echo "a média do aluno é" . $media . "<br>";
              }  if ($media >= 7)
              echo "aprovado";
                  elseif (($media < 7) && ($media >= 5))
                  echo "recuperação";
              else{
                  echo "reprovado";
              }
          endif
      endif
      ?>
          </div>
      </body>
      </html>
×

Important Information

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