<?php
// Begin the session
session_start();
// Create a random string
$char = strtoupper(substr(str_shuffle('abcdefghjkmnpqrstuvwxyz'), 0, 4));
$str = rand(1, 7) . rand(1, 7) . $char;

// Set the session contents
$_SESSION['captcha_id'] = $str;

?>
<!doctype html>
<html>
<head>
   <title>Captcha With Ajax</title>
   <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
   <link href="style.css" rel="stylesheet">
</head>
<body>
<h1>Captcha With Ajax</h1>
<form id="captcha_form" action="">
   <fieldset>
     <div id="captcha_image"><img src="images/image.php" width="132" height="46" alt="Captcha image"></div>
     <label for="captcha">Masukkan huruf / character seperti yang terlihat pada gambar di atas (case insensitive):</label>
     <input type="text" maxlength="6" name="captcha" id="captcha">
     <p>
     <img src="" id="img_result"><span id="result"></span>
     </p>
     <p><input type="button" id="btn_check" value="Check"><input type="button" id="btn_ulangi" value="coba lainnya" ></p>
     <label for="nama">Nama :</label>
     <input type="text" name="nama" id="nama">
     <label for="gender">Jenis Kelamin :</label>
     <input type="text" name="gender" id="gender">
     <p><input type="submit" id="btn_kirim" value="Kirim" disabled="disabled"></p>
   </fieldset>
</form>
<script src="captcha.js"></script>
</body>
</html>


<?php
session_start();
if(strtoupper($_GET['captcha']) == $_SESSION['captcha_id']){
   echo '1';
}else{
   echo '0';
}
?>


$(document).ready(function(){
   $("#captcha").focus();
   $("#btn_check").click(function(){
     $("#result").removeClass("status_green");
     $("#result").removeClass("status_red");

     var captcha= $("#captcha").val();
     if (captcha.length==0){
           $("#result").addClass("status_red").html("captcha kosong!");
           $("#captcha").focus();
     }else{
           $.ajax({
           url: "ajax_captcha.php",
           type: "GET",
           data: {"captcha":captcha},
           success: function(data){
           if(data=="1"){
           $("#img_result").attr("src","images/cek41.png").css("display","inline");
           $("#result").addClass("status_green").html("autentifikasi berhasil");
           $("#btn_kirim").prop("disabled", false);
           }else if(data=="0"){
           $("#result").addClass("status_red").html("autentifikasi gagal");
           $("#img_result").attr("src","images/cross.png").css("display","inline");
           $("#captcha").focus();
           }
           console.log(data);
           }
           });
     }
   });
   $("#btn_ulangi").click(function(){
     window.location.href="index.php";
   });

});



#captcha_image img {
   border: 1px solid #ddd;
}
.status_green {
   color: #51c2d5;
}
.status_red {
   color: #ec4646;
}
fieldset label {
   display: block;
   margin: 5px 0px;
}

fieldset input#captcha,
fieldset input#nama,
fieldset input#gender{
   width: 220px;
   height: 33px;
   border: 1px solid #ddd;
   margin: 5px 0px;
   padding: 0px 5px;
   
}
#btn_check,
#btn_ulangi,
#btn_kirim {
   display: inline;
   margin-right: 10px;
   background-color: #11698e;
   color: white;
   border-radius:3px;
   opacity: 0.8;
   padding: 10px 40px;
   border: none;
   outline: none;
   cursor: pointer;
}
#btn_check:hover,
#btn_ulangi:hover,
#btn_kirim:hover{
   opacity: 1;
}

#btn_check:disabled,
#btn_ulangi:disabled,
#btn_kirim:disabled{
   background-color: #bbb;
}
#img_result{
   display: none;
   border: 1px solid #bbb;
   vertical-align: bottom;
   margin-right: 5px;
   padding: 2px;
}