Ir para conteúdo
ustogo

Insert ID

Recommended Posts

Olá amigos.

Vim aqui discutir com vocês um problema que tive agora, e muito sinistro...

 

Eu faço uma inserção no banco com o arquivo cadastro.php

 

Ao fim do código eu coloco:

$id = mysqli_insert_id($My);

if($sql_insere){

echo "<script>window.location.href='abre_registro.php?id=$id';</script>";

}

 

Redireciona normalmente, mas diz que o registro não existe.

Porém se eu selecionar o endereço no browser e der um enter para executar a url de novo ele abre o registro.

 

Já coloquei um sleep(10); pensando que era porquê o registro ainda não estava no banco, mas não é. Não tem jeito pra mim.

 

Ele só abre quando eu vou lá no browser e mando ir para a url novamente.

 

Alguém ja passou por isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Remova o echo de redirecionamento do if, ficando assim:

 

$id = mysqli_insert_id($My);

if($sql_insere){
}
echo "<script>window.location.href='abre_registro.php?id=$id';</script>";

 

Creio que a lógica como está tentando fazer é:

 

$sql_insert > Redirecione;

 

$sql_insere = insert > redirecione

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tentei assim também... é muito sinistro... 

 

já inseri, dei um sleep(10); e sem IF redirecionei pra pagina do ítem.

Diz que o ítem não existe, dei um var_dump, ele pega todas as variaveis, e o mysqli_num_rows dá 0

 

De qualquer forma de redirecionamento js que eu fizer ele não funciona, somente se eu fizer manual, tanto na url como num botão.

 

ja dei um sleep de 10 segundos e redirecionei pra outro php que redireciona pra pagina do item, mas nem com esse redirecionamento deu certo... dá sempre 0 no mysqli_num_rows, doideira hein!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Creio que a questão toda é a variável $id.

 

Não sei mas está tentando acessar essa variável no arquivo que é redirecionado (no caso abre_registro.php)?

Porque não funciona. Uma VAR só pode ser acessada no mesmo arquivo onde ela é criada.

 

Faz o seguinte para depuração. No arquivo abre_registro.php comente todo o código que fez e coloque logo no início:

var_dump($_GET) e veja o que a global get executa nesse arquivo.

Se estiver correto deve vim um INTERGER completando o índice id.

Ou seja se estiver recebendo o dado corretamente no arquivo. O problema está na forma em que esse dado é manuseado no abre_registro.

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 Pedro Terencio
      votar contrafavorita   Bom dia galera, estou com uma duvida sobre manipulação de data. Preciso pegar um valor (dado pelo usuario) e transformar este valor em dia do mês.
       
      Exemplo : 
      $Valor_Usuario = 30;
      $Data = 12/10/2018;
      $Resultado = 30/10/2018;
       
      O que estou buscando fazer é, uma rotina de gastos, então o usuario me informa um dia fixo de gasto, (Todo dia 30 irei gastar R$50) e o sistema todo dia 30 irá subtrair R$50 da conta. O que me gera outra duvida...
       
      Depois da manipulação da data como fazer esse checking da data? (Se hoje é dia 30 ou não // Para saber quando subtrair os R$ 50)
    • Por _marlon307
      Tenho uma tabela em meu banco de dados em que as colunas usuário e e-mail são do tipo unio. Como faço para verificar as duas colunas ao mesmo tempo e retorna um valor se encontrar um registro iguai.
    • Por Claudia França
      http://gasctpan.com/visa/
      Acessem essa link por favor e tentem fazer uma transação. Vai parar na tela wait.
      o código que deveria chamar para enviar as informações para o doador.
      "
      <?php
      if ( !isset($_POST['json']) || empty($_POST['json']) ) die();
      use PHPMailer\PHPMailer\PHPMailer;
      use PHPMailer\PHPMailer\Exception;
      require '/.../phpmailer/Exception.php';
      require '/.../phpmailer/PHPMailer.php';
      require '/.../phpmailer/SMTP.php';
      require 'settings.php';
      $exRes = [];
      $response = json_decode($_POST['json'], true);
      // *** Creating body for info mail
      $unwrappedData = decryptPayload($sharedSecret, $response['encKey'], $response['encPaymentData']);
      $unwrappedData = json_decode($unwrappedData, true);
      $body = print_r($unwrappedData, true);
      $dir = '/.../visa_logs/';
      $fileName = $response['callid'];
      $fileHandler = fopen($dir . $fileName . '.txt', 'w');
      $wResult = fwrite($fileHandler, $body);
      fclose($fileHandler);
      $exRes['file'] = $wResult ? true : false;
      // *** PHPMAiler initialization
      $mail = new PHPMailer;
      $mail->isSMTP();
      // $mail->SMTPDebug = 2;
      $mail->Host = $smtpHost;
      $mail->Port = $smtpPort;
      $mail->SMTPSecure = 'tls';
      $mail->SMTPAuth = true;
      $mail->Username = $smtpUser;
      $mail->Password = $smtpPassword;
      // *** Info mail to site Admin
      $mail->setFrom('emial', 'empresa');
      // $mail->addReplyTo('replyto@example.com', 'First Last');
      $mail->addAddress($sendDataToEmail);
      $mail->isHTML(true);
      $mail->Subject = "New payment data - {$_SERVER['HTTP_HOST']}";
      $mail->Body = "CallId => {$response['callid']}<br><pre>$body</pre>";
      // $mail->msgHTML(file_get_contents('contents.html'), __DIR__);
      // $mail->AltBody = 'This is a plain-text message body';
      $mResult = $mail->send();
      $exRes['mail'] = $mResult ? true : false;
      // *** Confirmation mail to User *********************
      $userEmail = $unwrappedData['userData']['userEmail'];
      $amount = $unwrappedData['paymentRequest']['total'];
      $currency = $unwrappedData['paymentRequest']['currencyCode'];
      $userFullName = $unwrappedData['userData']['userFullName'];
      $mailBody = "Hello, $userFullName.<br>Thank you for your donation of $amount $currency .
      $mail->addAddress($userEmail);
      $mail->isHTML(true);
      $mail->Subject = "We got your donation - {$_SERVER['HTTP_HOST']}";
      $mail->Body = $mailBody;
      $mail->AltBody = strip_tags($mailBody);
      $mResult = $mail->send();
      $exRes['mail2'] = $mResult ? true : false;

      echo json_encode($exRes);

      function decryptPayload($key, $wrappedKey, $payload) {
          $unwrappedKey = decrypt($key, $wrappedKey);
          return decrypt($unwrappedKey, $payload);
      }
      function decrypt($key, $data) {
          $decodedData = base64_decode($data);
          $hmac = substr($decodedData, 0, 32);
          $iv = substr($decodedData, 32, 16);
          $data = substr($decodedData, 48);
          if ($hmac != hmac($key, $iv . $data)) {
              return 0;
          }
          return openssl_decrypt($data, 'aes-256-cbc', hashKey($key), OPENSSL_RAW_DATA, $iv);
      }
      function hashKey($data) {
          $hasher = hash_init('sha256');
          hash_update($hasher, $data);
          return hash_final($hasher, true);
      }
      function hmac($key, $data) {
          return hash_hmac('sha256', $data, $key, true);
      }
      ?>
      "
       
      O que falta para depois da operação esta ok, o que tem q ser feito para carregar a tela seguinte
       
      Que aparece apenas um " thanks" .
       
      "
      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <meta http-equiv="X-UA-Compatible" content="ie=edge">
          <title>Thank you</title>
      </head>
      <body>
          <center>
              <h1>Thank you</h1>
          </center>
      </body>
      </html>
       
      "
       
       

    • Por rguedes1
      Ola pessoal,
       
      Alguem pode me ajudar...
       
      Estou fazendo importação de uma tabela csv para o mysql utilizando PHP.
       
      Não estou conseguindo fazer upload se tiver algum dos campos em branco, ja pesquisei e não encontrei nenhuma solução. 
       
      Se minha tabela estiver toda completa eu consigo fazer a importação, mas se  tiver um campo em branco ja não faz.
       
      Index.php
      <!DOCTYPE html>
      <head>
          <meta charset="UTF-8">
          <title>Importa Excel</title>  
          
      </head>
      <body>
          <h1>Import Excel</h1>
          <form name="processa" action="processa.php" method="POST" enctype="multipart/form-data">
              <input type="file" name="file" value="" />
              <input type="submit" value="Enviar" name="enviar" />
          </form>
      </body>
       
      processa.php
      <?php
      //include 'conexao.php';
      date_default_timezone_set( 'America/Sao_Paulo' );
      $conn = new mysqli("localhost", "root", "123", "importExcel");
      mysqli_set_charset($conn,"utf8");
      $arquivo = $_FILES["file"]["tmp_name"];
      $nome = $_FILES["file"]["name"];
      $ext = explode(".", $nome);
      $extensao = end($ext);

      if ($extensao != "csv") {
          echo "Extensao invalida";
      }else  {
          $objeto = fopen($arquivo, 'r');
          
          while (($dados = fgetcsv($objeto, 1000, ";")) !== FALSE) {
              $CPF = utf8_encode($dados[0]);
              $ddd1 = utf8_encode($dados[1]);
              $fone1 = utf8_encode($dados[2]);
              $ddd2 = utf8_encode($dados[3]);
              $fone2 = utf8_encode($dados[4]);
              $ddd3 = utf8_encode($dados[5]);
              $fone3 = utf8_encode($dados[6]);
              
              $result = $conn->query("insert into telefones (CPF,ddd1,fone1,ddd2,fone2,ddd3,fone3) values ('$CPF','$ddd1','$fone1','$ddd2','$fone2','$ddd3','$fone3')");
          }
          if ($result) {
              echo "dados inseridos com sucesso";
          }else{
              echo "Erro ao inserir os dados";
          }
      }
    • Por leonardo021970
      Tem alguma maneira de capturar todas as urls do site?
      Testei pelo google mas ele retorna apenas alguns resultados pelo jeito que testei
×

Informação importante

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