الأسئلة المتكررة


حتى عندما أدخل رمزاً صحيحاً، عركابتشا دائماً تقول بأن الرمز خاطئ

  1. في معالج النموذج، أول سطر في المخطوطة يجب أن يكون:
    1 <?php session_start(); ?>
    إذا كانت هناك أية مخرجات من رموز HTML أو حتى مسافة قبل ابتداء جلسة PHP، عندها لن يفلح التحقق.

  2. ملفات تعريف الارتباط (Cookies) يجب أن تكون مفعلة على متصفح المستخدم، وإلا فلن تفلح عركابتشا في التحقق من الرمز المدخل.

  3. تأكد من سمة الاسم (name) في حقل رمز التحقق في ملف HTML، وتأكد من مطابقته للاسم الذي يتم تدقيقه في عملية التحقق. إذا كان نموذجك يستخدم:
    1 <input type="text" name="captcha_code" />
    عندها، فإن مرجعية معالج النموذج يجب أن تكون $_POST['captcha_code'] عند استدعاء وظيفة $ArCaptcha->validate().

  4. إذا كانت أسماء المتغيرات نفسها، إذن قد تكون المشكلة في جلسة PHP (session) التي تم استخدامها لحفظ رمز لتحقق الخاص بالمستخدم. من الممكن أن الجلسة لم يتم ابتداؤها أصلاً، أو أن اسم الجلسة المستخدم في ملف GetArCaptcha.php مختلف عن اسم الجلسة المستخدم في مخطوطة التحقق. من الشائع لمنصات البرمجيات (مثل المنتديات وأنظمة إدارة المحتوى ومعالجات النماذج وبيئات العمل مثل Yii وغيرها) استخدام اسم جلسة مختلف عن اسم الجلسة الافتراضي لـ PHP. في هذه الحالة، يتوجب عليك تحديد اسم الجلسة المستخدم في البرمجية واستخدامه في ملف GetArCaptcha.php.

    يمكن تمرير اسم جلسة خاص "غير افترضي" لعركابتشا، وبالتالي يمكنها مشاركة نفس الجلسة مع أي منصة برمجيات أخرى باستخدام الرمز التالي:
    1 $img->session_name = 'اسم_الجلسة';
    ملاحظة: عركابتشا لن تدمر أي جلسة، وبالتالي، فهي آمنة للاستخدام في الأنظمة التي تستخدم الجلسات في حفظ بيانات المستخدم؛ عركابتشا فقط تغير قيمة المتغير الخاص بها.

يظهر خطأ يقول “Call to undefined function imagecreatetruecolor()” في ملف ArCaptcha.php

ظهور هذا الخطأ يعني بأن PHP لا يحتوي دعم GD، والذي هو من المتطلبات لإنشاء صورة في PHP. للأسف، في حال ظهور هذا الخطأ فإن عركابتشا لن تعمل.
لقد تم تضمين دعم GD في PHP منذ الإصدار 4.3، بينما بعض إصدارات PHP القديمة لا تدعمه. في هذه الحال، يتوجب عليك التواصل مع مستضيف الويب الخاص بك وطلب دعم GD لـ PHP، أو تضمين دعم GD إذا كنت على الخادم الخاص بك.

للمزيد من المعلومات، راجع صفحة تنصيب وإعداد دعم GD على php.net.

يظهر خطأ يقول “Call to undefined function imagettftext()” في ملف ArCaptcha.php

نسخة PHP الموجودة لديك لا تحتوي دعم FreeType، يجب عليك تنصيب دعم FreeType لتتمكن من استخدام خطوط النوع الحقيقي (TTF).

صورة كابتشا تظهر، ولكن من غير رمز تحقق على الصورة

هناك خطأ برمجيّ معروف في إصدار PHP 5.3.2 والذي من الممكن أن يتسبب في هذه المشكلة . إذا كنت تستخدم إصدار PHP 5.3.2، قد تحتاج إلى الترقية إلى إصدار أحدث.
في حال ظهرت الصورة ولم يظهر رمز التحقق عليها فهذا يعني بأن مسار ملف الخط غير صحيح أو لا يمكن الوصول له. عند استخدام نوع خط آخر، يُحبّذ أن تُضَمّن مسار مطلق وكامل (absolute path) لملف الخط، إذا لم تكن متأكداً من المسار الكامل، يمكنك استخدام:
1 $img->font_file = $_SERVER['DOCUMENT_ROOT'] . '/fonts/font.ttf';
على سبيل المثال، طبعاً اسم المجلد واسم الملف يختلفان بحسب مكان الملف لديك.

رمز التحقق يظهر على شكل مستطيلات

هذه المشكلة تعني أحد الأمرين لا ثالث لهما، إما أن الخط الذي تستخدمه لا يدعم اللغة العربية، وإما أنك تستخدم رمز تحقق ثابت باللغة الإنجليزية والخط الذي تستخدمه لا يدعمها.

الصورة لا تظهر في صفحة HTML

تأكد من أن الرابط الذي حددته في وسم الصورة يؤشر لمكان ملف GetArCaptcha.php الصحيح. للتأكيد، استخدم العنوان الكامل للملف (مثلاً: http://yoursite.com/ArCaptcha/GetArCaptcha.php).
وللتأكد من عدم وجود أية مشاكل أخرى، افتح الملف (GetArCaptcha.php) في تبويب جديد باستخدام العنوان الكامل له.

الصورة لا تظهر ولا حتى أي شيء عندما أذهب لرابط GetArCaptcha.php

قد يكون هناك خطأ فادح (fatal error) حدث في PHP والذي منع الصورة من الظهور، وPHP لديك لم يتم إعداده لإظهار تقارير الأخطاء.
لتمكين إظهار الأخطاء في PHP، قم بإلغاء التعليق عن السطر التالي في ملف GetArCaptcha.php:
1 error_reporting(E_ALL); ini_set('display_errors', 1);
بعد حفظ الملف، افتح عنوان ملف GetArCaptcha.php في المتصفح لمعرفة الخطأ الذي منع الصورة من الظهور.

يظهر خطأ يقول “Warning: include(ArCaptcha.php) [function.include]: failed to open stream: No such file…”

هذا الخطأ يعني بأنّ المسار المستخدم لملف ArCaptcha.php في جملة التّضمين include غير صحيح. يتوجّب عليك في هذه الحالة تصحيح المسار ليؤشر على عنوان الملف الصحيح. طبعاً المسار يختلف حسب إعدادات الخادم ونظام التشغيل. استخدم المسار المطلق والكامل (absolute path)، حيث أنّ:
1 include_once '/ArCaptcha/ArCaptcha.php';
لن يكون صحيحاً في 99% من الحالات، استخدم:
1 include_once $_SERVER['DOCUMENT_ROOT'] . '/ArCaptcha/ArCaptcha.php';
إذا كنت وضعت مجلد عركابتشا في جذر دليل الويب (root of the web directory).
× لتجربة أفضل في الموقع، ننصحك باستخدام متصفح Google Chrome أو Mozilla Firefox