Skip to content

Instantly share code, notes, and snippets.

@ricardoreis
Created July 1, 2020 18:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ricardoreis/bf078ef78b06012037b6f1c8bcde8bf4 to your computer and use it in GitHub Desktop.
Save ricardoreis/bf078ef78b06012037b6f1c8bcde8bf4 to your computer and use it in GitHub Desktop.
<?php
session_start();
echo '<br>token: ' . $token = isset( $_POST[ 'token' ] ) ? $_POST[ 'token' ] : '';
echo '<br>';
if ( empty( $_SESSION[ "cpf" ] ) ) {
header( "Location: index.php" );
exit;
}
if ( !empty( $_SESSION[ "usuario" ] ) ) {
header( "Location: dashboard.php" );
exit;
}
require 'config.php';
$telefone = isset( $_POST[ 'telefone' ] ) ? $_POST[ 'telefone' ] : '';
$telefone = str_replace( "(", "", $telefone );
$telefone = str_replace( ")", "", $telefone );
$telefone = str_replace( " ", "", $telefone );
$telefone = str_replace( "-", "", $telefone );
$_SESSION[ "telefone" ] = $telefone;
$cpf = $_SESSION[ "cpf" ];
$code = '';
$n_ja_cadastrado = '';
if ( $telefone && $cpf && ( $_SESSION[ 'token' ] == $_POST[ 'token' ] ) ) {
//verifica se o telefone já é de algum usuário
$sql = "SELECT id FROM usuarios WHERE telefone=$telefone";
$result = $conn->query( $sql );
if ( $result->num_rows > 0 ) {
// output data of each row
while ( $row = $result->fetch_assoc() ) {
//echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
echo "Esse telefone já está cadastrado no uruário id: " . $row[ "id" ];
$n_ja_cadastrado = true;
}
} else {
echo "Pode criar um código e enviar";
}
//FIM verifica se o telefone já é de algum usuário
/*
$code = rand(1001, 9998);
$sql = "INSERT INTO codes (telefone, code)
VALUES ('$telefone', '$code')";
if ($conn->query($sql) === TRUE) {
//echo "New record created successfully<br>";
//echo $telefone."<br>";
echo 'code '.$code."<br>";
//require 'messagebird/enviar_codigo.php';
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
*/
}
echo '<pre>' . print_r( $_SESSION, TRUE ) . '</pre>';
?>
<!doctype html>
<html lang="">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous">
<style>
.bounce {
animation: slide1 1s ease-in-out infinite;
}
@keyframes slide1 {
0%,
100% {
transform: translate(0, 0);
}
50% {
transform: translate(12px, 0);
}
}
.bounceUpDown {
animation: slide2 0.5s ease-out infinite alternate;
}
@keyframes slide2 {
0% {
transform: translateY(0);
}
100% {
transform: translateY(-12px);
}
}
.progress-bar {
-webkit-transition: none !important;
transition: none !important;
}
</style>
<title>Compre Bitcoin</title>
</head>
<body class="bg-light">
<?php
$pagina = "senha";
include( 'topo.php' );
?>
<!--/topo-->
<div class="container">
<div class="row justify-content-center">
<div class="col-lg-5">
<div class="text-center"><i class="fas fa-mobile-alt text-muted mt-5" style="font-size: 90px"></i>
</div>
<div class="card pr-3 pr-lg-5 pl-lg-4 mt-5 py-5 rounded-0 shadow">
<div class="ml-3 mt-3" style="position: relative">
<div class="alert alert-danger" role="alert">
<strong>Opss!</strong> Esse telefone já está cadastrado em nome de outro cliente. <br>
Digite outro número ou entre em contato conosco por WhatsApp (<a href="#" class="alert-link">clique aqui</a>).
</div>
<div class="font-weight-bold mb-1">Informe seu número de telefone celular<br>
<span class="small text-muted">De preferência um telefone com WhatsApp</span>
<i id="seta2" class="fa fa-arrow-down bounceUpDown text-primary pl-2 float-right pr-4" aria-hidden="true" style="font-size: 22px; visibility:hidden"></i>
</div>
<form action="telefone.php" method="post">
<input type="hidden" name="token" value="<?php echo $_SESSION['token']; ?>"/>
<div class="input-group mb-3">
<input type="tel" id="telefone" name="telefone" class="form-control form-control-lg" placeholder="___.___.___-__" aria-label="" aria-describedby="" value="<?php echo $telefone; ?>">
<div class="input-group-append">
<button class="btn btn-outline-secondary" id="continuar" type="submit" onClick="this.form.submit(); this.disabled=true; this.innerHTML='Aguarde…';" disabled>Me ligue</button>
</div>
</div><i id="seta" class="fa fa-arrow-right bounce text-primary float-left pl-2" aria-hidden="true" style="position: relative; top:-53px; left: -32px; font-size: 22px; z-index: 10; visibility: hidden"></i>
<div class="clearfix"></div>
<div class="alert alert-info p-2 collapse" role="alert">
<div><strong>Estamos ligando e enviando o código.</strong>
</div>
<div>Pode demorar alguns segundos, aguade...</div>
</div>
</div>
<!--/ml-3-->
<div class="ml-3" style="position: relative">
<div class="font-weight-bold mb-1">Digite o código de verificação:
</div>
<div id="aguarde" class="text-info"></div>
<div class="input-group">
<span class="mr-2 text-info" style="font-size: 30px">COD - </span>
<input type="tel" id="codigo" name="codigo" pattern="[0-9]*" class="form-control form-control-lg text-info" placeholder="_ _ _ _" style="max-width: 130px; font-size: 30px">
<!--input type="tel" id="codigo" name="codigo" pattern="[0-9]*" class="form-control form-control-lg text-info" placeholder="_ _ _ _" style="max-width: 130px; font-size: 30px"-->
</div>
</div>
<!--/ml-3-->
</form>
</div>
<!--/card-->
</div>
<!--/col-->
</div>
<!--/row-->
</div>
<!--/container-->
<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Vamos ligar para você!</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body" style="min-height: 170px">
<div id="type1" style="font-size: 20px"></div>
</div>
<div class="modal-footer" style="visibility: hidden">
<i id="seta" class="fa fa-arrow-right bounce text-primary float-left pl-2" aria-hidden="true" style="position: relative; top:0px; left: -26px; font-size: 22px; z-index: 10"></i>
<button type="button" class="btn btn-primary" data-dismiss="modal">Ok, continuar!</button>
</div>
</div>
</div>
</div>
<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="js/jquery-3.2.1.min.js"></script>
<script src="js/popper.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/typeit@5.10.6/dist/typeit.min.js"></script>
<script src="js/jquery.inputmask.bundle.js"></script>
<script>
window.onload = function () {
var telefone = "<?php echo $telefone;?>";
console.log( "telefone: " + telefone );
var code = "<?php echo $code;?>";
console.log( "code: " + code );
var n_ja_cadastrado = "<?php echo $n_ja_cadastrado;?>";
console.log( "n_ja_cadastrado: " + n_ja_cadastrado );
if ( !telefone ) {
$( "#seta" ).css( "visibility", "visible" );
$( '#exampleModal' ).modal( 'show' );
$( '#exampleModal' ).on( 'hidden.bs.modal', function ( e ) {
$( '#telefone' ).focus();
} )
}
if ( telefone && !code ) {
console.log( "tem telefone mas não foi gerado código" );
}
if ( telefone && code ) {
$( ".alert" ).fadeIn();
$( '#codigo' ).focus();
document.getElementById( "continuar" ).disabled = true;
document.getElementById( "telefone" ).disabled = true;
function startTimer( duration, display ) {
var timer = duration,
minutes, seconds;
setInterval( function () {
minutes = parseInt( timer / 60, 10 )
seconds = parseInt( timer % 60, 10 );
minutes = minutes < 10 ? "0" + minutes : minutes;
seconds = seconds < 10 ? "0" + seconds : seconds;
display.textContent = minutes + ":" + seconds;
if ( --timer < 0 ) {
timer = duration;
}
if ( minutes == 0 && seconds == 0 ) {
//alert();
window.location = "telefone.php";
}
}, 1000 );
}
var fiveMinutes = 60 * 9,
display = document.querySelector( '#continuar' );
startTimer( fiveMinutes, display );
}
new TypeIt( '#type1', {
speed: 30,
cursor: false,
afterComplete: function ( step, queue, instance ) {
$( ".modal-footer" ).css( "visibility", "visible" );
}
} )
.type( 'Na próxima etapa vamos pedir o seu telefone e então você receberá uma ligação automática informando um código de verificação.' )
.pause( 550 )
.break()
.break()
.type( 'Uma cópia do código será enviada por mensagem SMS.' )
.pause( 550 )
.break()
.break()
.type( 'Podemos continuar?' )
.pause( 750 );
$( "input[id*='telefone']" ).inputmask( {
mask: [ '(99) 9999-9999', '(99) 9 9999-9999' ],
keepStatic: true
} );
$( "input[id*='codigo']" ).inputmask( {
mask: [ '9 9 9 9' ],
keepStatic: true,
oncomplete: function () {
verifica();
}
} );
$( '#telefone' ).keyup( updateCount );
$( '#telefone' ).keydown( updateCount );
function updateCount() {
var cs = $( this ).val();
var res = cs.replace( /[_.-]/g, "" );
var quantidade = res.length;
if ( quantidade > 12 ) {
document.getElementById( "continuar" ).disabled = false;
$( "#continuar" ).attr( 'class', 'btn btn-primary' );
$( "#seta" ).css( "visibility", "hidden" );
$( "#telefoneAluno" ).html( cs );
} else {
$( "#continuar" ).attr( 'class', 'btn btn-outline-secondary' );
$( "#seta" ).css( "visibility", "visible" );
$( "#seta2" ).css( "visibility", "hidden" );
document.getElementById( "continuar" ).disabled = true;
}
}
function verifica() {
console.log( "telefone: " + telefone );
var codigo = $( "#codigo" ).val();
codigo = codigo.replace( / /g, '' );
console.log( "codigo: " + codigo );
$( "#codigo" ).prop( 'disabled', true );
$( "#aguarde" ).html( '<i class="fas fa-circle-notch fa-spin"></i> Verificando, aguarde...' )
$.ajax( {
url: "verificar_codigo.php",
type: "POST",
data: "telefone=" + telefone + "&codigo=" + codigo,
dataType: "html"
} ).done( function ( retorno_php ) {
console.log( retorno_php );
// var json = JSON.parse(retorno_php);
if ( retorno_php == 1 ) {
$( "#aguarde" ).html( '<span class="text-success"><i class="fas fa-circle-notch fa-spin"></i> Ok. Código correto, aguarde...</span>' );
window.location = "senha_cadastrar.php";
} else {
$( "#aguarde" ).html( '<span class="text-danger">O código está errado. Digite novamente.</span>' );
$( "#codigo" ).prop( 'disabled', false );
$( "#codigo" ).val( '' );
$( '#codigo' ).focus();
}
} ).fail( function ( jqXHR, textStatus ) {
//console.log("Request failed: " + textStatus);
} ).always( function () {
//console.log("completou");
} );
}
} // FIM window.onload
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment