• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
کد رفرش برای کپچا
#11
نقل قول:وقتی کپچا رو رفرش میکنه دیگه میکروتایم از قبل ست شده و تغییری نمیکنه لذا باید از اون متغییر رندم جاوااسکریپت هم استفاده کرد ضرری نداره

آها، حالا که اصلاح شد فهمیدم Blush
خوب microtime رو پاک کن بره Big Grin
از getTime توی جاوااسکریپت هم میشه به جای microtime استفاده کرد.

کد:
new Date().getTime()
هر چیزی که در جستن آنی آنی...
غایب
  پاسخ
تشکر شده توسط :
#12
کد پی‌اچ‌پی:
<img src="captcha/captcha.php?<?php echo microtime(); ?>" /> 
من تا حالا اینطوری ندیده بودم که به src یک زمانی هم اختصاص داده بشه ...
یعنی هر دفعه یک عدد منحصر به فرد به src داده میشه ؟ این چطوری کار میکنه ؟ و مفهومش چیه ؟
کد پی‌اچ‌پی:
<img src="captcha/captcha.php?123356788" /> 
<
img src="captcha/captcha.php?5589897897 " /> 
یعنی ما src رو هر بار متفاوت میکنیم تا با قبلی یکی نباشه ؟
اگه میشه توضیح بدین کش مرورگر چطور اتفاق میفته و کجاها باید بهش توجه کنیم
آرام باش ؛ توكل كن ؛ تفكر كن و سپس آستينها را بالا بزن , آنگاه دستان خداوند را خواهي ديد كه زودتر از تو دست به كار شده است.امام علي عليه السلام.
  پاسخ
تشکر شده توسط :
#13
شما داخل captcha.php با استفاده از تابع header در نهایت یک تصویرو به سمت مرورگر ارسال میکنی.
خب، این تصویر مثل باقی محتویات یک صفحه ی وب توسط مرورگر کش میشه.

نقل قول:کش مرورگر چطور اتفاق میفته و کجاها باید بهش توجه کنیم
موضوع اینجاست که اسم تصویر و محل ذخیره شده اون ثابت هست. پس مرورگر به جای اینکه پاسخ درستی به درخواست کاربر بده میاد و از کش اون صفحه استفاده میکنه. که البته کار درستی هست.

ما برای جلوگیری از این کار با استفاده از یک رشته ی منحصر به فرد توی هر بار اجرای کدمون در واقع اسم تصویرمون رو متفاوت با تصویر قبلی میکنیم.
البته این کار جلوی کش تصویرمون رو نمیگیره، در واقع انگار شما توی هر بار اجرا یک تصویر جدید رو ارسال کردین.
هر چیزی که در جستن آنی آنی...
غایب
  پاسخ
تشکر شده توسط : Reza pary_daryayi
#14
(۱۳۹۲ مهر ۳۰, ۰۵:۳۳ ب.ظ)Ehsan نوشته: index.php
کد:
<div id="captchaCode" style="width:110px; height:40px;">
    <img src="captcha/captcha.php?<?php echo microtime(); ?>" />
</div>
<input type="text" class="captchaCode"/>
<img src="captcha/image/re.png" id="reCaptcha"/>

jquery
کد:
$('#reCaptcha').click(function(){
    $.post('captcha/view.php',{},function(data){
        $('#captchaCode').html(data);
        $('.captchaCode').val('');
    });        
});

view.php
کد:
<img src="captcha/captcha.php?<?php echo microtime(); ?>" />

من دو تا مشکل با این کد دارم .
1 - این کد چکار میکنه دقیقا
کد:
$.post('captcha/view.php',{},function(data){

و اینکه چرا در view.php گذاشتین ؟
کد:
<img src="captcha/captcha.php?<?php echo microtime(); ?>" />
--------------------
من به این شکل نوشتم ولی نتیجه ی کپچا بهم ریخته هستش .
البته view.php هم ندارم.
کد پی‌اچ‌پی:
<!doctype html>
<
html>
<
head>
<
meta charset="UTF-8" />
<
title>Captcha</title>
<
script type="text/javascript" src="jquery-1.8.2.js" ></script>
<
script>
$(
document).ready(function(){
    $(
'#reCaptcha').click(function(){
        $.
post('ap-catpcha/ap-captcha.php',{},function(data){
            $(
'#captchaCode').html(data);
            $(
'.captchaCode').val('');
        });        
    });
});
</
script>
</
head>
<
body>
<
form action="result.php" method="post">
    <
div id="captchaCode" style="width:110px; height:40px; background-color:#FF9933">
     <
img src="ap-catpcha/ap-captcha.php?<?php echo microtime(); ?>" id="imgCaptcha" />
    </
div>
    <
input type="text" name="captcha"  class="captchaCode"/>
     <
img src="refresh.jpg" width="50" height="50"  style="cursor:pointer" id="reCaptcha"/>
    <
input type="submit" value="check" name="submit"/>
</
form>
</
body>
</
html
آرام باش ؛ توكل كن ؛ تفكر كن و سپس آستينها را بالا بزن , آنگاه دستان خداوند را خواهي ديد كه زودتر از تو دست به كار شده است.امام علي عليه السلام.
  پاسخ
تشکر شده توسط :
#15
احسان یه نمه جنگولک بازی در آورده Big Grin
شما دقیقا این کد زیر رو کپی کن و استفاده کن .
آدرس فایل کپچارو درست کن فقط ، همین Big Grin
کد:
<div id=code>
  
</div>
<script>
document.getElementById('code').innerHTML = "<img alt='wait ...' src='captcha/index.php' />";
function reload()
{
    var rand = Math.floor(Math.random()*300) ;
    
    document.getElementById('code').innerHTML = "<img alt='wait ...' src='captcha/index.php?" + rand + "' />";
}
</script>
<a  onclick='reload()' >Reload</a>
  پاسخ
تشکر شده توسط : pary_daryayi undefined
#16
ممنون . اینطور نوشتم درست شد:
کد پی‌اچ‌پی:
<form action="result.php" method="post">
    <
div id="captchaCode" style="width:110px; height:40px; background-color:#FF9933">
    <
img src="ap-catpcha/ap-captcha.php?<?php echo microtime(); ?>" id="imgCaptcha" />
    <
script>
    
    function 
reload()
    {
        var 
rand Math.floor(Math.random()*300) ;
        
document.getElementById('captchaCode').innerHTML "<img alt='wait ...'     src='ap-catpcha/ap-captcha.php?" rand "' />";
    }
    </
script>
    </
div>
    <
input type="text" name="captcha"  class="captchaCode"/>
     <
img src="refresh.jpg" width="50" height="50"  style="cursor:pointer" id="reCaptcha"     onclick='reload()'/>
    <
input type="submit" value="check" name="submit"/>
</
form
آرام باش ؛ توكل كن ؛ تفكر كن و سپس آستينها را بالا بزن , آنگاه دستان خداوند را خواهي ديد كه زودتر از تو دست به كار شده است.امام علي عليه السلام.
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان