وب سایت شخصی رحمت حاجی سعدین

می نویسم تا شاید جاودانه شود ...

در اینجا می توانید به آموزش های مفیدی در زمینه های وبلاگ نویسی و برنامه نویسی دسته پیدا کنید

به همراه دست نوشته ها و روزمرگی های خودم:)

هر قالبی رو دیدی فقط کافیه آدرسشو بفرستی و من برات با کمترین هزینه ترجمه کنم برای هر سرویسی اعم از ورپرس،بلاگفا،بلاگ،رزبلاگ،میهن بلاگ و ...

زیر مجموعه گروه راشنو

ساخت کپچا ساده عملیات ریاضی با php

سلام و درود . امیدوارم حالتون خوب باشه هر چند میدونم این روزا حال خوب داشتن امری است نه غیر ممکن ولی اندکی سخت . احوال خودمم زیاد جالب نیست ولی خب بریم سراغ آموزشی که براتون در نظر گرفتم امشب! خب در این آموزش می خوایم با هم یه کپچا ساده با عملیات ریاضی رو بسازیم . کپچا همون کد امنیتی خودمونه که از ارسال اسپم توسط رباتها و افراد جلوگیری می کند.خب برای ساخت چنین چیزی ابتدا باید بیایم یه تابع بنویسیم که اعداد تصادفی تولید کنه و ساده ترین حالت ممکن برای این کار به صورت زیر هستش.

  • با استفاده از تابع rand در PHP ، می توانیم اعداد تصادفی تولید کنیم. اگر درون پرانتز تابع rand ، هیچ عددی ننویسیم، آنگاه یک عدد دلخواه را بر می گرداند (حداکثر و حداقلی برای آن تعیین نکرده ایم)، اما ما می توانیم حداکثر و حداقل مجاز برای تولید عدد تصادفی را تعیین کنیم که این دو مقدار را باید درون پرانتز تابع rand بنویسیم
  • مثال:در مثال زیر چون داخل تابع rand هیچ مقداری مشخص نکردیم طبیعتا تعداد ارقام تولید در هر بار مشابه نخواهد بود
<?php
$B=rand();
echo($B);
?>
  • اگر بخواهیم محدوده مشخص کنیم باید داخل پرانتز rand مقدار maxوmin را مشخص کنیم مثال:
<?php
$B=rand(0,9);
echo($B);
?>
  • خب من در مثال بالا محدوده اعداد تصادفی رو بین 0تا9 تعریف کردم.شما میتونید به دلخواه خودتون تعین کنید

خب بریم سراغ تابع اصلی که اعداد تصادفی رو برا ما می سازه

<?php
$x=rand(0,9);
$y=rand(0,9);
$z=$x*$y;
?>
  • من داخل قطعه کد بالا گفتم که : $x یک عدد تصادفی بین (0,9) و $y نیز یک عدد تصادفی بین (0,9) تولید کند و در آخر گفتم $z بیاد و مقادیر تولیدی توسط $x و $y رو در هم ضرب کنه !

خب حالا نوبت ساخت فرممون هستش که من با bootstrap ساختمش

<form action="" method="post">
<div class="form-group">
<label for="exampleInput">کد امنیتی</label>
<input type="text" class="form-control" name="user_captcha" placeholder="<?php echo $x;?>*<?php echo $y;?>">
<input type="hidden" value="<?php echo $z; ?>" name="captcha">
</div>
  <button type="submit" name="submit" class="btn btn-primary">ارسال</button>
</form>   
  • و در نهایت باید مقادیری که توسط فرم ارسال می شه چک بشه که آیا کد امنیتی درست هستش یا نه!
<?php
		if(isset($_POST['submit'])) {
		if(($_POST['captcha']) != ($_POST['user_captcha'])){
			  echo('<p class="container alert alert-danger" role="alert"> کد امنیتی را صحیح وارد نمایید!</p>'); 
		}
		else {
			echo('<p class="container alert alert-success" role="alert"> کپچا درست است</p>');
		}
		}
?>

فرم نهایی به صورت زیر هستش

<!DOCTYPE html>
<html>
<head>
	<title>نمونه کپچا - رحمت حاجی سعدین</title>
<link rel="stylesheet" href="https://cdn.rtlcss.com/bootstrap/v4.2.1/css/bootstrap.min.css" integrity="sha384-vus3nQHTD+5mpDiZ4rkEPlnkcyTP+49BhJ4wJeJunw06ZAp+wzzeBPUXr42fi8If" crossorigin="anonymous"></head>
<body>

	

<div class="container">

	<div class="alert alert-dark" role="alert">
کپچای ساده</div>

<?php
$x=rand(0,9);
$y=rand(0,9);
$z=$x*$y;
?>
<?php
		if(isset($_POST['submit'])) {
		if(($_POST['captcha']) != ($_POST['user_captcha'])){
			
			  echo('<p class="container alert alert-danger" role="alert"> کد امنیتی را صحیح وارد نمایید!</p>'); 
		}
		else {
			echo('<p class="container alert alert-success" role="alert"> کپچا درست است</p>');
		}

		}
		?>
<form action="" method="post">

  <div class="form-group">
    <label for="exampleInput">کد امنیتی</label>
    <input type="text" class="form-control" name="user_captcha" placeholder="<?php echo $x;?>*<?php echo $y;?>">
    <input type="hidden" value="<?php echo $z; ?>" name="captcha">
  </div>

  <button type="submit" name="submit" class="btn btn-primary">ارسال</button>
</form>   

 </div>

</body>
</html>
  • پ.ن:در این فرم من از ضرب استفاده کردم برای عملیات کپچا شما می تونید به دلخواه خودتون از جمع،تفریت یا تقسیم استفاده کنید
  • پ.ن2:البته برای تقسیم باید یه سری محدودیت ها ایجاد کنید!!!

امیدوارم مطلب مفید واقع شده باشد و اندکی به دانش برنامه نویسی شما اضافه کرده باشد

و در پایان سورسش رو براتون قرار می دم تا اگه مشکلی بود برطرف شه:)

به زودی کپچای پیشرفته تری رو آموزش میدم براتون

 

دانلود فایل-حجم :2KB

تعداد نظرات:(۱)

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی
  1. Mhds 82۳۰ شهریور ۹۹

    اوه چه جالب رسما عاشقش شدم 😀😀

    به ابزار های کاربردیم اضافه کردیم ممنون ازت :)

    • رحمت حاجی سعدین۳۰ شهریور ۹۹

      خوشحالم که اینو می شنوم :) موفق باشی