Share code PHP tạo Captcha dạng toán từng bước đơn giản
Đâu tiên bác tạo 1 func :
sao đó vào form đăng kí ! tìm trc thẻ submit thêm vào :
trong trường hợp bạn dùng js onsubmit ở form để ckeck ngay trong file thì :
còn nếu bạn gửi file qua file khác sử lí thì :
trong file xử lí thì bạn có thẻ dùng php
lúc đấy bạn code như sau :
Chúc các bạn thành công !
Bài viết tham tính chất tham khảo ! thân end thông !
Nguồn: sackaboy
function captcha() {
$macaptcha = array(
1 => array('question' => 'Mot cong mot', 'answer' => 2),
2 => array('question' => 'ba tru hai', 'answer' => 1),
3 => array('question' => 'ba nhan nam', 'answer' => 15),
4 => array('question' => 'sau chia hai', 'answer' => 3),
5 => array('question' => 'nang bach tuyet va .... chu lun', 'answer' => 7),
6 => array('question' => 'Alibaba va ... ten cuop', 'answer' => 40),
7 => array('question' => 'an mot qua khe, tra .... cuc vang', 'answer' => 1),
8 => array('question' => 'may tui .... gang, mang di ma dung', 'answer' => 3)
);
$rand_key = array_rand($macaptcha); // Lay ngau nhien mot trong cac array 1, 2, 4
$_SESSION['q'] = $macaptcha[$rand_key];
return $question = $macaptcha[$rand_key]['question'];
}
$macaptcha = array(
1 => array('question' => 'Mot cong mot', 'answer' => 2),
2 => array('question' => 'ba tru hai', 'answer' => 1),
3 => array('question' => 'ba nhan nam', 'answer' => 15),
4 => array('question' => 'sau chia hai', 'answer' => 3),
5 => array('question' => 'nang bach tuyet va .... chu lun', 'answer' => 7),
6 => array('question' => 'Alibaba va ... ten cuop', 'answer' => 40),
7 => array('question' => 'an mot qua khe, tra .... cuc vang', 'answer' => 1),
8 => array('question' => 'may tui .... gang, mang di ma dung', 'answer' => 3)
);
$rand_key = array_rand($macaptcha); // Lay ngau nhien mot trong cac array 1, 2, 4
$_SESSION['q'] = $macaptcha[$rand_key];
return $question = $macaptcha[$rand_key]['question'];
}
sao đó vào form đăng kí ! tìm trc thẻ submit thêm vào :
<div>
<label for="captcha">Phiền bạn điền vào giá trị số cho câu hỏi sau: <?php echo captcha(); ?><span class="class-phuhop">*</span>
<?php if(isset($errors) && in_array('wrong',$errors)) {echo "<span class='warning'>loi nhap captcha sai.</span>";}?></label>
<input type="text" name="captcha" id="captcha" value="" size="20" maxlength="5" tabindex="4" />
</div>
<label for="captcha">Phiền bạn điền vào giá trị số cho câu hỏi sau: <?php echo captcha(); ?><span class="class-phuhop">*</span>
<?php if(isset($errors) && in_array('wrong',$errors)) {echo "<span class='warning'>loi nhap captcha sai.</span>";}?></label>
<input type="text" name="captcha" id="captcha" value="" size="20" maxlength="5" tabindex="4" />
</div>
trong trường hợp bạn dùng js onsubmit ở form để ckeck ngay trong file thì :
//mã này ckeck nếu người dùng ko nhập captcha
var captcha = document.forms["tên form"]["captcha"].value; /// khai bao
if (captcha == "") { // báo lỗi nếu người đùng ko nhập captcha
alert("nhập captcha vào thằng óc !");
return false;
}
if(captcha == true && captcha == <? $_SESSION['q']['answer'] ?>){
}else{
alert("nhập captcha sai kìa thằng óc !");
}
var captcha = document.forms["tên form"]["captcha"].value; /// khai bao
if (captcha == "") { // báo lỗi nếu người đùng ko nhập captcha
alert("nhập captcha vào thằng óc !");
return false;
}
if(captcha == true && captcha == <? $_SESSION['q']['answer'] ?>){
}else{
alert("nhập captcha sai kìa thằng óc !");
}
còn nếu bạn gửi file qua file khác sử lí thì :
<script type="text/javascript">
$(document).ready(function()
{
$("a.opentop").click(function()
{
var lten = document.forms["myForm"]["ten"].value;
//khai bao tuong tu dong trên
var data = 'lid='+ lid + '&action='+ action; //cách để gôm các biến và gửi lên sever
$("#result").html('Đang Tải...'); //dang tai
$.ajax
({
type: "POST",
url: "xuli.php", // cái này chính là file sử lí !
data: data,
success: function(html)
{
$("#result").html(html);
}
});
});
});
</script>
$(document).ready(function()
{
$("a.opentop").click(function()
{
var lten = document.forms["myForm"]["ten"].value;
//khai bao tuong tu dong trên
var data = 'lid='+ lid + '&action='+ action; //cách để gôm các biến và gửi lên sever
$("#result").html('Đang Tải...'); //dang tai
$.ajax
({
type: "POST",
url: "xuli.php", // cái này chính là file sử lí !
data: data,
success: function(html)
{
$("#result").html(html);
}
});
});
});
</script>
trong file xử lí thì bạn có thẻ dùng php
lúc đấy bạn code như sau :
if(isset($_POST['captcha']) && trim($_POST['captcha']) != $_SESSION['q']['answer']) {
///báo lỗi tại đây !
// khi báo lỗi sever sẽ trả về file trước !
}
///báo lỗi tại đây !
// khi báo lỗi sever sẽ trả về file trước !
}
Chúc các bạn thành công !
Bài viết tham tính chất tham khảo ! thân end thông !
Nguồn: sackaboy