سلام
یه کاری میشه کرد بدون Ajax اونم اینه که یه فایل php بسازید که خروجی فقط تصویر image/png کپچا رو بده طوری که مرورگر صرفاً عکس تحویل بگیره بعدش با جاوا اسکریپت دکمه تعویض کپچا لینک تصویر رو به همون لینک فایل php تصویر ساز با یه query رندوم بده تا تصویر عوض بشه.
نمونه کد php برای خروجی فقط عکس:
کد PHP:
<?php
header('Content-Type: image/png');
echo $captcha_image;
exit();
اینجا باید به جای متغیر captcha_image خروجی تصویری کپچا رو echo کنید.
حالا فرض میکنیم لینک این فایل که خروجی فقط تصویر کپچا به صورت رندوم داره اینه:
کد:
http://mysite.ir/captcha.php
این لینک چون خروجی تصویر میده مستقیم امکان استفاده در تگ img و خصوصیت src رو داره اینطوری:
کد HTML:
<img src="http://mysite.ir/captcha.php" id="captcha" width="100" height="30" alt="captcha" title="سوال امنیتی" />
خب حالا یه دکمه میسازید که قراره تصویر کپچا رو عوض کنه فقط کافیه اینجا لینک mysite.ir/captcha.php رو آخرش یه Query اضافه کنه که مرورگر لینک جدید حسابش کنه اینطوری:
کد:
http://mysite.ir/captcha.php?random=7fdfhhg
خب حالا با جاوا اسکریپت میشه براحتی یه خط کد نوشت که خصوصیت src تگ img رو به همین لینک فقط با query رندوم عوض کنه اینطوری:
کد HTML:
<button onclick="document.getElementById('captcha').src='http://mysite.ir/captcha.php?random=' + Date.now().toString();">کپچا جدید</button>