Jump to content
ruden

Google reCAPTCHA v3

Recommended Posts

here is   admin/includes/application_top.php

<?php
/*
  $Id$

  osCommerce, Open Source E-Commerce Solutions
  http://www.oscommerce.com

  Copyright (c) 2014 osCommerce

  Released under the GNU General Public License
*/

// Start the clock for the page parse time log
  define('PAGE_PARSE_START_TIME', microtime());

// Set the level of error reporting
  error_reporting(E_ALL & ~E_NOTICE);
 
  if (defined('E_DEPRECATED')) {
    error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
  }

// check support for register_globals
  if (function_exists('ini_get') && (ini_get('register_globals') == false) && (PHP_VERSION < 4.3) ) {
    exit('Server Requirement Error: register_globals is disabled in your PHP configuration. This can be enabled in your php.ini configuration file or in the .htaccess file in your catalog directory. Please use PHP 4.3+ if register_globals cannot be enabled on the server.');
  }

// load server configuration parameters
  if (file_exists('includes/local/configure.php')) { // for developers
    include('includes/local/configure.php');
  } else {
    include('includes/configure.php');
  }

// Define the project version --- obsolete, now retrieved with tep_get_version()
  define('PROJECT_VERSION', 'osCommerce Online Merchant v2.3');

// some code to solve compatibility issues
  require('includes/functions/compatibility.php');

// set the type of request (secure or not)
  $request_type = (getenv('HTTPS') == 'on') ? 'SSL' : 'NONSSL';

// set php_self in the local scope
  $req = parse_url($_SERVER['SCRIPT_NAME']);
  $PHP_SELF = substr($req['path'], ($request_type == 'SSL') ? strlen(DIR_WS_HTTPS_ADMIN) : strlen(DIR_WS_ADMIN));

// Used in the "Backup Manager" to compress backups
  define('LOCAL_EXE_GZIP', 'gzip');
  define('LOCAL_EXE_GUNZIP', 'gunzip');
  define('LOCAL_EXE_ZIP', 'zip');
  define('LOCAL_EXE_UNZIP', 'unzip');

// include the list of project database tables
  require('includes/database_tables.php');

// Define how do we update currency exchange rates
// Possible values are 'oanda' 'xe' 'fixer' or ''
// fixer is the lastest added, more details at http://fixer.io
  define('CURRENCY_SERVER_PRIMARY', 'fixer');
  define('CURRENCY_SERVER_BACKUP', '');

// include the database functions
  require('includes/functions/database.php');

// make a connection to the database... now
  tep_db_connect() or die('Unable to connect to database server!');

// set application wide parameters
  $configuration_query = tep_db_query('select configuration_key as cfgKey, configuration_value as cfgValue from ' . TABLE_CONFIGURATION);
  while ($configuration = tep_db_fetch_array($configuration_query)) {
    define($configuration['cfgKey'], $configuration['cfgValue']);
  }

// define our general functions used application-wide
  require('includes/functions/general.php');
  require('includes/functions/html_output.php');

// initialize the logger class
  require('includes/classes/logger.php');

// include shopping cart class
  require('includes/classes/shopping_cart.php');

// define how the session functions will be used
  require('includes/functions/sessions.php');

// set the cookie domain
  $cookie_domain = (($request_type == 'NONSSL') ? HTTP_COOKIE_DOMAIN : HTTPS_COOKIE_DOMAIN);
  $cookie_path = (($request_type == 'NONSSL') ? HTTP_COOKIE_PATH : HTTPS_COOKIE_PATH);

// set the session name and save path
  tep_session_name('osCAdminID');
  tep_session_save_path(SESSION_WRITE_DIRECTORY);

// set the session cookie parameters
   if (function_exists('session_set_cookie_params')) {
    session_set_cookie_params(0, $cookie_path, $cookie_domain);
  } elseif (function_exists('ini_set')) {
    ini_set('session.cookie_lifetime', '0');
    ini_set('session.cookie_path', $cookie_path);
    ini_set('session.cookie_domain', $cookie_domain);
  }

  @ini_set('session.use_only_cookies', (SESSION_FORCE_COOKIE_USE == 'True') ? 1 : 0);

// lets start our session
  tep_session_start();

  if ( (PHP_VERSION >= 4.3) && function_exists('ini_get') && (ini_get('register_globals') == false) ) {
    extract($_SESSION, EXTR_OVERWRITE+EXTR_REFS);
  }

// set the language
  if (!tep_session_is_registered('language') || isset($_GET['language'])) {
    if (!tep_session_is_registered('language')) {
      tep_session_register('language');
      tep_session_register('languages_id');
    }

    include('includes/classes/language.php');
    $lng = new language();

    if (isset($_GET['language']) && tep_not_null($_GET['language'])) {
      $lng->set_language($_GET['language']);
    } else {
      $lng->get_browser_language();
    }

    $language = $lng->language['directory'];
    $languages_id = $lng->language['id'];
  }

// redirect to login page if administrator is not yet logged in
  if (!tep_session_is_registered('admin')) {
    $redirect = false;

    $current_page = $PHP_SELF;

// if the first page request is to the login page, set the current page to the index page
// so the redirection on a successful login is not made to the login page again
    if ( ($current_page == 'login.php') && !tep_session_is_registered('redirect_origin') ) {
      $current_page = 'index.php';
      $_GET = array();
    }

    if ($current_page != 'login.php') {
      if (!tep_session_is_registered('redirect_origin')) {
        tep_session_register('redirect_origin');

        $redirect_origin = array('page' => $current_page,
                                 'get' => $_GET);
      }

// try to automatically login with the HTTP Authentication values if it exists
      if (!tep_session_is_registered('auth_ignore')) {
        if (isset($_SERVER['PHP_AUTH_USER']) && !empty($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW']) && !empty($_SERVER['PHP_AUTH_PW'])) {
          $redirect_origin['auth_user'] = $_SERVER['PHP_AUTH_USER'];
          $redirect_origin['auth_pw'] = $_SERVER['PHP_AUTH_PW'];
        }
      }

      $redirect = true;
    }

    if (!isset($login_request) || isset($_GET['login_request']) || isset($_POST['login_request']) || isset($_COOKIE['login_request']) || isset($_SESSION['login_request']) || isset($_FILES['login_request']) || isset($_SERVER['login_request'])) {
      $redirect = true;
    }

    if ($redirect == true) {
      tep_redirect(tep_href_link('login.php', (isset($redirect_origin['auth_user']) ? 'action=process' : '')));
    }

    unset($redirect);
  }

// include the language translations
  $_system_locale_numeric = setlocale(LC_NUMERIC, 0);
  require('includes/languages/' . $language . '.php');
  setlocale(LC_NUMERIC, $_system_locale_numeric); // Prevent LC_ALL from setting LC_NUMERIC to a locale with 1,0 float/decimal values instead of 1.0 (see bug #634)

  $current_page = basename($PHP_SELF);
  if (file_exists('includes/languages/' . $language . '/' . $current_page)) {
    include('includes/languages/' . $language . '/' . $current_page);
  }

// define our localization functions
  require('includes/functions/localization.php');

// Include validation functions (right now only email address)
  require('includes/functions/validations.php');

// setup our boxes
  require('includes/classes/table_block.php');
  require('includes/classes/box.php');

// initialize the message stack for output messages
  require('includes/classes/message_stack.php');
  $messageStack = new messageStack;

// split-page-results
  require('includes/classes/split_page_results.php');

// entry/item info classes
  require('includes/classes/object_info.php');

// email classes
  require('includes/classes/mime.php');
  require('includes/classes/email.php');

// file uploading class
  require('includes/classes/upload.php');

// action recorder
  require('includes/classes/action_recorder.php');

// calculate category path
  if (isset($_GET['cPath'])) {
    $cPath = $_GET['cPath'];
  } else {
    $cPath = '';
  }

  if (tep_not_null($cPath)) {
    $cPath_array = tep_parse_category_path($cPath);
    $cPath = implode('_', $cPath_array);
    $current_category_id = end($cPath_array);
  } else {
    $current_category_id = 0;
  }

// initialize configuration modules
  require('includes/classes/cfg_modules.php');
  $cfgModules = new cfg_modules();

// the following cache blocks are used in the Tools->Cache section
// ('language' in the filename is automatically replaced by available languages)
  $cache_blocks = array(array('title' => TEXT_CACHE_CATEGORIES, 'code' => 'categories', 'file' => 'categories_box-language.cache', 'multiple' => true),
                        array('title' => TEXT_CACHE_MANUFACTURERS, 'code' => 'manufacturers', 'file' => 'manufacturers_box-language.cache', 'multiple' => true),
                        array('title' => TEXT_CACHE_ALSO_PURCHASED, 'code' => 'also_purchased', 'file' => 'also_purchased-language.cache', 'multiple' => true)
                       );
                       
  require(DIR_FS_CATALOG . 'includes/classes/hooks.php');
  $OSCOM_Hooks = new hooks('admin');
  $OSCOM_Hooks->register(basename($PHP_SELF, '.php'));

 

Share this post


Link to post
Share on other sites
7 hours ago, tony34567 said:

[Mon Apr 06 01:49:38 2020] [error] [client xx.xx.xx.xx] PHP Fatal error:  require(): Failed opening required 'DIR_WS_INCLUDEStemplate_top.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/vhosts/mywebsite/mywebsite.co.uk/httpdocs/admin/modules_hooks.php on line 17, referer: http://mywebsite.co.uk/admin/administrators.php

This error says that your module_hooks page is trying to use a DIR_WS_INCLUDES constant that has not been defined. 

You could try adding

define('DIR_WS_INCLUDES', 'includes/');

At the top of the module_hooks.php page (even before it includes application_top.php but anywhere before template_top.php would probably do).  Of course, that might just get it to the next error. 


Always back up before making changes.

Share this post


Link to post
Share on other sites
Posted (edited)
6 hours ago, ecartz said:

This error says that your module_hooks page is trying to use a DIR_WS_INCLUDES constant that has not been defined. 

You could try adding


define('DIR_WS_INCLUDES', 'includes/');

At the top of the module_hooks.php page (even before it includes application_top.php but anywhere before template_top.php would probably do).  Of course, that might just get it to the next error. 

i added as you suggest and it works . Its a great help thanks to you and @ruden

Now i am going to add recaptchav3. lets see, finger crossed.

admin/module_hooks.php

Copyright (c) 2014 osCommerce

  Released under the GNU General Public License
*/

  define('DIR_WS_INCLUDES', 'includes/');

  require('includes/application_top.php');

  $directory = DIR_FS_CATALOG . 'includes/hooks/';

  require(DIR_WS_INCLUDES . 'template_top.php');
?>

 

Edited by tony34567

Share this post


Link to post
Share on other sites

osCommerce 2.3.4.1 CE
=====================
osCommerce
+ Bootstrap v3 

Just to confirm Hooks and Recaptcha V3 successfully installed and Recaptcha V3 appears on create an account and contact us pages.

i appreciate @ecartz and @ruden for  prompt replies.

I request @ruden  to look into it please.

Thanks

Share this post


Link to post
Share on other sites

@ruden

I tried your contribution on a 2.3.4 BS and it works well but i'm bothered because the shop system hook prevents another contribution from working on my secured working website (the localhost version works !?! )...
This is this one : Store Search with Image (BS) v1.6

It's a shame it looks like an .js script block cause of hook...

Have you got live website where you can test this contribution to let me know if you have issue too during real time search ?

Thank you for help.
 


Osc v2.3.4 BS "custom"
PHP 7.3 compatible (710 modified files => o_O')

Share this post


Link to post
Share on other sites

@ruden

I have got this type of error through Chrome Dev Tools :

Warning: require(//home/xxx/www/ext/modules/content/header/store_search/includes/classes/hooks.php): failed to open stream: Aucun fichier ou dossier de ce type in /home/xxx/www/includes/application_top.php on line 670

 


Osc v2.3.4 BS "custom"
PHP 7.3 compatible (710 modified files => o_O')

Share this post


Link to post
Share on other sites

It's ok, the issue is due to the call of the "application_top" file in the top of "content_search.php" file :

  //get rid of the individual calls for files and replace it with the only one we need, application_top.php
  //from here all other files necessary are also included.
  chdir('../../../../../');

  require('includes/application_top.php');

  include(DIR_WS_LANGUAGES . $language . '/modules/content/header/cm_header_logo_store_search_catmenu_xs.php');

 

So I have created an "alternative application_top" file located in the same directory without the "Hook system" call (at the end of file) :

  //get rid of the individual calls for files and replace it with the only one we need, application_top.php
  //from here all other files necessary are also included.
  chdir('../../../../../');

/// Hook system fix BOF
//  require('includes/application_top.php');
  require('ext/modules/content/header/store_search/application_top_search.php');
/// Hook system fix EOF

  include(DIR_WS_LANGUAGES . $language . '/modules/content/header/cm_header_logo_store_search_catmenu_xs.php');

Now all works well. ^^

Thank you for this easy module @ruben


Osc v2.3.4 BS "custom"
PHP 7.3 compatible (710 modified files => o_O')

Share this post


Link to post
Share on other sites

@ruben

I have installed the module last saturday but a customer tells me that it was unable to create an account sunday...
and today he sent me a message to tell me that it was impossible for him to create the account from Modzilla browser and only IE works for him.

I have tested with Chrome and Opera and it was impossible to me to create an account to (when press the continue button, return to index).

Do you have tested this module with many browsers to be sure it works with them ?
 

Same question to @ecartz and @tony34567 .

Thank you for feedbacks.


Osc v2.3.4 BS "custom"
PHP 7.3 compatible (710 modified files => o_O')

Share this post


Link to post
Share on other sites
Posted (edited)

Well, the tests have been done only on my localhost version but it seems no issue with live website with Chrome...

But Opera not works...

Edited by milerwan

Osc v2.3.4 BS "custom"
PHP 7.3 compatible (710 modified files => o_O')

Share this post


Link to post
Share on other sites

Ok I see, list of compatibility browsers is listed by Google :
- For computer (Windows, Linux, Mac): Chrome, Firefox, Safari, Internet Explorer, Edge
- For mobile: Chrome, Safari, Android (native browser)

So all is clear now. ^^
sorry for inconvenience.


Osc v2.3.4 BS "custom"
PHP 7.3 compatible (710 modified files => o_O')

Share this post


Link to post
Share on other sites
Posted (edited)

Hi Folks,

I am having trouble with this update, trying to display the captcha symbol in my contact_us page. Installed hooks per the contrib, edited application_top.php with the code.. 

// HOOKS
  require(DIR_FS_CATALOG . '/includes/classes/hooks.php');
  $OSCOM_Hooks = new hooks('shop');
 $OSCOM_Hooks->register(basename($PHP_SELF, '.php'));

Same thing with inside the admin interface " new hooks('shop') "

Uploaded all other files. Admin interface shows OK

Quote
shop
contact_us/Recaptcha3.php initReCaptcha
admin

Hooks Directory: /home/xxx/public_html/includes/hooks/

but no captcha on contact_us.php.

Error log is empty. I'm using OsC 2.3.4 BS Edition under php 5.6.4. All seems to be working fine, but the extra code is not being added to the form. What could be wrong?

If it makes any difference, I already had the recaptcha add on working with the previous revision (January?) . Reinstalled the bm_recaptcha box module, replaced the files with the update, and that was it. 

Thank you!

Edited by Krisz1

Share this post


Link to post
Share on other sites

I have installed this on 2.3.4bs quite close to phoenix, easy install, can see the Google box so assume its all working on contact and create account

 

Would think a good addition would be product pages as well, assume it would help with bots scraping, has anyone done this?

 

Regards

 

David


David

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×