Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Demitry

Members
  • Posts

    535
  • Joined

  • Last visited

  • Days Won

    26

Reputation Activity

  1. Like
    Demitry reacted to phi148 in Multi_Vendor_Shipping new thread   
    Thanks.  Yep, found that too.  I'm actually modifying it as we speak :)
  2. Like
    Demitry got a reaction from Gyakutsuki in Mailchimp newsletter Everywhere add on   
    Spam Bot Trap
    Ok, so there are a number of different solutions to use for blocking spam bots from submitting garbage emails to your opt-in form, but the one I decided on was the bait-trap type. That entails creating a couple of fields that spam bots cannot resist,.. then hiding these fields from the human user using CSS.
    I then set up a conditional statement to filter the human user submissions from those of bots. The human submissions are added to the Mailchimp list and the bot submissions end up in the abyss of the digital world of 0’s and 1’s.
    All that, and a fake success message to reinforce the bot that their spam submission was actually added to the site’s email list. Don’t think that today’s bots need a confirmation message? ..never underestimate technology. Today’s spiders & bots are much more sophisticated and can determine when their submission was rejected. And that, may initiate a more sophisticated attempt at submitting spam data.
    I chose to use two types of fields (though one would likely be enough) and some tasty keywords that spam bots cannot help but salivate over.
    This spam bot trap install includes my instructions from a prior post on this forum thread that differentiates the customer success message via the store owner selecting to automatically add that submitted email to the list OR requiring a 2nd tier approval opt-in emailed to the end user. If you choose “pending” for that 2nd tier approval opt-in emailed to the end user, then you likely don’t need this spam bot trap. However, the more hoops you have a customer jump through, the less opt-ins you’ll have.
    The install instructions here are for the BS Edge footer module, however, the code changes are made to support the BS Edge header module as well. To add this to the header module you will need to make additional changes to the header module template (similar to those of the footer module template). I only tested this on the footer module and chose that one because I prefer to have this email opt-in in the footer on my site.
    The following 5 files will require changes. Be sure to BACK-UP your site files before making ANY changes to your site.
    1) /includes/languages/english/modules/header_tags/ht_mailchimp.php
    FIND this line:
    define('MODULES_HEADER_TAGS_MAILCHIMP_SUCCESS_MESSAGE', 'Success! Please click the confirmation link that will be emailed to you shortly.'); REPLACE it with this:
    define('MODULES_HEADER_TAGS_MAILCHIMP_SUCCESS_MESSAGE_PENDING', 'Success! Please click the confirmation link that will be emailed to you shortly.'); define('MODULES_HEADER_TAGS_MAILCHIMP_SUCCESS_MESSAGE_SUBSCRIBED', 'Success! Your information was submitted.'); define('MODULES_HEADER_TAGS_MAILCHIMP_SUCCESS_MESSAGE', 'Success! Your contact information was submitted.'); Note: To make testing easier, I made the success message slightly different for MODULES_HEADER_TAGS_MAILCHIMP_SUCCESS_MESSAGE than that of the .. _SUBSCRIBED message.
     
    2) /includes /modules/header_tags/ht_mailchimp.php
        a) FIND this code:
    function execute() { global $oscTemplate; ADD just after it:
    $email_optin_success = (MODULES_HEADER_TAGS_MAILCHIMP_STATUS_CHOICE == 'pending' ? MODULES_HEADER_TAGS_MAILCHIMP_SUCCESS_MESSAGE_PENDING : MODULES_HEADER_TAGS_MAILCHIMP_SUCCESS_MESSAGE_SUBSCRIBED); // fake success message for bot opt-ins if (isset($_POST['url']) && $_POST['url'] == '' && !isset($_POST['terms_of_use'])) { $alert_type = 'danger'; $alert_msg = MODULES_HEADER_TAGS_MAILCHIMP_ERROR_MESSAGE; } else { $alert_type = 'success'; $alert_msg = MODULES_HEADER_TAGS_MAILCHIMP_SUCCESS_MESSAGE; }  
        b) FIND BOTH instances of this:
    MODULES_HEADER_TAGS_MAILCHIMP_SUCCESS_MESSAGE REPLACE them with this:
    $email_optin_success  
        c) FIND BOTH instances of this:
    resultmessage = \'<div class="alert alert-danger alert-dismissible" role="alert"><button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>' . MODULES_HEADER_TAGS_MAILCHIMP_ERROR_MESSAGE . '</div>\'; // display the message REPLACE them with this:
    resultmessage = \'<div class="alert alert-' . $alert_type . ' alert-dismissible" role="alert"><button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>' . $alert_msg . '</div>\'; // display the message  
        d) FIND BOTH instances of this:
    $(\'#messagehd\').html(resultmessage); // display the message $(\'#fnamehd\').val(""); // reset input field $(\'#lnamehd\').val(""); // reset input field $(\'#emailhd\').val(""); // reset input field REPLACE them with this:
    $(\'#messageft\').html(resultmessage); // display the message $(\'#fnameft\').val(""); // reset input field $(\'#lnameft\').val(""); // reset input field $(\'#urlft\').val(""); // reset input field $(\'#emailft\').val(""); // reset input field  
    3) /includes /modules/content/footer/templates/footer_mailchimp.php
    FIND this code:
    <?php echo $form; if (!empty(MODULES_HEADER_TAGS_MAILCHIMP_LIST_CUSTOMERS) && (MODULE_FOOTER_MAILCHIMP_DISPLAY_NAME == 'True')) { echo tep_draw_input_field('firstname', NULL, 'id="fnamehd" placeholder="' . MODULE_FOOTER_MAILCHIMP_OPTIONAL . ENTRY_FIRST_NAME . '"') . ' '; echo tep_draw_input_field('lastname', NULL, 'id="lnamehd" placeholder="' . MODULE_FOOTER_MAILCHIMP_OPTIONAL . ENTRY_LAST_NAME . '"') . ' '; echo tep_draw_input_field('email', NULL, 'required aria-required="true" id="emailft" placeholder="' . ENTRY_EMAIL_ADDRESS . '"', 'email') . ' '; echo tep_draw_button(MODULE_FOOTER_MAILCHIMP_SUBMIT, 'fa fa-pencil-square-o', null, null, array('params' => 'id="SendButtonft"'), 'btn-success btn-sm'); } elseif (!empty(MODULES_HEADER_TAGS_MAILCHIMP_LIST_ANONYMOUS)) { echo tep_draw_input_field('email', NULL, 'required aria-required="true" id="emailft" placeholder="' . ENTRY_EMAIL_ADDRESS . '"', 'email') . ' '; echo tep_draw_button(MODULE_FOOTER_MAILCHIMP_SUBMIT, 'fa fa-pencil-square-o', null, null, array('params' => 'id="SendButtonft"'), 'btn-success btn-sm') . tep_draw_hidden_field('anonymous', 'anonymous'); } if (MODULE_FOOTER_MAILCHIMP_DISPLAY_PRIVACY == 'True') { echo tep_draw_button(MODULE_FOOTER_MAILCHIMP_PRIVACY, 'fa fa-user', tep_href_link('privacy.php'), null, null, 'btn-info btn-xs pull-right'); } echo $endform; echo '<br><div class="message" id="messageft"></div>'; ?> REPLACE it with this:
    <?php echo $form; if ((MODULES_HEADER_TAGS_MAILCHIMP_LIST_CUSTOMERS != '') && (MODULE_FOOTER_MAILCHIMP_DISPLAY_NAME == 'True')) { echo '<span class="website-url">Website URL:<br /><input type="text" name="url" id="urlft" placeholder="Website URL" /></span>'; echo tep_draw_input_field('firstname', NULL, 'id="fnameft" placeholder="' . MODULE_FOOTER_MAILCHIMP_OPTIONAL . ENTRY_FIRST_NAME . '"') . ' '; echo tep_draw_input_field('lastname', NULL, 'id="lnameft" placeholder="' . MODULE_FOOTER_MAILCHIMP_OPTIONAL . ENTRY_LAST_NAME . '"') . ' '; echo tep_draw_input_field('email', NULL, 'required aria-required="true" id="emailft" placeholder="' . ENTRY_EMAIL_ADDRESS . '"', 'email') . ' '; echo '<div class="accept-email-optin-terms">I accept the <a href="' . tep_href_link('terms_conditions.php') . '">Terms &amp; Conditions</a>: <input type="checkbox" name="terms_of_use" id="termsft" /></div>'; echo tep_draw_button(MODULE_FOOTER_MAILCHIMP_SUBMIT, 'fa fa-pencil-square-o', null, null, array('params' => 'id="SendButtonft"'), 'btn-success btn-sm'); } elseif ((MODULES_HEADER_TAGS_MAILCHIMP_LIST_ANONYMOUS != '')) { echo '<span class="website-url">Website URL:<br /><input type="text" name="url" id="urlft" placeholder="Website URL" /></span>'; echo tep_draw_input_field('email', NULL, 'required aria-required="true" id="emailft" placeholder="' . ENTRY_EMAIL_ADDRESS . '"', 'email') . ' '; echo '<div class="accept-optin-terms">I accept the <a href="' . tep_href_link('terms_conditions.php') . '">Terms &amp; Conditions</a>: <input type="checkbox" name="terms_of_use" id="termsft" /></div>'; echo tep_draw_button(MODULE_FOOTER_MAILCHIMP_SUBMIT, 'fa fa-pencil-square-o', null, null, array('params' => 'id="SendButtonft"'), 'btn-success btn-sm') . tep_draw_hidden_field('anonymous', 'anonymous'); } if (MODULE_FOOTER_MAILCHIMP_DISPLAY_PRIVACY == 'True') { echo tep_draw_button(MODULE_FOOTER_MAILCHIMP_PRIVACY, 'fa fa-user', tep_href_link('privacy.php'), null, null, 'btn-info btn-xs pull-right'); } echo $endform; echo '<br><div class="message" id="messageft"></div>'; ?> Note: if your Term & Conditions (or Terms of Use) file is named differently than terms_conditions.php, change the name of that file to that of your own (2 instances in the code above).
     
    4) /ext/api/mailchimp_v3/subscribe.php
    FIND this code:
    if ( isset($_POST['anonymous'])) { $list_id = MODULES_HEADER_TAGS_MAILCHIMP_LIST_ANONYMOUS; $merge_vars = [ 'FNAME' => '', 'LNAME' => '' ]; } else { $list_id = MODULES_HEADER_TAGS_MAILCHIMP_LIST_CUSTOMERS; $merge_vars = [ 'FNAME' => $_POST['firstname'], 'LNAME' => $_POST['lastname'] ]; } $array = [ 'email_address' => $_POST['email'], 'merge_fields' => $merge_vars, 'status' => MODULES_HEADER_TAGS_MAILCHIMP_STATUS_CHOICE ]; if (MODULES_HEADER_TAGS_MAILCHIMP_STATUS_CHOICE == 'pending') { $status = 'pending'; } else { $status = 'subscribed'; } $MailChimp = new \MailChimp($key); // add the email to your list $result = $MailChimp->post('/lists/' . $list_id . '/members', $array); REPLACE it with this:
    if (isset($_POST['anonymous'])) { $list_id = MODULES_HEADER_TAGS_MAILCHIMP_LIST_ANONYMOUS; $merge_vars = array('FNAME' => '', 'LNAME' => ''); } else { $list_id = MODULES_HEADER_TAGS_MAILCHIMP_LIST_CUSTOMERS; $merge_vars = array('FNAME' => $_POST['firstname'], 'LNAME' => $_POST['lastname']); } $array = array('email_address' => $_POST['email'], 'merge_fields' => $merge_vars, 'status' => MODULES_HEADER_TAGS_MAILCHIMP_STATUS_CHOICE); if (MODULES_HEADER_TAGS_MAILCHIMP_STATUS_CHOICE == 'pending') { $status = 'pending'; } else { $status = 'subscribed'; } $MailChimp = new \MailChimp($key); // add the email to your list if (isset($_POST['url']) && $_POST['url'] == '' && !isset($_POST['terms_of_use'])) { // submit contact info when it is not a bot $result = $MailChimp->post('/lists/' . $list_id . '/members', $array); } else { // when it's a bot, leave out the path and list id $result = $MailChimp->post('', $array); }  
    5) /user.css
    ADD to the end of this file:
    .website-url, .accept-email-optin-terms { position:absolute; left:-20000px; } .accept-email-optin-terms { z-index:-100; } Note: You could add this code contained within the <style></style> tags at the top of the template file (file via #3 above), however, I believe it’s better to keep that CSS code outside of that template file.
     
    To test this feature, you will need to comment-out the CSS code in /user.css file OR, you could hold off adding that code in #5 (which will hide these two fields) until you complete testing the added spam bot-trap feature.
    The footer template form code also has a couple of error fixes same as the subscribed.php file. And I corrected the fields ID’s so that they clear upon submission.
    I tried using the tep_draw_input_field() for the Website URL field, but for some reason, it was not working for me. I have an idea as to why, but just did not want to waste more time fiddling with it.
    If anyone can find a way to improve this, please do so and share it.
    Demitry
     
  3. Like
    Demitry reacted to Gyakutsuki in Mailchimp newsletter Everywhere add on   
    @dimitri
    Thank you for your fix, I recreated a package and will be available soon.
  4. Like
    Demitry got a reaction from Gyakutsuki in Mailchimp newsletter Everywhere add on   
    @Gyakutsuki
    Loic,
    The add-on works with PHP 7.1.7 ...that's what I am running the BS Edge on.
    The fix for the message issue is:
    1) /includes/languages/english/modules/header_tags/ht_mailchimp.php ADD the following two definitions:
    define('MODULES_HEADER_TAGS_MAILCHIMP_SUCCESS_MESSAGE_PENDING', 'Success! Please click the confirmation link that will be emailed to you shortly.'); define('MODULES_HEADER_TAGS_MAILCHIMP_SUCCESS_MESSAGE_SUBSCRIBED', 'Success! Your information was submitted.');  
    2a) /includes/modules/header_tags/ht_mailchimp.php FIND the following code (on line 57):
    function execute() { global $oscTemplate; ADD just below it:
    $email_optin_success = (MODULES_HEADER_TAGS_MAILCHIMP_STATUS_CHOICE == 'pending' ? MODULES_HEADER_TAGS_MAILCHIMP_SUCCESS_MESSAGE_PENDING : MODULES_HEADER_TAGS_MAILCHIMP_SUCCESS_MESSAGE_SUBSCRIBED);  
    2b) in the same file FIND both instances of:
    MODULES_HEADER_TAGS_MAILCHIMP_SUCCESS_MESSAGE and REPLACE them with:
    $email_optin_success  
     
  5. Like
    Demitry got a reaction from raiwa in Product listing   
    @raiwa
    Hi Rainer,
    I solved it! ..and it was not a bug in the code. It was completely my fault. I apologize to you and everyone else following this thread.
    After spending a lot of time trying to find the coding issue in tep_destroy_thumbs_dir(), I looked at tep_cfg_reset_thumbs_cache() and noticed that the $dir value of DIR_FS_CATALOG_IMAGES is for the admin image folder definition.
    After that, I looked at the BootStrap installation document in the addon package and realized that I added those two functions to the /includes/functions/general.php instead of the /admin/includes/functions/general.php file.
    After making this correction I tested and it solved all the issues I was having. ..really sorry, and thank you for your time.
    Demitry
  6. Like
    Demitry reacted to Tsimi in Get 1 Free   
    @Demitry
    So back at home now and just checked.
    That status check is not needed. The code is good as it is at the moment.
    The new functions file is taking care of the expire date issue now.
  7. Like
    Demitry reacted to MrPhil in Database Optimizer   
    What's this "Blu-ray" thing you old geezers keep prattling on about? Don't you watch a movie like everyone else does, by swallowing a pill? Oh wait, there's now a topical cream containing nanoflash chips, but it's facing stiff competition from the clip-on movie earring.
  8. Like
    Demitry got a reaction from MrPhil in Database Optimizer   
    Phil, ...agreed, ..and that's pretty much what I always try to do. Though as for the tables and nested tables, this is legacy osC code and we will likely be poking fun the same way at divs and nested divs at some point in the near future. :)
    The issues I brought up are minor and do not affect the functionality of Jack's code and his fantastic contribution.
  9. Like
    Demitry got a reaction from John W in New UPS XML Shipping Module available   
    Hi,
     
    I want to share my trouble shooting & solution for the dreaded UPS “Rating and Service” error. It could actually be one, or several different issues. I hope this helps others because I spent a lot of time trying to resolve this problem and could not find much on the Internet.
     
    If you’re getting the following error at checkout for UPS, then you should read this post.
     
    Rating and Service 1.0001 0 An unknown error occured while attempting to contact the UPS gateway : Rating and Service 1.0001 0 An unknown error occured while attempting to contact the UPS gateway
     
    The first and easiest step is to check if your UPS User ID and Password still work on the UPS site. UPS deletes non-active accounts after 18 months. So, if you’re using drop-shipping and not shipping anything yourself via UPS, but only providing the UPS rates on your site as a courtesy to the customer, you must log into your UPS account via their site once a year to keep it active. If your account was deleted, you will need to create a new one. The UPS tech support will guide you through it.
     
    If there are no issues with your UPS account & login info, then the next step is to run the debugging script. To do this you have to follow the steps in one of the following files.
     
    /includes/modules/shipping/upsxml.php
     
    If you’re using the Multi-Vendor Shipping (MVS) contribution:
    /includes/modules/vendors_shipping/upsxml.php
     
    Search the contents of the upsxml.php file for “upsxml.log” and follow the directions to create a log file and set file permissions. Then run a test checkout (partial - only to the checkout_shipping.php page). The details of this are explained in this older thread. Much respect goes to Jan Zonjee for his help there.
     
    http://www.oscommerce.com/forums/topic/248356-ups-xml-rates-services-v124-error/
     
    Download the log file and search it for errors. You are likely to have cURL errors. cURL is a command line tool for getting or sending files using URL syntax. It is used by the UPS API gateway in providing real time rates to your store site.
     
    If there are no cURL errors, you should call your hosting company’s tech support and ask them if cURL is compiled into PHP for your account. If it is not, then search the upsxml.php file for “when cURL is not compiled into PHP” and follow those directions to test further.
     
    If you get the cURL [60] error, then there is a line in the upsxml.php file that you can uncomment (on or around line 736 or 811, see below), then save, upload, and do a partial test checkout again. That line is:
     
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
     
    If you get the cURL Error [35]: SSL connect error, then you have entered my world. I contacted UPS tech support and sent them the upsxml.log file, and this was their response:
     
    “The UPS API's no longer support SSL. The UPS API's now support TLS 1.0, 1.1 and 1.2. If your solution is browser based, make sure that TLS 1.2 is enabled in the security settings. If your solution is server based, you will need to write the necessary code to make this change to your security protocol.”
     
    So, if you have an SSL certificate installed for your store, you would have to call your hosting company’s tech support and find out what version of TLS is enabled in the server security settings. Right now, I have an SSL certificate by COMODO and my hosting company has the TLS 1.2 enabled.
     
    Based on that information I found a link that provided the one-line solution that finally fixed my UPS module problem and got rid of that pesky “Rating and Service” error. Here it is:
     
    https://stackoverflow.com/questions/30145089/tls-1-2-not-working-in-curl
     
    And here is the line I had to add to upsxml.php I added it with the other curl_setopt options. You can just search for “curl_setopt” in the upsxml.php
     
    curl_setopt($ch, CURLOPT_SSLVERSION, 6); // Integer NOT string TLS v1.2
     
    Please note: the "6" is relevant to TLS 1.2 ...other versions of TLS require a different number. See the stackoverflow.com link above for what number correlates to your TLS version.
     
    I hope that helps and prevents most of you from wasting as much time as I did in trying to resolve this issue.
     
     
    UPS “Rating and Service”  ERROR SOLUTION SUMMARY:
     1) Login to the UPS site to make sure your account is active and do this at least once a year.
     2) Follow the directions in the upsxml.php file to run a debugging script to write to a log file.
     3) Review the log file for errors:
    If cURL error [60] – uncomment related line (736 or 811) in upsxml.php file If cURL error [35] SSL connect – call your hosting company to find out the version of TLS enabled and then add curl_setopt($ch, CURLOPT_SSLVERSION, 6); to the rest of the curl_setopt options in upsxml.php file. Then change the “6” to the number that correlates with your enabled version of TLS.  
     
    Demitry
  10. Like
    Demitry got a reaction from frankl in New UPS XML Shipping Module available   
    Hi,
     
    I want to share my trouble shooting & solution for the dreaded UPS “Rating and Service” error. It could actually be one, or several different issues. I hope this helps others because I spent a lot of time trying to resolve this problem and could not find much on the Internet.
     
    If you’re getting the following error at checkout for UPS, then you should read this post.
     
    Rating and Service 1.0001 0 An unknown error occured while attempting to contact the UPS gateway : Rating and Service 1.0001 0 An unknown error occured while attempting to contact the UPS gateway
     
    The first and easiest step is to check if your UPS User ID and Password still work on the UPS site. UPS deletes non-active accounts after 18 months. So, if you’re using drop-shipping and not shipping anything yourself via UPS, but only providing the UPS rates on your site as a courtesy to the customer, you must log into your UPS account via their site once a year to keep it active. If your account was deleted, you will need to create a new one. The UPS tech support will guide you through it.
     
    If there are no issues with your UPS account & login info, then the next step is to run the debugging script. To do this you have to follow the steps in one of the following files.
     
    /includes/modules/shipping/upsxml.php
     
    If you’re using the Multi-Vendor Shipping (MVS) contribution:
    /includes/modules/vendors_shipping/upsxml.php
     
    Search the contents of the upsxml.php file for “upsxml.log” and follow the directions to create a log file and set file permissions. Then run a test checkout (partial - only to the checkout_shipping.php page). The details of this are explained in this older thread. Much respect goes to Jan Zonjee for his help there.
     
    http://www.oscommerce.com/forums/topic/248356-ups-xml-rates-services-v124-error/
     
    Download the log file and search it for errors. You are likely to have cURL errors. cURL is a command line tool for getting or sending files using URL syntax. It is used by the UPS API gateway in providing real time rates to your store site.
     
    If there are no cURL errors, you should call your hosting company’s tech support and ask them if cURL is compiled into PHP for your account. If it is not, then search the upsxml.php file for “when cURL is not compiled into PHP” and follow those directions to test further.
     
    If you get the cURL [60] error, then there is a line in the upsxml.php file that you can uncomment (on or around line 736 or 811, see below), then save, upload, and do a partial test checkout again. That line is:
     
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
     
    If you get the cURL Error [35]: SSL connect error, then you have entered my world. I contacted UPS tech support and sent them the upsxml.log file, and this was their response:
     
    “The UPS API's no longer support SSL. The UPS API's now support TLS 1.0, 1.1 and 1.2. If your solution is browser based, make sure that TLS 1.2 is enabled in the security settings. If your solution is server based, you will need to write the necessary code to make this change to your security protocol.”
     
    So, if you have an SSL certificate installed for your store, you would have to call your hosting company’s tech support and find out what version of TLS is enabled in the server security settings. Right now, I have an SSL certificate by COMODO and my hosting company has the TLS 1.2 enabled.
     
    Based on that information I found a link that provided the one-line solution that finally fixed my UPS module problem and got rid of that pesky “Rating and Service” error. Here it is:
     
    https://stackoverflow.com/questions/30145089/tls-1-2-not-working-in-curl
     
    And here is the line I had to add to upsxml.php I added it with the other curl_setopt options. You can just search for “curl_setopt” in the upsxml.php
     
    curl_setopt($ch, CURLOPT_SSLVERSION, 6); // Integer NOT string TLS v1.2
     
    Please note: the "6" is relevant to TLS 1.2 ...other versions of TLS require a different number. See the stackoverflow.com link above for what number correlates to your TLS version.
     
    I hope that helps and prevents most of you from wasting as much time as I did in trying to resolve this issue.
     
     
    UPS “Rating and Service”  ERROR SOLUTION SUMMARY:
     1) Login to the UPS site to make sure your account is active and do this at least once a year.
     2) Follow the directions in the upsxml.php file to run a debugging script to write to a log file.
     3) Review the log file for errors:
    If cURL error [60] – uncomment related line (736 or 811) in upsxml.php file If cURL error [35] SSL connect – call your hosting company to find out the version of TLS enabled and then add curl_setopt($ch, CURLOPT_SSLVERSION, 6); to the rest of the curl_setopt options in upsxml.php file. Then change the “6” to the number that correlates with your enabled version of TLS.  
     
    Demitry
  11. Like
    Demitry reacted to FWR Media in [contribution] KISS FileSafe ( file security )   
    Don't talk rubbish!
  12. Like
    Demitry reacted to FWR Media in [contribution] KISS FileSafe ( file security )   
    Firstly this contribution does not change your root .htaccess ( or any .htaccess although it has a few in the module directory ), secondly it redirects nothing.
     
    Accusing contributions of adding "infected" files is a serious business, before making such accusations please try to have a clue what you are talking about.
×
×
  • Create New...