[بي إتش بي/جافا سكريبت]:كيفية تحديث كلمة التحقق؟

StackOverflow https://stackoverflow.com/questions/1630609

سؤال

أقوم بعرض كلمة التحقق بهذه الطريقة:

<img src="ReturnCaptcha2.php" alt="CAPTCHA" width="100" height="50">

لدي ارتباط تشعبي اسمه "إعادة التحميل" بالقرب منه.أريد أن أذكر ملف PHP هذا دون تحديث صفحتي.من المحتمل أن AJAX متورط في ذلك.الرجاء مساعدة.

هل كانت مفيدة؟

المحلول

لماذا لا تستخدم http://recaptcha.net/ وتوفر على نفسك عناء كل ذلك؟ وسوف مجرد التعامل مع كلمة التحقق بالنسبة لك.

وهنا بعض المعلومات التكامل في PHP واختبار reCAPTCHA: http://www.google.com/recaptcha/plugins/php

وكما ذكرت، فإنه ليس من الصعب على الإطلاق على الاندماج في تطبيق الويب الخاص بك. محاولة إعطائها!

نصائح أخرى

وليس هناك بعض المعلمات مع طابع زمني أو أي شيء، بحيث لا يحصل مؤقتا على طلب؟ لماذا لا استبدال SRC مع شيء من هذا القبيل (باستخدام مسج)

$("img#your-selector").attr("src","ReturnCaptcha2.php?_="+((new Date()).getTime()));
<a href="javascript:;" title="Reload Image" 
   onclick="document.getElementById('captcha').src = 'cimage.php?' + Math.random(); 
   return false">
   <img src="cimage.php" alt="Enter captcha" title="Enter captcha" id="captcha"/>
</a>

وهنا هو رمز يمكنني استخدامها مع Secureimage PHP كلمة التحقق.

<form method="POST">
<input type="hidden" name="PHPSESSID" value="0b21dde61d891cd" />
<img id="siimage" src="securimage_show.php?sid=2ef186788e" alt="CAPTCHA Image" width="126" height="36" /><br />
<input type="text" name="code" /><br />
<a href="#" onclick="document.getElementById('siimage').src = 'securimage_show.php?' + Math.random(); return false">Reload Image</a>
<input type="submit" value="Submit Form" />
</form>

وربما شيء من هذا القبيل:

function reloadCaptcha()
{
img = document.getElementById('captcha');
img.src = 'ReturnCaptcha2.php';
}

وثم إضافة زر مع onclick="reloadCaptcha();".

وأنا لم نجرب ذلك، وأنا لا جورو شبيبة، لذلك لا ندري ما اذا كانت ستعمل.

واحد نهج أكثر يمكن أن يكون استخدام القليل من اياكس .. على زر التحديث الخاص بك اعطاء العمل على النحو التالي: عند _ النقر = جافا سكريبت: reloadCaptcha ()؛

وفي هذه الوظيفة reloadCaptcha، إعطاء الدعوة إلى captcha.php وتحديث شعبة عقد اختبار CAPTCHA مع قيمة الإرجاع. يمكنك بسهولة إرجاع أتش تي أم أل ومن ثم تضمين ذلك في شعبة.

وهنا هو آخر واحد.

ويخلق متغير عمومي. الشيكات من أجل الوجود.

function get_captcha(){
    //get original url refresh
    console.log('captcha requested.');
    if(typeof window.captcha_src === 'undefined'){
        window.captcha_src = document.getElementById('captcha').src;
    }
    document.getElementById('captcha').src = window.captcha_src + '&nocache=' + Math.random();
}

ويمكنك ان تجعل حتى وصلة وإعادة كلمة التحقق الخاصة بك في نفس القسم. إذا لم يكن هناك مشكلة.

وEnter Image Text <input name="captcha" type="text"> <img src="captcha.php" /><br> <a href="captcha.php">Reload Captcha</a><br/>

وبالاضافة الى انني لم تحل هذه المشكلة مع خدعة بسيطة. بدلا من وضع كلمة التحقق في <img> وضع ذلك في <iframe> واستخدام جافا سكريبت لإعادة تحميل عندما تتطلب ش

وجافا سكريبت لتحديث:

function reloadCaptcha()

{
document.getElementById('cap').src='captcha.php';
}

وHTML الفعلية:

و<iframe id="cap" src="captcha.php"></iframe> <input type="button" value="reload" onclick="reloadCaptcha();"/>

وأنه لا يحل مشكلتي، تصحيح لي إذا كنت مخطئا في مكان ما

@ميمي:أنا استخدم نفس الشيء، ولكن مع jquery.إذا كنت بحاجة إلى عدد قليل من capthcas في صفحة واحدة:

<img class="captcha" src="/securimage/securimage_show.php" alt="CAPTCHA Image">
<a class="capcha-refresh" href="#" ><img src="/images/Refresh-icon.png"></a>

وظيفة شبيبة:

$('.capcha-refresh').click(function(a){
       $('.captcha').attr('src','/securimage/securimage_show.php?' + Math.random());
       a.preventDefault();
})
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top