Java/JSP এর সাথে reCAPTCHA ব্যবহার করা হচ্ছে

গুরুত্বপূর্ণ : reCAPTCHA API-এর সংস্করণ 1.0 আর সমর্থিত নয়, অনুগ্রহ করে সংস্করণ 2.0-এ আপগ্রেড করুন৷ আরও জানুন

reCAPTCHA জাভা লাইব্রেরি আপনার জাভা-ভিত্তিক ওয়েবসাইটে একটি ক্যাপচা রাখার একটি সহজ উপায় প্রদান করে, এটি আপনাকে বটগুলিকে অপব্যবহার করা থেকে বিরত করতে সহায়তা করে৷ লাইব্রেরি reCAPTCHA এপিআই মোড়ানো।

Java/JSP-এর সাথে reCAPTCHA ব্যবহার করতে, আপনি এখানে reCAPTCHA Java লাইব্রেরি ডাউনলোড করতে পারেন (Soren এর অবদান) এবং এটি আনজিপ করুন। সাধারণত আপনার যা প্রয়োজন হবে তা হল জার ফাইল (recaptcha4j-XXXjar), যা আপনাকে এমন জায়গায় কপি করতে হবে যেখানে এটি আপনার জাভা অ্যাপ্লিকেশন দ্বারা লোড করা যেতে পারে। উদাহরণস্বরূপ, যদি আপনি JSP চালানোর জন্য Tomcat ব্যবহার করেন, আপনি WEB-INF/lib/ নামে একটি ডিরেক্টরিতে জার ফাইলটি রাখতে পারেন।

দ্রুত শুরু

আপনি আপনার API কীগুলির জন্য সাইন আপ করার পরে এবং reCAPTCHA Java লাইব্রেরি ডাউনলোড করার পরে, নীচে আপনার সাইটে reCAPTCHA ইনস্টল করার প্রাথমিক নির্দেশাবলী রয়েছে৷

ক্লায়েন্ট সাইড (কিভাবে ক্যাপচা ইমেজ দেখানো যায়)

আপনি reCAPTCHA উইজেট প্রদর্শন করতে Java প্লাগইন ব্যবহার করতে চাইলে, আপনাকে উপযুক্ত reCAPTCHA ক্লাস ইম্পোর্ট করতে হবে। JSP-তে, আপনি ফর্ম উপাদানের সাথে ফাইলের শীর্ষের কাছে এই লাইনগুলি ঢোকানোর মাধ্যমে এটি করবেন যেখানে reCAPTCHA উইজেটটি প্রদর্শিত হবে:

    <%@ page import="net.tanesha.recaptcha.ReCaptcha" %>
    <%@ page import="net.tanesha.recaptcha.ReCaptchaFactory" %>

তারপর, আপনাকে reCAPTCHA-এর একটি উদাহরণ তৈরি করতে হবে:

    ReCaptcha c = ReCaptchaFactory.newReCaptcha("your_public_key", "your_private_key", false);

অবশেষে, reCAPTCHA উইজেট প্রদর্শনের জন্য HTML নিম্নলিখিত ফাংশন কল থেকে পাওয়া যেতে পারে:

    c.createRecaptchaHtml(null, null)

সুতরাং, JSP-তে আপনার কোডটি এইরকম দেখতে পারে:

    <%@ page import="net.tanesha.recaptcha.ReCaptcha" %>
    <%@ page import="net.tanesha.recaptcha.ReCaptchaFactory" %>

    <html>
      <body>
        <form action="" method="post">
        <%
          ReCaptcha c = ReCaptchaFactory.newReCaptcha("your_public_key", "your_private_key", false);
          out.print(c.createRecaptchaHtml(null, null));
        %>
        <input type="submit" value="submit" />
        </form>
      </body>
    </html>

your_public_key এবং your_private_key আপনার API কী মান দিয়ে প্রতিস্থাপন করতে ভুলবেন না।

সার্ভার সাইড (ব্যবহারকারী সঠিক উত্তর দিলে কিভাবে পরীক্ষা করবেন)

যে অ্যাপ্লিকেশনটি আপনার ফর্ম যাচাই করে, আপনাকে প্রথমে প্রয়োজনীয় reCAPTCHA ক্লাস ইম্পোর্ট করতে হবে:

    import net.tanesha.recaptcha.ReCaptchaImpl;
    import net.tanesha.recaptcha.ReCaptchaResponse;

এর পরে, আপনাকে কোডটি সন্নিবেশ করতে হবে যা ব্যবহারকারীর দ্বারা প্রবেশ করা reCAPTCHA সমাধান যাচাই করে৷ নীচের উদাহরণটি (জেএসপিতে) দেখায় কিভাবে এটি করা যেতে পারে:

    <%@ page import="net.tanesha.recaptcha.ReCaptchaImpl" %>
    <%@ page import="net.tanesha.recaptcha.ReCaptchaResponse" %>

    <html>
      <body>
      <%
        String remoteAddr = request.getRemoteAddr();
        ReCaptchaImpl reCaptcha = new ReCaptchaImpl();
        reCaptcha.setPrivateKey("your_private_key");
String challenge = request.getParameter("recaptcha_challenge_field"); String uresponse = request.getParameter("recaptcha_response_field"); ReCaptchaResponse reCaptchaResponse = reCaptcha.checkAnswer(remoteAddr, challenge, uresponse); if (reCaptchaResponse.isValid()) { out.print("Answer was entered correctly!"); } else { out.print("Answer is wrong"); } %> </body> </html>

উপরের কোডে:

  • remoteAddr হল ব্যবহারকারীর IP ঠিকানা (যা reCAPTCHA সার্ভারে পাঠানো হয়)
  • uresponse এ reCAPTCHA চ্যালেঞ্জের ব্যবহারকারীর উত্তর রয়েছে।
  • গুরুত্বপূর্ণ: DNS ক্যাশিং

    জাভাতে একটি বিরক্তিকর সমস্যা রয়েছে যার কারণে আপনার সার্ভার এবং reCAPTCHA এর মধ্যে সংযোগ প্রতি কয়েক মাসে বিঘ্নিত হতে পারে এবং এটি ঘটলে reCAPTCHA আপনার সাইটে কাজ করা বন্ধ করে দেবে। এটি কিভাবে ঠিক করবেন তা দেখতে নীচে পড়ুন।

    ডিফল্টরূপে জাভা ভার্চুয়াল মেশিন (JVM) টাইম-টু-লাইভ (TTL) মান ব্যবহার করার পরিবর্তে সমস্ত ডিএনএস লুকআপকে চিরতরে ক্যাশ করে যা প্রতিটি হোস্টের ডিএনএস রেকর্ডে নির্দিষ্ট করা থাকে। আপনারা যারা এটি জানেন না তাদের জন্য, একটি DNS সার্ভারে পাঠানো একটি অনুরোধ হল একটি DNS সার্ভার যা একটি পাঠযোগ্য হোস্টনামকে একটি আইপি ঠিকানায় রূপান্তর করে। উদাহরণস্বরূপ, এটি www.recaptcha.net কে IP ঠিকানা 69.12.97.164 এ রূপান্তর করে। এটি অবশ্যই এর চেয়ে অনেক বেশি জটিল, এবং আপনি যদি আরও জানতে চান, ডিএনএস-এ উইকিপিডিয়ার এন্ট্রি একটি ভাল সূচনা পয়েন্ট।

    যদিও ঘন ঘন না, reCAPTCHA সার্ভার IP ঠিকানা পরিবর্তন করতে পারে। যেহেতু Java ডিএনএস লুকআপগুলিকে চিরতরে ক্যাশ করে, এটি আপনার সার্ভার এবং reCAPTCHA-এর মধ্যে সংযোগ বন্ধ করে দিতে পারে যখন reCAPTCHA IP ঠিকানা পরিবর্তন হয়। যদি এটি ঘটে থাকে, আপনার JVM পুনরায় চালু করা (যেমন, Tomcat পুনরায় চালু করা) সমস্যাটি সমাধান করতে পারে কারণ এটি একটি নতুন DNS লুকআপ সৃষ্টি করে। যাইহোক, আপনি সম্ভবত প্রতি কয়েক মাসে একবার আপনার JVM রিস্টার্ট করতে চান না যখনই আপনার সাইট ব্রেক হয় কারণ reCAPTCHA সার্ভারগুলি IP ঠিকানা পরিবর্তন করেছে।

    এই সমস্যার সমাধান করতে, আপনি আপনার অ্যাপ-সার্ভারে -Dsun.net.inetaddr.ttl=30 পাস করতে পারেন (এটি জাভাকে 30 সেকেন্ডের জন্য শুধুমাত্র DNS ক্যাশে করতে বলে)। উইন্ডোজের জন্য টমক্যাটে, এটি করা যেতে পারে

    1. টমক্যাট বন্ধ করুন
    2. টমক্যাট\বিনে যান
    3. Tomcat5w.exe চালান
    4. জাভা ট্যাবে যান
    5. জাভা বিকল্প বিভাগে জাভা সম্পত্তি যোগ করুন: -Dsun.net.inetaddr.ttl=30
    6. প্রস্থান করুন
    7. টমক্যাট শুরু করুন

    Linux বা MacOS X-এর জন্য Tomcat-এ, আপনাকে কমান্ড লাইনে নিম্নলিখিত কমান্ডটি চালাতে হবে (এবং তারপর Tomcat পুনরায় চালু করুন):

        export JAVA_OPTS="$JAVA_OPTS -Dsun.net.inetaddr.ttl=30"
    

    এখানে এই সমস্যা সম্পর্কে আরো ব্যাখ্যা একটি নিবন্ধ আছে .

    আরও পড়া

  • চেহারা এবং অনুভূতি কাস্টমাইজ করা
  • টিপস এবং নির্দেশিকা
  • সমস্যা সমাধান