zend framework2 ज़ेंड फ़्रेमवर्क 2: ज़िफ़्कउज़र पर रीकैपटाइच के साथ फिज़लेट को ठीक से कैसे बदलें



zend-framework2 recaptcha (1)

ऐसा मैंने कैसे किया, यह सबसे अच्छा या सही तरीका नहीं हो सकता है, लेकिन यह मेरे लिए काम किया है:

अपने composer.json फ़ाइल में रीकैप्चा सेवा जोड़ें:

"require": {
    "Zendframework/zendservice-recaptcha": "2.*"
}

सेवा प्राप्त करने के लिए कम्पोजर चलाएं फिर आपको रिकैप्टा कॉन्फ़िग निर्दिष्ट करना होगा। मैंने रिकैप्टा कुंजी को संग्रहीत करने के लिए एक अलग कॉन्फ़िग फ़ाइल बनाई है:

//zfcuser.local.php
return array(
    'zfcuser' => array(
        'form_captcha_options' => array(
            'options' => array(
                'privkey' => RECAPTCHA_PRIVATE_KEY,   
                'pubkey'  => RECAPTCHA_PUBLIC_KEY,
            ),
        ),
    ),
); 

फिर ZfcUser कैप्चा कॉन्फ़िग ऐसा दिखता है, यह ZfcUser सेवा का उपयोग करने के लिए कह रहा है:

//zfcuser.global.php
'form_captcha_options' => array(
    'class'   => 'Zend\Captcha\ReCaptcha',
    'options' => array(
        'wordLen'    => 6,
        'expiration' => 300,
        'timeout'    => 300,
     ),
),

संपादित करें:

आपको recaptcha.global.phprecaptcha.global.phprecaptcha.global.php आवश्यकता नहीं है। आप config फाइल को कॉल कर सकते हैं जो आप की तरह पसंद करते हैं क्योंकि यह .global.php या .local.php के साथ समाप्त होता है। आप आमतौर पर चीजों को नाम देते हैं। .local.php जब आप वर्जन नियंत्रण में नहीं चाहते हैं

इस मामले में मैंने फ़ाइल को नाम दिया है zfcuser.local.php क्योंकि ये सब करता है रीकॅप्चा चाबियाँ संग्रहीत करता है और मैं उन्हें वर्जन नियंत्रण में नहीं चाहता था।

सभी कॉन्फ़िग फ़ाइलों को एक सरणी में विलय कर दिया जाता है जब अनुप्रयोग प्रारंभ हो जाता है। तो मूल रूप से, ZfcUser प्रलेखन को अनदेखा करें। या हो सकता है कि कोई और व्यक्ति इसे समझा सकता है कि यह कैसे काम कर सकता है।

कोड का तीसरा ब्लॉक zfcuser.global.php है।

मैं जिलेट के पंजीकरण फॉर्म पर रीकैपटा के साथ डिज़लेट को बदलने की कोशिश कर रहा हूं। यह कैसे पूरा करने के बारे में आंशिक अनुदेश https://github.com/ZF-Commons/ZfcUser#changing-registration-captcha-element पर पाया जा सकता है लेकिन कोई पूर्ण निर्देश मौजूद नहीं है।

README.md फ़ाइल की जांच करने पर यह दो-चरण निर्देश है कि यह कैसे पूरा किया जा सकता है लेकिन फिर भी कैप्चा फॉर्म पर प्रदान किए जाने पर फ़्लिक का उपयोग करता है।

क्या किसी ने सफलतापूर्वक इसे लागू किया है? मुझे वाकई इस पर एक हाथ की ज़रूरत है

अग्रिम में धन्यवाद।

संपादित करें: यहां एक सिद्ध कार्यशील समाधान है जिसे मैंने विकसित किया है:

1. संगीतकार में जोड़ें। जेसन

// Add the lines below under the "require" element:
    "require": {
        "php": ">=5.3.3",
        "zendframework/zendframework": ">2.2.0rc1",
        "zendframework/zendservice-recaptcha": "2.*"

}

2. अपनी प्रोजेक्ट की ZF2 स्थापना निर्देशिका पर जाएं और इस कमांड को निष्पादित करें:

php composer.phar update

3. प्रतिस्थापन / autoload / database.global.php को बदलें या बनाएँ:

<?php
$config = array(
    'dbdriver' => 'pdo',
    'dbhost' => 'localhost',
    'dbport' => '3306',
    'dbname' => 'CHANGEME',
    'dbuser' => 'CHANGEME',
    'dbpass' => 'CHANGEME',
);

return array(
    'service_manager' => array(
        'factories' => array(
            'Zend\Db\Adapter\Adapter' => 'Zend\Db\Adapter\AdapterServiceFactory',
        ),
    ),
    'db' => array(
        'driver'    => 'pdo',
        'dsn'       => 'mysql:dbname='.$config['dbname'].';host='.$config['dbhost'],
        'username'  => $config['dbuser'],
        'password'  => $config['dbpass'],
    ),
);

4: अपने MySQL सर्वर पर इसे निष्पादित करें:

CREATE TABLE `user`
(
    `user_id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `username` VARCHAR(255) DEFAULT NULL UNIQUE,
    `email` VARCHAR(255) DEFAULT NULL UNIQUE,
    `display_name` VARCHAR(50) DEFAULT NULL,
    `password` VARCHAR(128) NOT NULL,
    `state` SMALLINT UNSIGNED
) ENGINE=InnoDB CHARSET="utf8";

5. बनाएँ / बदलें config / autoload / recaptcha.global.php के साथ:

<?php
define('RECAPTCHA_PRIVATE_KEY','CHANGEME');
define('RECAPTCHA_PUBLIC_KEY','CHANGEME');

return array(
    'zfcuser' => array(
        'form_captcha_options' => array(
            'class'   => 'Zend\Captcha\ReCaptcha',
            'options' => array(
                'privkey' => RECAPTCHA_PRIVATE_KEY,
                'pubkey'  => RECAPTCHA_PUBLIC_KEY,
            ),
        ),
    ),

    'di'=> array(
        'instance'=>array(
            'alias'=>array(
                'recaptcha_element' => 'Zend\Form\Element\Captcha',
            ),

            'ZfcUser\Form\Register' => array(
                'parameters' => array(
                    'captcha_element'=>'recaptcha_element',
                ),
            ),
        ),
    ),
);

6. config / autoload / zfcuser.global.php को बदलें / बदलें:

<?php
$settings = array(    
    'enable_registration' => true,
    'enable_username' => true,
    'auth_adapters' => array( 100 => 'ZfcUser\Authentication\Adapter\Db' ),
    'enable_display_name' => false,
    'auth_identity_fields' => array( 'email' ),
    'use_registration_form_captcha' => true,
    'user_login_widget_view_template' => 'zfc-user/user/login.phtml',
);


return array(
    'zfcuser' => $settings,
    'service_manager' => array(
        'aliases' => array(
            'zfcuser_zend_db_adapter' => (isset($settings['zend_db_adapter'])) ? $settings['zend_db_adapter']: 'Zend\Db\Adapter\Adapter',
        ),
    ),
);

7. http://yourdomain.com/user पर जाएं

8. आनंद लें! :)