Hirdetés

Új hozzászólás Aktív témák

  • The DJ

    addikt

    Sziasztok!

    Lenne egy PHP-s gondom, sajnos én ehhez kevés vagyok, de hátha valaki tudna segíteni. Elmagyarázni se biztos, hogy egyszerű lesz, de megpróbálom.

    Adott egy Joomla 1.5-re épülő weboldal, ami alapvetően egy webshop Virtuemart-ra épülve (még az is csak a régi 1.1.6-os verzió). A frissítés sajnos nem opció, mivel rengeteg egyéni funkció került beépítésre az évek során a webshop részbe, szinte minden testre lett már szabva, a sablon is egyedi, stb, tehát azzal kell dolgozni, ami van.

    A probléma: Nagyon sok kamu regisztráció érkezik az utóbbi időben, valószínűleg botok. Ezt megakadályozandó szerettem volna beépíteni egy captcha-t a regisztrációs űrlap aljára. Ezer meg egy variációt próbáltam, a lényeg a lényeg, egy működő megoldást találtam, ez pedig egy OsolCaptcha nevű plugin, ami még direkte a Joomla 1.5-höz lett fejlesztve. Feltettem, bekapcsoltam és rögtön meg is jelent a Captcha a Virtuemart regisztrációs form alján, működött is, volt öröm és boldogság... de sajnos van egy hibája a dolognak, mégpedig az, hogy a checkout minden lépésénél ott van alul, tehát nem csak a regisztrációnál, hanem a szállítási cím választásánál, a fizetési opciók kiválasztásánál, a véglegesítésnél, stb, ez pedig minden, csak nem felhasználóbarát. Annyi lenne a lényeg, hogy a regisztrációs űrlap alján megjelenjen, de a további lépéseknél már ne legyen ott. Próbáltam ismerkedni a captcha plugin működésével és rá is jöttem mi alapján dolgozik. Ez a PHP fájl tartalma, ami a Virtuemart-ba illeszti be a captcha-t automatikusan:

    <?php

    $this->enabledForms['Virtuemart Registration Form'] = array('requestVars' => 'option=com_virtuemart&page=checkout.index',
    'formName' =>"adminForm",
    'ignore_condition' => 'task=logout',
    'tagToPlaceCaptchaBefore' =>'<input type="submit"',
    'verifyOnVars' =>'option=com_virtuemart&func=shopperadd',
    'redirectOnfailure' =>JURI::base()."?page=checkout.index&option=com_virtuemart" ,//JFactory::getURI()->toString(),
    'skipAJAXVerification' => false,
    'isVertical' => false,
    ) ;
    ?>

    Tehát az "adminForm" nevű formot keresi meg az oldalon, ott pedig az "<input type="submit"" rész elé helyezi el a captcha-t. Gondoltam sima ügy, megkeresem Virtuemart-ban ezt az "adminForm" részt és átnevezem a regisztrációs űrlap nevét valami másra, majd a captcha fentebb bemásolt kódjában is átírom a form nevét és így csak azon az egy helyen fog megjelenni. Igen ám, de ez nem kivitelezhető, mivel ez a csodálatos Virtuemart mindent egy form alatt futtat, mégpedig ilyen formában: [link] (csak a releváns részt töltöttem fel pastebinre).

    Tehát látható, hogy a kosárba rakás után az összes szekció az "adminForm" nevű form alatt fut és PHP-vel hívja be az egyes szekciók tartalmát a rendszer, tehát nem tudom kivitelezni az ötletem.

    Biztos nem bonyolult dolog ez, de én nem értek hozzá, úgyhogy hozzátok fordulok. Szóval hogyan lehetne a legegyszerűbben megoldani azt, hogy ez a csodálatos captcha csak a regisztrációs rész alatt jelenjen meg és a többi szekciónál ne?

    Köszönöm a segítséget előre is!

Új hozzászólás Aktív témák