Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

js_invalid:"JavaScript code generated by backend is invalid! oscommerce sorry english.. (Simpel)
Author Message
Simpel
Заглянувший



Joined: 25 May 2011
Posts: 5
Карма: 0
   поощрить/наказать


PostPosted: Wed May 25, 2011 7:42 pm (написано за 5 минут 51 секунду)
   Post subject: js_invalid:"JavaScript code generated by backend is invalid! oscommerce sorry english..
Reply with quote

Hello sorry for english. What google translate can do for you.. when you don't speak Russian.

Here is my problem. I am busy with a nice contribution in oscommerce named Ajax Buy Now.
In the general version I got no problems. But with my version I get 'JavaScript code generated by backend is invalid!'

The problem is that I don't know what that means and what I can do about this. I search the internet and got always the file of Dmitry Koterov. I tried different version but always get the same problem. "JavaScript code generated by backend is invalid!"


My firefox says uncaught exception: [Exception... "'Error: Subsys_JsHttpRequest_Js: JavaScript code generated by backend is invalid! and
<!-- shopping_cart //-->
..
..
<!-- shopping_cart_eof //-->' when calling method: [nsIDOMEventListener::handleEvent]" nsresult: "0x8057001c (NS_ERROR_XPC_JS_THREW_JS_OBJECT)" location: "JS frame :: chrome://firebug/content/spy.js :: callPageHandler :: line 744" data: no]
this is the file I am now using.
Quote:
SHOW_ADDED = 1; // set 0 if you no need show
Offset_X = -10;
Offset_Y = -30;
/**
 * Subsys_JsHttpRequest_Js: JavaScript "AJAX" data loader
 * Minimized version: see debug directory for the complete one.
 *
 * @license LGPL
 * @author Dmitry Koterov, en.dklab.ru/lib/Subsys_JsHttpRequest_Js/
 * @version 5.x $Id$
 */
function Subsys_JsHttpRequest_Js(){
var t=this;
t.onreadystatechange=null;
t.readyState=0;
t.responseText=null;
t.responseXML=null;
t.status=200;
t.statusText="OK";
t.responseJS=null;
t.caching=false;
t.loader=null;
t.session_name="PHPSESSID";
t._ldObj=null;
t._reqHeaders=[];
t._openArgs=null;
t._errors={inv_form_el:"Invalid FORM element detected: name=%, tag=%",must_be_single_el:"If used, <form> must be a single HTML element in the list.",js_invalid:"JavaScript code generated by backend is invalid!\n%",url_too_long:"Cannot use so long query with GET request (URL is larger than % bytes)",unk_loader:"Unknown loader: %",no_loaders:"No loaders registered at all, please check Subsys_JsHttpRequest_Js.LOADERS array",no_loader_matched:"Cannot find a loader which may process the request. Notices are:\n%",no_headers:"Method setRequestHeader() cannot work together with the % loader."};
t.abort=function(){
with(this){
if(_ldObj&&_ldObj.abort){
_ldObj.abort();
}
_cleanup();
if(readyState==0){
return;
}
if(readyState==1&&!_ldObj){
readyState=0;
return;
}
_changeReadyState(4,true);
}
};
t.open=function(_2,_3,_4,_5,_6){
with(this){
try{
if(document.location.search.match(new RegExp("[&?]"+session_name+"=([^&?]*)"))||document.cookie.match(new RegExp("(?:;|^)\\s*"+session_name+"=([^;]*)"))){
_3+=(_3.indexOf("?")>=0?"&":"?")+session_name+"="+this.escape(RegExp.$1);
}
}
catch(e){
}
_openArgs={method:(_2||"").toUpperCase(),url:_3,asyncFlag:_4,username:_5!=null?_5:"",password:_6!=null?_6:""};
_ldObj=null;
_changeReadyState(1,true);
return true;
}
};
t.send=function(_7){
if(!this.readyState){
return;
}
this._changeReadyState(1,true);
this._ldObj=null;
var _8=[];
var _9=[];
if(!this._hash2query(_7,null,_8,_9)){
return;
}
var _a=null;
if(this.caching&&!_9.length){
_a=this._openArgs.username+":"+this._openArgs.password+"@"+this._openArgs.url+"|"+_8+"#"+this._openArgs.method;
var _b=Subsys_JsHttpRequest_Js.CACHE[_a];
if(_b){
this._dataReady(_b[0],_b[1]);
return false;
}
}
var _c=(this.loader||"").toLowerCase();
if(_c&&!Subsys_JsHttpRequest_Js.LOADERS[_c]){
return this._error("unk_loader",_c);
}
var _d=[];
var _e=Subsys_JsHttpRequest_Js.LOADERS;
for(var _f in _e){
var ldr=_e[_f].loader;
if(!ldr){
continue;
}
if(_c&&_f!=_c){
continue;
}
var _11=new ldr(this);
Subsys_JsHttpRequest_Js.extend(_11,this._openArgs);
Subsys_JsHttpRequest_Js.extend(_11,{queryText:_8.join("&"),queryElem:_9,id:(new Date().getTime())+""+Subsys_JsHttpRequest_Js.COUNT++,hash:_a,span:null});
var _12=_11.load();
if(!_12){
this._ldObj=_11;
Subsys_JsHttpRequest_Js.PENDING[_11.id]=this;
return true;
}
if(!_c){
_d[_d.length]="- "+_f.toUpperCase()+": "+this._l(_12);
}else{
return this._error(_12);
}
}
return _f?this._error("no_loader_matched",_d.join("\n")):this._error("no_loaders");
};
t.getAllResponseHeaders=function(){
with(this){
return _ldObj&&_ldObj.getAllResponseHeaders?_ldObj.getAllResponseHeaders():[];
}
};
t.getResponseHeader=function(_13){
with(this){
return _ldObj&&_ldObj.getResponseHeader?_ldObj.getResponseHeader():[];
}
};
t.setRequestHeader=function(_14,_15){
with(this){
_reqHeaders[_reqHeaders.length]=[_14,_15];
}
};
t._dataReady=function(_16,js){
with(this){
if(caching&&_ldObj){
Subsys_JsHttpRequest_Js.CACHE[_ldObj.hash]=[_16,js];
}
if(_16!==null||js!==null){
status=4;
responseText=responseXML=_16;
responseJS=js;
}else{
status=500;
responseText=responseXML=responseJS=null;
}
_changeReadyState(2);
_changeReadyState(3);
_changeReadyState(4);
_cleanup();
}
};
t._l=function(_18){
var i=0,p=0,msg=this._errors[_18[0]];
while((p=msg.indexOf("%",p))>=0){
var a=_18[++i]+"";
msg=msg.substring(0,p)+a+msg.substring(p+1,msg.length);
p+=1+a.length;
}
return msg;
};
t._error=function(msg){
msg=this._l(typeof (msg)=="string"?arguments:msg);
msg="Subsys_JsHttpRequest_Js: "+msg;
if(!window.Error){
throw msg;
}else{
if((new Error(1,"test")).description=="test"){
throw new Error(1,msg);
}else{
throw new Error(msg);
}
}
};
t._hash2query=function(_1e,_1f,_20,_21){
if(_1f==null){
_1f="";
}
if((""+typeof (_1e)).toLowerCase()=="object"){
var _22=false;
if(_1e&&_1e.parentNode&&_1e.parentNode.appendChild&&_1e.tagName&&_1e.tagName.toUpperCase()=="FORM"){
_1e={form:_1e};
}
for(var k in _1e){
var v=_1e[k];
if(v instanceof Function){
continue;
}
var _25=_1f?_1f+"["+this.escape(k)+"]":this.escape(k);
var _26=v&&v.parentNode&&v.parentNode.appendChild&&v.tagName;
if(_26){
var tn=v.tagName.toUpperCase();
if(tn=="FORM"){
_22=true;
}else{
if(tn=="INPUT"||tn=="TEXTAREA"||tn=="SELECT"){
}else{
return this._error("inv_form_el",(v.name||""),v.tagName);
}
}
_21[_21.length]={name:_25,e:v};
}else{
if(v instanceof Object){
this._hash2query(v,_25,_20,_21);
}else{
if(v===null){
continue;
}
if(v===true){
v=1;
}
if(v===false){
v="";
}
_20[_20.length]=_25+"="+this.escape(""+v);
}
}
if(_22&&_21.length>1){
return this._error("must_be_single_el");
}
}
}else{
_20[_20.length]=_1e;
}
return true;
};
t._cleanup=function(){
var _28=this._ldObj;
if(!_28){
return;
}
Subsys_JsHttpRequest_Js.PENDING[_28.id]=false;
var _29=_28.span;
if(!_29){
return;
}
_28.span=null;
var _2a=function(){
_29.parentNode.removeChild(_29);
};
Subsys_JsHttpRequest_Js.setTimeout(_2a,50);
};
t._changeReadyState=function(s,_2c){
with(this){
if(_2c){
status=statusText=responseJS=null;
responseText="";
}
readyState=s;
if(onreadystatechange){
onreadystatechange();
}
}
};
t.escape=function(s){
return escape(s).replace(new RegExp("\\+","g"),"%2B");
};
}
Subsys_JsHttpRequest_Js.COUNT=0;
Subsys_JsHttpRequest_Js.MAX_URL_LEN=2000;
Subsys_JsHttpRequest_Js.CACHE={};
Subsys_JsHttpRequest_Js.PENDING={};
Subsys_JsHttpRequest_Js.LOADERS={};
Subsys_JsHttpRequest_Js._dummy=function(){
};
Subsys_JsHttpRequest_Js.TIMEOUTS={s:window.setTimeout,c:window.clearTimeout};
Subsys_JsHttpRequest_Js.setTimeout=function(_2e,dt){
window.Subsys_JsHttpRequest_Js_tmp=Subsys_JsHttpRequest_Js.TIMEOUTS.s;
if(typeof (_2e)=="string"){
id=window.Subsys_JsHttpRequest_Js_tmp(_2e,dt);
}else{
var id=null;
var _31=function(){
_2e();
delete Subsys_JsHttpRequest_Js.TIMEOUTS[id];
};
id=window.Subsys_JsHttpRequest_Js_tmp(_31,dt);
Subsys_JsHttpRequest_Js.TIMEOUTS[id]=_31;
}
window.Subsys_JsHttpRequest_Js_tmp=null;
return id;
};
Subsys_JsHttpRequest_Js.clearTimeout=function(id){
window.Subsys_JsHttpRequest_Js_tmp=Subsys_JsHttpRequest_Js.TIMEOUTS.c;
delete Subsys_JsHttpRequest_Js.TIMEOUTS[id];
var r=window.Subsys_JsHttpRequest_Js_tmp(id);
window.Subsys_JsHttpRequest_Js_tmp=null;
return r;
};
Subsys_JsHttpRequest_Js.query=function(url,_35,_36,_37){
var req=new this();
req.caching=!_37;
req.onreadystatechange=function(){
if(req.readyState==4){
_36(req.responseJS,req.responseText);
}
};
var _39=null;
if(url.match(/^((\w+)\.)?(GET|POST)\s+(.*)/i)){
req.loader=RegExp.$2?RegExp.$2:null;
_39=RegExp.$3;
url=RegExp.$4;
}
req.open(_39,url,true);
req.send(_35);
};
Subsys_JsHttpRequest_Js.dataReady=function(d){
var th=this.PENDING[d.id];
delete this.PENDING[d.id];
if(th){
th._dataReady(d.text,d.js);
}else{
if(th!==false){
throw "dataReady(): unknown pending id: "+d.id;
}
}
};
Subsys_JsHttpRequest_Js.extend=function(_3c,src){
for(var k in src){
_3c[k]=src[k];
}
};
Subsys_JsHttpRequest_Js.LOADERS.xml={loader:function(req){
Subsys_JsHttpRequest_Js.extend(req._errors,{xml_no:"Cannot use XMLHttpRequest or ActiveX loader: not supported",xml_no_diffdom:"Cannot use XMLHttpRequest to load data from different domain %",xml_no_headers:"Cannot use XMLHttpRequest loader or ActiveX loader, POST method: headers setting is not supported, needed to work with encodings correctly",xml_no_form_upl:"Cannot use XMLHttpRequest loader: direct form elements using and uploading are not implemented"});
this.load=function(){
if(this.queryElem.length){
return ["xml_no_form_upl"];
}
if(this.url.match(new RegExp("^([a-z]+)://([^\\/]+)(.*)","i"))){
if(RegExp.$2.toLowerCase()==document.location.hostname.toLowerCase()){
this.url=RegExp.$3;
}else{
return ["xml_no_diffdom",RegExp.$2];
}
}
var xr=null;
if(window.XMLHttpRequest){
try{
xr=new XMLHttpRequest();
}
catch(e){
}
}else{
if(window.ActiveXObject){
try{
xr=new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e){
}
if(!xr){
try{
xr=new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e){
}
}
}
}
if(!xr){
return ["xml_no"];
}
var _41=window.ActiveXObject||xr.setRequestHeader;
if(!this.method){
this.method=_41?"POST":"GET";
}
if(this.method=="GET"){
if(this.queryText){
this.url+=(this.url.indexOf("?")>=0?"&":"?")+this.queryText;
}
this.queryText="";
if(this.url.length>Subsys_JsHttpRequest_Js.MAX_URL_LEN){
return ["url_too_long",Subsys_JsHttpRequest_Js.MAX_URL_LEN];
}
}else{
if(this.method=="POST"&&!_41){
return ["xml_no_headers"];
}
}
this.url+=(this.url.indexOf("?")>=0?"&":"?")+"Subsys_JsHttpRequest_Js="+(req.caching?"0":this.id)+"-xml";
var id=this.id;
xr.onreadystatechange=function(){
if(xr.readyState!=4){
return;
}
xr.onreadystatechange=Subsys_JsHttpRequest_Js._dummy;
req.status=null;
try{
req.status=xr.status;
req.responseText=xr.responseText;
}
catch(e){
}
if(!req.status){
return;
}
try{
eval("Subsys_JsHttpRequest_Js._tmp = function(id) { var d = "+req.responseText+"; d.id = id; Subsys_JsHttpRequest_Js.dataReady(d); }");
}
catch(e){
return req._error("js_invalid",req.responseText);
}
Subsys_JsHttpRequest_Js._tmp(id);
Subsys_JsHttpRequest_Js._tmp=null;
};
xr.open(this.method,this.url,true,this.username,this.password);
if(_41){
for(var i=0;i<req._reqHeaders.length;i++){
xr.setRequestHeader(req._reqHeaders[i][0],req._reqHeaders[i][1]);
}
xr.setRequestHeader("Content-Type","application/octet-stream");
}
xr.send(this.queryText);
this.span=null;
this.xr=xr;
return null;
};
this.getAllResponseHeaders=function(){
return this.xr.getAllResponseHeaders();
};
this.getResponseHeader=function(_44){
return this.xr.getResponseHeader(_44);
};
this.abort=function(){
this.xr.abort();
this.xr=null;
};
}};
Subsys_JsHttpRequest_Js.LOADERS.script={loader:function(req){
Subsys_JsHttpRequest_Js.extend(req._errors,{script_only_get:"Cannot use SCRIPT loader: it supports only GET method",script_no_form:"Cannot use SCRIPT loader: direct form elements using and uploading are not implemented"});
this.load=function(){
if(this.queryText){
this.url+=(this.url.indexOf("?")>=0?"&":"?")+this.queryText;
}
this.url+=(this.url.indexOf("?")>=0?"&":"?")+"Subsys_JsHttpRequest_Js="+this.id+"-"+"script";
this.queryText="";
if(!this.method){
this.method="GET";
}
if(this.method!=="GET"){
return ["script_only_get"];
}
if(this.queryElem.length){
return ["script_no_form"];
}
if(this.url.length>Subsys_JsHttpRequest_Js.MAX_URL_LEN){
return ["url_too_long",Subsys_JsHttpRequest_Js.MAX_URL_LEN];
}
if(req._reqHeaders.length){
return ["no_headers","SCRIPT"];
}
var th=this,d=document,s=null,b=d.body;
if(!window.opera){
this.span=s=d.createElement("SCRIPT");
var _4a=function(){
s.language="JavaScript";
if(s.setAttribute){
s.setAttribute("src",th.url);
}else{
s.src=th.url;
}
b.insertBefore(s,b.lastChild);
};
}else{
this.span=s=d.createElement("SPAN");
s.style.display="none";
b.insertBefore(s,b.lastChild);
s.innerHTML="Workaround for IE.<s"+"cript></"+"script>";
var _4a=function(){
s=s.getElementsByTagName("SCRIPT")[0];
s.language="JavaScript";
if(s.setAttribute){
s.setAttribute("src",th.url);
}else{
s.src=th.url;
}
};
}
Subsys_JsHttpRequest_Js.setTimeout(_4a,10);
return null;
};
}};
Subsys_JsHttpRequest_Js.LOADERS.form={loader:function(req){
Subsys_JsHttpRequest_Js.extend(req._errors,{form_el_not_belong:"Element \"%\" does not belong to any form!",form_el_belong_diff:"Element \"%\" belongs to a different form. All elements must belong to the same form!",form_el_inv_enctype:"Attribute \"enctype\" of the form must be \"%\" (for IE), \"%\" given."});
this.load=function(){
var th=this;
if(!th.method){
th.method="POST";
}
th.url+=(th.url.indexOf("?")>=0?"&":"?")+"Subsys_JsHttpRequest_Js="+th.id+"-"+"form";
if(req._reqHeaders.length){
return ["no_headers","FORM"];
}
if(th.method=="GET"){
if(th.queryText){
th.url+=(th.url.indexOf("?")>=0?"&":"?")+th.queryText;
}
if(th.url.length>Subsys_JsHttpRequest_Js.MAX_URL_LEN){
return ["url_too_long",Subsys_JsHttpRequest_Js.MAX_URL_LEN];
}
var p=th.url.split("?",2);
th.url=p[0];
th.queryText=p[1]||"";
}
var _4e=null;
var _4f=false;
if(th.queryElem.length){
if(th.queryElem[0].e.tagName.toUpperCase()=="FORM"){
_4e=th.queryElem[0].e;
_4f=true;
th.queryElem=[];
}else{
_4e=th.queryElem[0].e.form;
for(var i=0;i<th.queryElem.length;i++){
var e=th.queryElem[i].e;
if(!e.form){
return ["form_el_not_belong",e.name];
}
if(e.form!=_4e){
return ["form_el_belong_diff",e.name];
}
}
}
if(th.method=="POST"){
var _52="multipart/form-data";
var _53=(_4e.attributes.encType&&_4e.attributes.encType.nodeValue)||(_4e.attributes.enctype&&_4e.attributes.enctype.value)||_4e.enctype;
if(_53!=_52){
return ["form_el_inv_enctype",_52,_53];
}
}
}
var d=_4e&&(_4e.ownerDocument||_4e.document)||document;
var _55="jshr_i_"+th.id;
var s=th.span=d.createElement("DIV");
s.style.position="absolute";
s.style.display="none";
s.style.visibility="hidden";
s.innerHTML=(_4e?"":"<form"+(th.method=="POST"?" enctype=\"multipart/form-data\" method=\"post\"":"")+"></form>")+"<iframe name=\""+_55+"\" id=\""+_55+"\" style=\"width:0px; height:0px; overflow:hidden; border:none\"></iframe>";
if(!_4e){
_4e=th.span.firstChild;
}
d.body.insertBefore(s,d.body.lastChild);
var _57=function(e,_59){
var sv=[];
var _5b=e;
if(e.mergeAttributes){
var _5b=d.createElement("form");
_5b.mergeAttributes(e,false);
}
for(var i=0;i<_59.length;i++){
var k=_59[i][0],v=_59[i][1];
sv[sv.length]=[k,_5b.getAttribute(k)];
_5b.setAttribute(k,v);
}
if(e.mergeAttributes){
e.mergeAttributes(_5b,false);
}
return sv;
};
var _5f=function(){
top.Subsys_JsHttpRequest_JsGlobal=Subsys_JsHttpRequest_Js;
var _60=[];
if(!_4f){
for(var i=0,n=_4e.elements.length;i<n;i++){
_60[i]=_4e.elements[i].name;
_4e.elements[i].name="";
}
}
var qt=th.queryText.split("&");
for(var i=qt.length-1;i>=0;i--){
var _64=qt[i].split("=",2);
var e=d.createElement("INPUT");
e.type="hidden";
e.name=unescape(_64[0]);
e.value=_64[1]!=null?unescape(_64[1]):"";
_4e.appendChild(e);
}
for(var i=0;i<th.queryElem.length;i++){
th.queryElem[i].e.name=th.queryElem[i].name;
}
var sv=_57(_4e,[["action",th.url],["method",th.method],["onsubmit",null],["target",_55]]);
_4e.submit();
_57(_4e,sv);
for(var i=0;i<qt.length;i++){
_4e.lastChild.parentNode.removeChild(_4e.lastChild);
}
if(!_4f){
for(var i=0,n=_4e.elements.length;i<n;i++){
_4e.elements[i].name=_60[i];
}
}
};
Subsys_JsHttpRequest_Js.setTimeout(_5f,100);
return null;
};
}};



function addHandler(object, event, handler) { // Thanks xpoint.ru!
  if (typeof object.addEventListener != 'undefined')
    object.addEventListener(event, handler, false);
  else if (typeof object.attachEvent != 'undefined')
    object.attachEvent('on' + event, handler);
  else {
    var handlersProp = '_handlerStack_' + event;
    var eventProp = 'on' + event;
    if (typeof object[handlersProp] == 'undefined') {
      object[handlersProp] = [];
      if (typeof object[eventProp] != 'undefined')
        object[handlersProp].push(object[eventProp]);
      object[eventProp] = function(e) {
        var ret = true;
        for (var i = 0; ret != false && i < object[handlersProp].length; i++)
          ret = object[handlersProp][i](e);
        return ret;
    } }
    object[handlersProp].push(handler);
} }
function removeHandler(object, event, handler) { // Thanks xpoint.ru!
  if (typeof object.removeEventListener != 'undefined')
    object.removeEventListener(event, handler, false);
  else if (typeof object.detachEvent != 'undefined')
    object.detachEvent('on' + event, handler);
  else {
    var handlersProp = '_handlerStack_' + event;
    if (typeof object[handlersProp] != 'undefined') {
      for (var i = 0; i < object[handlersProp].length; i++) {
        if (object[handlersProp][i] == handler) {
          object[handlersProp].splice(i, 1);
          return;
} } } } }
/**
  AJAXBuyNow v2.0

  author Weretennikoff Andrew aka Medreces medreces@yandex.ru

  Released under the GNU General Public License
*/
var x, y;
var loadingImage = new Image();
var okImage = new Image();
loadingImage.src = "components/com_oscommerce_personal/images/icons/loading.gif";
okImage.src = "components/com_oscommerce_personal/images/icons/ok.png";

if (window.opera || (navigator.userAgent.indexOf('MSIE') > -1)) { //IE + Opera
  getM_x = function () { return event.clientX + document.body.scrollLeft; }
  getM_y = function () { return event.clientY + document.body.scrollTop; }
} else { // Mozilla
  addHandler(document, 'mousemove', function(e) {
    x = e.pageX;
    y = e.pageY;
  });
  getM_x = function () { return x; }
  getM_y = function () { return y; }
}
function showOk() {
  var imgLoading = document.getElementById("_loading_");
  with (imgLoading) {
    src = okImage.src;
    style.visibility = "visible";
} }

function hideOk() {
  if(document.getElementById("_loading_")) document.getElementById('_loading_').style.visibility = "hidden";
  removeHandler(document, 'mousemove', hideOk);
}
function showLoading() {
  var imgLoading = document.getElementById("_loading_");
  if(!imgLoading) {
    imgLoading = document.createElement("img");
    with(imgLoading) {
      id = "_loading_";
      style.position = "absolute";
      style.visibility = "hidden";
    }
    document.body.appendChild(imgLoading);
  }
  with(imgLoading) {
    src = loadingImage.src;
    style.left = (getM_x() + Offset_X) + "px";
    style.top = (getM_y() + Offset_Y) + "px";
    style.visibility = "visible";
} }
function hideLoading() {
  if(document.getElementById("_loading_")) document.getElementById("_loading_").style.visibility = "hidden";
}

function doBuyNowGet( link ) {
        showLoading();
  var reqAddCart = new Subsys_JsHttpRequest_Js();
  reqAddCart.onreadystatechange = function() {
    if (reqAddCart.readyState == 4) {
      if (reqAddCart.responseJS) {
        document.location.href = reqAddCart.responseJS.ajax_redirect;
        return;
      }
      else {
        document.getElementById('divShoppingCard').innerHTML = (reqAddCart.responseText||'');
        hideLoading();
        if ( SHOW_ADDED ) {
          showOk();
          timerID = setTimeout( "addHandler(document, \'mousemove\', hideOk)", 500);
        }
      }
    }
  }
  //reqAddCart.caching = false;
  reqAddCart.open('GET', link, true);
  reqAddCart.send();
}

function doAddProduct(form) {

  showLoading();
  var reqAddCart = new Subsys_JsHttpRequest_Js();
  reqAddCart.onreadystatechange = function() {
    if (reqAddCart.readyState == 4) {
      if (reqAddCart.responseJS) {
        document.location.href = reqAddCart.responseJS.ajax_redirect;

        return;
      }
      else {
        document.getElementById('divShoppingCard').innerHTML = (reqAddCart.responseText||'')
        if ( SHOW_ADDED ) {
          showOk();
          timerID = setTimeout( "addHandler(document, \'mousemove\', hideOk)", 500);
        }
      }
    }
  }
// ñîáèðàåì âñå ýëåìåíòû ôîðìû:
  var senddata = new Object();
  var fe = form.elements;
  for(var i=0 ; i<fe.length ; i++) {
    if ( fe[i].type=="radio" || fe[i].type=="checkbox" ) {
      if ( fe[i].checked ) senddata[fe[i].name] = fe[i].value;
    } else {
      senddata[fe[i].name] = fe[i].value;
    }
  }
 url = 'index.php?option=com_oscommerce&osMod=ajax_shopping_cart&' + ( senddata.products_id ? 'products_id='+senddata.products_id+'&' : "" )+ 'format=ajax' ;

  reqAddCart.caching = false;
  reqAddCart.open( form.method, url, true);
  reqAddCart.send( senddata );
  return false;
}
I hope somebody can explane ( Maybe in Russian google can translate this for me) What this error makes 'JavaScript code generated by backend is invalid!'
And what a solution could be.

thanks in advance.
Back to top
View user's profile Send private message
Rumata
Профессионал



Joined: 17 Aug 2003
Posts: 1850
Карма: 185
   поощрить/наказать


PostPosted: Thu May 26, 2011 11:00 am (спустя 15 часов 18 минут; написано за 5 минут 10 секунд)
   Post subject:
Reply with quote

Hi Simpel,

The primary analysis shown me that the exception arisen in this portion of the code. It seems that the req.responseText containing some kind of text is interpreted as a javascript code. The req.responseText is arbitrary text and brings to errors because only a valid javascript code can be eval'd. As a conclusion - it should contain a valid javascript code only.
Code (JavaScript): скопировать код в буфер обмена
try{
eval("Subsys_JsHttpRequest_Js._tmp = function(id) { var d = "+req.responseText+"; d.id = id; Subsys_JsHttpRequest_Js.dataReady(d); }");
}
catch(e){
return req._error("js_invalid",req.responseText);
}
Back to top
View user's profile Send private message
Simpel
Заглянувший



Joined: 25 May 2011
Posts: 5
Карма: 0
   поощрить/наказать


PostPosted: Thu May 26, 2011 12:44 pm (спустя 1 час 43 минуты; написано за 5 минут 28 секунд)
   Post subject:
Reply with quote

Ok that's not easy

ok I try version 3.29 of course is gives the same error

here is the code
Quote:
SHOW_ADDED = 1; // set 0 if you no need show
Offset_X = -10;
Offset_Y = -30;
/**
 * Subsys_JsHttpRequest_Js: JavaScript DHTML data loader.
 * (C) 2005 Dmitry Koterov, Дмитрий Котеров (forum.dklab.ru/users/DmitryKoterov/)
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 * See www.gnu.org/copyleft/lesser.html
 *
 * Do not remove this comment if you want to use script!
 *
 * This library tries to use XMLHttpRequest (if available), and on
 * failure - use dynamically created <script> elements. Backend code
 * is the same for both cases.
 *
 * @author Dmitry Koterov
 * @version 3.29
 */

function Subsys_JsHttpRequest_Js() { this._construct() }
(function() { // to create local-scope variables
    var COUNT = 0;
    var PENDING = {};
    var CACHE = {};

    // Called by server script on data load.
    Subsys_JsHttpRequest_Js.dataReady = function(id, text, js) {
        var undef;
        var th = PENDING[id];
        delete PENDING[id];
        if (th) {
            delete th._xmlReq;
            if (th.caching) CACHE[th.hash] = [text, js];
            th._dataReady(text, js);
        } else if (typeof(th) != typeof(undef)) {
            alert("ScriptLoader: unknown pending id: "+id);
        }
    }

    Subsys_JsHttpRequest_Js.prototype = {
        // Standard properties.
        onreadystatechange: null,
        readyState: 0,
        responseText: null,
        responseXML: null,
        status: 200,
        statusText: "OK",

        // Additional properties.
        session_name: "osCsid", // set to SID cookie or GET parameter name
        responseJS: null, // JavaScript response array/hash
        caching: false, // need to use caching?

        // Internals.
        _span: null,
        _id: null,
        _xmlReq: null,
        _openArg: null,
        _reqHeaders: null,

        dummy: function() {}, // empty function

        abort: function() {
            if (this._xmlReq) return this._xmlReq.abort();
            if (this._span) {
                this.readyState = 0;
                if (this.onreadystatechange) this.onreadystatechange();
                this._cleanupScript();
            }
        },

        open: function(method, url, asyncFlag, username, password) {
            this._openArg = {
                'method': method,
                'url': url,
                'asyncFlag': asyncFlag,
                'username': username,
                'password': password
            };
            this._id = null;
            this._xmlReq = null;
            this._reqHeaders = [];
            return true;
        },

        send: function(content) {
            var id = (new Date().getTime()) + "" + COUNT++;

            // Build QUERY_STRING from query hash.
            var query = this._hash2query(content);

            // Append SID to original URL now.
            var url = this._openArg.url;
            var sid = this._getSid();
            if (sid) url += (url.indexOf('?')>=0? '&' : '?') + this.session_name + "=" + this.escape(sid);
            
            // Solve hash BEFORE appending ID.
            var hash = this.hash = url + '?' + query;
            if (this.caching && CACHE[hash]) {
                var c = CACHE[hash];
                this._dataReady(c[0], c[1]);
                return false;
            }

            // Try to use XMLHttpRequest.
            this._xmlReq = this._obtainXmlReq(id, url);
                 

            // Pass data in URL (GET, HEAD etc.) or in request body (POST)?
            var hasSetHeader = this._xmlReq && (window.ActiveXObject || this._xmlReq.setRequestHeader);
            var href, body;
            if (this._xmlReq && hasSetHeader && (""+this._openArg.method).toUpperCase() == "POST") {
                // Use POST method. Pass query in request body.
                // Opera 8.01 does not support setRequestHeader, so no POST method.
                this._openArg.method = "POST";
                href = url;
                body = query;
            } else {
                this._openArg.method = "GET";
                href = url + (url.indexOf('?')>=0? '&' : '?') + query;
                body = null;
            }
            

            // Append ID: a=aaa&b=bbb&<id>
            href = href + (href.indexOf('?')>=0? '&' : '?') + id;

            // Save loading script.
            PENDING[id] = this;

            if (this._xmlReq) {
                // Open request now & send it.
                // In XMLHttpRequest mode request URL MUST be ended with "<id>-xml".
                var a = this._openArg;
                this._xmlReq.open(a.method, href+"-xml", a.asyncFlag, a.username, a.password);
                if (hasSetHeader) {
                    // Pass pending headers.
                    for (var i=0; i<this._reqHeaders.length; i++)
                        this._xmlReq.setRequestHeader(this._reqHeaders[i][0], this._reqHeaders[i][1]);
                    // Set non-default Content-type. We cannot use
                    // "application/x-www-form-urlencoded" here, because
                    // in PHP variable HTTP_RAW_POST_DATA is accessible only when
                    // enctype is not default (e.g., "application/octet-stream"
                    // is a good start). We parse POST data manually in backend
                    // library code.
                    this._xmlReq.setRequestHeader('Content-Type', 'application/octet-stream');
                }
                // Send the request.
                return this._xmlReq.send(body);
            } else {
                // Create <script> element and run it.
                this._obtainScript(id, href);
                return true;
            }
        },

        getAllResponseHeaders: function() {
            if (this._xmlReq) return this._xmlReq.getAllResponseHeaders();
            return '';
        },

        getResponseHeader: function(label) {
            if (this._xmlReq) return this._xmlReq.getResponseHeader(label);
            return '';
        },

        setRequestHeader: function(label, value) {
            // Collect headers.
            this._reqHeaders[this._reqHeaders.length] = [label, value];
        },


        //
        // Internal functions.
        //

        // Constructor.
        _construct: function() {},

        // Do all work when data is ready.
        _dataReady: function(text, js) { with (this) {
            if (text !== null || js !== null) {
                readyState = 4;
                responseText = responseXML = text;
                responseJS = js;
            } else {
                readyState = 0;
                responseText = responseXML = responseJS = null;
            }
            if (onreadystatechange) onreadystatechange();
            _cleanupScript();
        }},

        // Create new XMLHttpRequest object.
        _obtainXmlReq: function(id, url) {
            // If url.domain specified, cannot use XMLHttpRequest!
            // XMLHttpRequest (and MS ActiveX'es) cannot work with different domains.
            if (url.match(new RegExp('^[a-z]+://', 'i'))) return null;

            // Try to use built-in loaders.
            var req = null;
            if (window.XMLHttpRequest) {
                try { req = new XMLHttpRequest() } catch(e) {}
            } else if (window.ActiveXObject) {
                try { req = new ActiveXObject("Microsoft.XMLHTTP") } catch(e) {}
                if (!req) try { req = new ActiveXObject("Msxml2.XMLHTTP") } catch (e) {}
            }
            if (req) {
                var th = this;
                req.onreadystatechange = function() {
                    var s = req.readyState;
                    if (s == 4) {
                        // Avoid memory leak by removing closure.
                        req.onreadystatechange = th.dummy;
                        // Remove possible junk from response.
                        var responseText = req.responseText;
                        try {
                            // Call associated dataReady().
                            eval(responseText);
                        } catch (e) {
                            Subsys_JsHttpRequest_Js.dataReady(id, "JavaScript code generated by backend is invalid!\n"+responseText, null);
                        }
                    } else {
                        th.readyState = s;
                        if (th.onreadystatechange) th.onreadystatechange()
                    }
                };
                this._id = id;
            }
            return req;
        },

        // Create new script element and start loading.
        _obtainScript: function(id, href) { with (document) {
            var span = null;
            // Oh shit! Damned stupid fucked Opera 7.23 does not allow to create SCRIPT
            // element over createElement (in HEAD or BODY section or in nested SPAN -
            // no matter): it is created deadly, and does not respons on href assignment.
            // So - always create SPAN.
            span = body.appendChild(createElement("SPAN"));
            span.style.display = 'none';
            span.innerHTML = 'Text for stupid IE.<s'+'cript></' + 'script>';
            setTimeout(function() {
                var s = span.getElementsByTagName("script")[0];
                s.language = "JavaScript";
                s.type = "text/javascript";
                //if (s.setAttribute) s.setAttribute('src', href); else s.src = href;
                
                $.get(
                    href,
                    function(data) {
                        s.innerHTML = data;
                    }
                );
                
            }, 10);
            
            this._id = id;
            this._span = span;
        }},

        // Remove last used script element (clean memory).
        _cleanupScript: function() {
            var span = this._span;
            if (span) {
                this._span = null;
                setTimeout(function() {
                    // without setTimeout - crash in IE 5.0!
                    span.parentNode.removeChild(span);
                }, 50);
            }
            return false;
        },

        // Convert hash to QUERY_STRING.
        _hash2query: function(content, prefix) {
            if (prefix == null) prefix = "";
            var query = [];
            if (content instanceof Object) {
                for (var k in content) {
                    var v = content[k];
                    if (v == null || ((v.constructor||{}).prototype||{})[k]) continue;
                    var curPrefix = prefix? prefix+'['+this.escape(k)+']' : this.escape(k);
                    if (v instanceof Object)
                        query[query.length] = this._hash2query(v, curPrefix);
                    else
                        query[query.length] = curPrefix + "=" + this.escape(v);
                }
            } else {
                query = [content];
            }
            return query.join('&');
        },

        // Return value of SID based on QUERY_STRING or cookie
        // (PHP compatible sessions).
        _getSid: function() {
            var m = document.location.search.match(new RegExp('[&?]'+this.session_name+'=([^&?]*)'));
            var sid = null;
            if (m) {
                sid = m[1];
            } else {
                var m = document.cookie.match(new RegExp(s='(;|^)\\s*'+this.session_name+'=([^;]*)'));
                if (m) sid = m[2];
            }
            return sid;
        },

        // Stupid JS escape() does not quote '+'.
        escape: function(s) {
            return escape(s).replace(new RegExp('\\+','g'), '%2B');
        }
    }
})();
function addHandler(object, event, handler) { // Thanks xpoint.ru!
  if (typeof object.addEventListener != 'undefined')
    object.addEventListener(event, handler, false);
  else if (typeof object.attachEvent != 'undefined')
    object.attachEvent('on' + event, handler);
  else {
    var handlersProp = '_handlerStack_' + event;
    var eventProp = 'on' + event;
    if (typeof object[handlersProp] == 'undefined') {
      object[handlersProp] = [];
      if (typeof object[eventProp] != 'undefined')
        object[handlersProp].push(object[eventProp]);
      object[eventProp] = function(e) {
        var ret = true;
        for (var i = 0; ret != false && i < object[handlersProp].length; i++)
          ret = object[handlersProp][i](e);
        return ret;
    } }
    object[handlersProp].push(handler);
} }
function removeHandler(object, event, handler) { // Thanks xpoint.ru!
  if (typeof object.removeEventListener != 'undefined')
    object.removeEventListener(event, handler, false);
  else if (typeof object.detachEvent != 'undefined')
    object.detachEvent('on' + event, handler);
  else {
    var handlersProp = '_handlerStack_' + event;
    if (typeof object[handlersProp] != 'undefined') {
      for (var i = 0; i < object[handlersProp].length; i++) {
        if (object[handlersProp][i] == handler) {
          object[handlersProp].splice(i, 1);
          return;
} } } } }
/**
  AJAXBuyNow v2.0

  author Weretennikoff Andrew aka Medreces medreces@yandex.ru

  Released under the GNU General Public License
*/
var x, y;
var loadingImage = new Image();
var okImage = new Image();
loadingImage.src = "components/com_oscommerce_personal/images/icons/loading.gif";
okImage.src = "components/com_oscommerce_personal/images/icons/ok.png";

if (window.opera || (navigator.userAgent.indexOf('MSIE') > -1)) { //IE + Opera
  getM_x = function () { return event.clientX + document.body.scrollLeft; }
  getM_y = function () { return event.clientY + document.body.scrollTop; }
} else { // Mozilla
  addHandler(document, 'mousemove', function(e) {
    x = e.pageX;
    y = e.pageY;
  });
  getM_x = function () { return x; }
  getM_y = function () { return y; }
}
function showOk() {
  var imgLoading = document.getElementById("_loading_");
  with (imgLoading) {
    src = okImage.src;
    style.visibility = "visible";
} }

function hideOk() {
  if(document.getElementById("_loading_")) document.getElementById('_loading_').style.visibility = "hidden";
  removeHandler(document, 'mousemove', hideOk);
}
function showLoading() {
  var imgLoading = document.getElementById("_loading_");
  if(!imgLoading) {
    imgLoading = document.createElement("img");
    with(imgLoading) {
      id = "_loading_";
      style.position = "absolute";
      style.visibility = "hidden";
    }
    document.body.appendChild(imgLoading);
  }
  with(imgLoading) {
    src = loadingImage.src;
    style.left = (getM_x() + Offset_X) + "px";
    style.top = (getM_y() + Offset_Y) + "px";
    style.visibility = "visible";
} }
function hideLoading() {
  if(document.getElementById("_loading_")) document.getElementById("_loading_").style.visibility = "hidden";
}

function doBuyNowGet( link ) {
        showLoading();
  var reqAddCart = new Subsys_JsHttpRequest_Js();
  reqAddCart.onreadystatechange = function() {
    if (reqAddCart.readyState == 4) {
      if (reqAddCart.responseJS) {
        document.location.href = reqAddCart.responseJS.ajax_redirect;
        return;
      }
      else {
        document.getElementById('divShoppingCard').innerHTML = (reqAddCart.responseText||'');
        hideLoading();
        if ( SHOW_ADDED ) {
          showOk();
          timerID = setTimeout( "addHandler(document, \'mousemove\', hideOk)", 500);
        }
      }
    }
  }
  //reqAddCart.caching = false;
  reqAddCart.open('GET', link, true);
  reqAddCart.send();
}

function doAddProduct(form) {
  showLoading();
  var reqAddCart = new Subsys_JsHttpRequest_Js();
  reqAddCart.onreadystatechange = function() {
    if (reqAddCart.readyState == 4) {
      if (reqAddCart.responseJS) {
        document.location.href = reqAddCart.responseJS.ajax_redirect;

        return;
      }
      else {
        document.getElementById('divShoppingCard').innerHTML = (reqAddCart.responseText||'')
        if ( SHOW_ADDED ) {
          showOk();
          timerID = setTimeout( "addHandler(document, \'mousemove\', hideOk)", 500);
        }
      }
    }
  }
// ñîáèðàåì âñå ýëåìåíòû ôîðìû:
  var senddata = new Object();
  var fe = form.elements;
  for(var i=0 ; i<fe.length ; i++) {
    if ( fe[i].type=="radio" || fe[i].type=="checkbox" ) {
      if ( fe[i].checked ) senddata[fe[i].name] = fe[i].value;
    } else {
      senddata[fe[i].name] = fe[i].value;
    }
  }
 url = 'index.php?option=com_oscommerce&osMod=ajax_shopping_cart&' + ( senddata.products_id ? 'products_id='+senddata.products_id+'&' : "" )+ 'format=ajax' ;

  reqAddCart.caching = false;
  reqAddCart.open( form.method, url, true);
  reqAddCart.send( senddata );
  return false;
}
ajax_shopping_cart shows this information:
Quote:
<?php
/**
  AJAXBuyNow v2.0

  author Weretennikoff Andrew aka Medreces medreces@yandex.ru

  Released under the GNU General Public License
 */
 // begin joomla 1.5 modification
 
 
  
  require(DIR_WS_INCLUDES . 'classes/sybsys.php');
  $JsHttpRequest =& new Subsys_JsHttpRequest_Php('');
  foreach( $_REQUEST as $key => $value) $HTTP_POST_VARS[$key]=$value;
  

  


  $navigation->remove_current_page();

  $JsHttpRequest->setEncoding(CHARSET);

   require(DIR_FS_MODULES . 'mod_oscommerce_cart/mod_oscommerce_cart.php');
  
  
?>
The require file mod_oscommerce_cart.php
Quote:
<?php
/*
  $Id$

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

  Copyright (c) 2003 osCommerce

  Released under the GNU General Public License
*/
?>
<!-- shopping_cart1 //-->
          <tr>
            <td>
           <td style="padding: 0">
               
                      <div id="divShoppingCard"><table border="0" width="100%" cellspacing="0" cellpadding="2"><?php require(DIR_FS_MODULES . 'mod_oscommerce_cart/mod_original_oscommerce_cart.php'); ?>
                 </table></div>
            </td>
          </tr>
<!-- shopping_cart1_eof //-->
mod_original_oscommerce_cart.php is the standard shoppingcart of oscommerce
Quote:
<?php

defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );

// Check if osCommerce environment is already loaded
if (defined( '_OSCOMMERCE_LOADED' )) {
  // Load osCommerce Globals for Boxes
  global $category_links, $languages_id, $cPath, $cPath_array, $current_category_id;
  global $request_type, $lng, $cart, $currencies, $language, $navigation, $breadcrumb;
} else {
    // Load osCommerce Environment for the First Time
  require('components/com_oscommerce/includes/application_top.php');
}

// This is where you paste the 'BOX' from OSCommerce

  $info_box_contents = array();
  $info_box_contents[] = array('text' => BOX_HEADING_SHOPPING_CART);

  new infoBoxHeading($info_box_contents, false, true, tep_href_link(FILENAME_SHOPPING_CART));
          
  
 $cart_contents_string = tep_draw_form('boxcart_quantity', tep_href_link(FILENAME_SHOPPING_CART, 'action=update_product')) ;
 


  if ($cart->count_contents() > 0) {
    $cart_contents_string .= '<table border="0" width="100%" cellspacing="0" cellpadding="0" id="boxcart-content">';
    $products = $cart->get_products();
    for ($i=0, $n=sizeof($products); $i<$n; $i++) {
      $cart_contents_string .= '<tr id="pc-' . $products[$i]['id'] . '"><td align="right" valign="top" class="infoBoxContents">';

      if ((tep_session_is_registered('new_products_id_in_cart')) && ($new_products_id_in_cart == $products[$i]['id'])) {
        $cart_contents_string .= '<span class="newItemInCart">';
      } else {
        $cart_contents_string .= '<span class="infoBoxContents">';
      }

      $cart_contents_string .= '<span id="pq-' . $products[$i]['id'] . '">' . $products[$i]['quantity'] . '</span>&nbsp;x&nbsp;</span></td><td valign="top" class="infoBoxContents"><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products[$i]['id']) . '">';

      if ((tep_session_is_registered('new_products_id_in_cart')) && ($new_products_id_in_cart == $products[$i]['id'])) {
        $cart_contents_string .= '<span class="newItemInCart">';
      } else {
        $cart_contents_string .= '<span class="infoBoxContents">';
      }

      $cart_contents_string .= $products[$i]['name'] . '</span></a>' ;
      $cart_contents_string .= '<span style="float:right;">
          <a class="boxcart-remove" style="visibility:hidden;cursor:pointer;" rel="' . $products[$i]['id'] . '" title="">' . tep_image(DIR_WS_ICONS . 'small_delete.png') . '</a></span>'
                    . tep_draw_hidden_field('products_id[]', $products[$i]['id'])
                    . tep_draw_checkbox_field('cart_delete[]', $products[$i]['id'], false, "style=display:none;") . '</form>' ;

      $cart_contents_string .='</td></tr>';

      if ((tep_session_is_registered('new_products_id_in_cart')) && ($new_products_id_in_cart == $products[$i]['id'])) {
        tep_session_unregister('new_products_id_in_cart');
      }

    }
    $cart_contents_string .= '</table>';
  } else {
    $cart_contents_string .= '<table border="0" width="100%" cellspacing="0" cellpadding="0" id="boxcart-content"><tr><td>';
    $cart_contents_string .= BOX_SHOPPING_CART_EMPTY;
    $cart_contents_string .= '</td></tr></table>';
  }

  $info_box_contents = array();
  $info_box_contents[] = array('text' => $cart_contents_string);

    $info_box_contents[] = array('text' => tep_draw_separator());
    $info_box_contents[] = array('align' => 'right',
                                 'text' => '<span id=boxcart-total>' . $currencies->format($cart->show_total()) . '</span>' );

  $info_box_contents[] = array('text' => '<span id="boxcart-text-empty" style="display:none;">' . BOX_SHOPPING_CART_EMPTY . '</span>' .
                                         '<span id="boxcart-text-remove" style="display:none;">' . IMAGE_BUTTON_UPDATE_CART . '</span>' .
                                         '<span id="boxcart-button-remove" style="display:none;">
                                          <span style="float:right;"><a class="boxcart-remove" style="cursor:pointer;" rel="" title="">' . tep_image(DIR_WS_ICONS . 'small_delete.png') . '</a></span></span>');
  new infoBox($info_box_contents);
?>
            </td>
          </tr>
<!-- shopping_cart_eof //-->
and the file: sybsys.php
Quote:
<?php
/**
* Subsys_JsHttpRequest_Php: PHP backend for JavaScript DHTML loader.
* (C) 2005 Dmitry Koterov, Дмитрий Котеров (forum.dklab.ru/users/DmitryKoterov/)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
* See www.gnu.org/copyleft/lesser.html
*
* Do not remove this comment if you want to use the script!
* Íå óäàëÿéòå äàííûé êîììåíòàðèé, åñëè âû õîòèòå èñïîëüçîâàòü ñêðèïò!
*
* This backend library also supports POST requests additionally to GET.
*
* @author Dmitry Koterov
* @version 3.29
*/

class Subsys_JsHttpRequest_Php
{
    var $SCRIPT_ENCODING = "windows-1251";
    var $SCRIPT_DECODE_MODE = '';
    var $UNIQ_HASH;
    var $SCRIPT_ID;
    var $LOADER = null;
    var $QUOTING = null;

     
    // Constructor.
    function Subsys_JsHttpRequest_Php($enc)
    {
        // QUERY_STRING is in form: PHPSESSID=<sid>&a=aaa&b=bbb&<id>
        // where <id> is request ID, <sid> - session ID (if present),
        // PHPSESSID - session parameter name (by default = "PHPSESSID").

        // Parse QUERY_STRING wrapper format.
        $this->LOADER = "SCRIPT";
        if (preg_match('/(\d+)((?:-\w+)?)$/s', $_SERVER['QUERY_STRING'], $m)) {
            $this->SCRIPT_ID = $m[1];
            // XMLHttpRequest is used if URI ends with "&".
            if ($m[2] == '-xml') $this->LOADER = "XMLHttpRequest";
        } else {
            $this->SCRIPT_ID = 0;
        }

        // Start OB handling early.
        $this->UNIQ_HASH = md5(microtime().getmypid());
        ini_set('error_prepend_string', ini_get('error_prepend_string').$this->UNIQ_HASH);
        ini_set('error_append_string', ini_get('error_append_string') .$this->UNIQ_HASH);
        ob_start(array(&$this, "_obHandler"));

        // Set up encoding.
        $this->setEncoding($enc);
    }


    // Set active script encoding & correct QUERY_STRING according to it.
    // Examples:
    // "windows-1251" - set plain encoding (non-windows characters,
    // e.g. hieroglyphs, are totally ignored)
    // "windows-1251 entities" - set windows encoding, BUT additionally replace:
    // "&" -> "&amp;"
    // hieroglyph -> &#XXXX; entity
    function setEncoding($enc)
    {
        // Parse encoding.
        preg_match('/^(\S*)(?:\s+(\S*))$/', $enc, $p);
        $this->SCRIPT_ENCODING = strtolower(@$p[1]? $p[1] : $enc);
        $this->SCRIPT_DECODE_MODE = @$p[2]? $p[2] : '';
        // Manually parse QUERY_STRING because of damned Unicode's %uXXXX.
        $this->_correctQueryString();
    }

     
    // Quote string according to input decoding mode.
    // If entities is used (see setEncoding()), no '&' character is quoted,
    // only '"', '>' and '<' (we presume than '&' is already quoted by
    // input reader function).
    //
    // Use this function INSTEAD of htmlspecialchars() for $_GET data
    // in your scripts.
    function quoteInput($s)
    {
        if ($this->SCRIPT_DECODE_MODE == 'entities')
            return str_replace(array('"', '<', '>'), array('&quot;', '&lt;', '&gt;'), $s);
        else
            return htmlspecialchars($s);
    }

     
    // Convert PHP scalar, array or hash to JS scalar/array/hash.
    function _php2js($a)
    {
        if (is_null($a)) return 'null';
        if ($a === false) return 'false';
        if ($a === true) return 'true';
        if (is_scalar($a)) {
            $a = addslashes($a);
            $a = str_replace("\n", '\n', $a);
            $a = str_replace("\r", '\r', $a);
            return "'$a'";
        }
        $isList = true;
        for ($i=0, reset($a); $i<count($a); $i++, next($a))
            if (key($a) !== $i) { $isList = false; break; }
        $result = array();
        if ($isList) {
            foreach ($a as $v) $result[] = Subsys_JsHttpRequest_Php::_php2js($v);
            return '[ ' . join(',', $result) . ' ]';
        } else {
            foreach ($a as $k=>$v) $result[] = Subsys_JsHttpRequest_Php::_php2js($k) . ': ' . Subsys_JsHttpRequest_Php::_php2js($v);
            return '{ ' . join(',', $result) . ' }';
        }
    }


    // Parse & decode QUERY_STRING.
    function _correctQueryString()
    {
        // ATTENTION!!!
        // HTTP_RAW_POST_DATA is only accessible when Content-Type of POST request
        // is NOT default "application/x-www-form-urlencoded"!!!
        // Library frontend sets "application/octet-stream" for that purpose,
        // see JavaScript code.
        foreach (array('_GET'=>$_SERVER['QUERY_STRING'], '_POST'=>@$GLOBALS['HTTP_RAW_POST_DATA']) as $dst=>$src) {
            if (isset($GLOBALS[$dst])) {
                // First correct all 2-byte entities.
                $s = preg_replace('/%(?!5B)(?!5D)([0-9a-f]{2})/si', '%u00\\1', $src);
                // Now we can use standard parse_str() with no worry!
                parse_str($s, $data);
                $GLOBALS[$dst] = $this->_ucs2EntitiesDecode($data);
            }
        }
        $_REQUEST =
            (isset($_COOKIE)? $_COOKIE : array()) +
            (isset($_POST)? $_POST : array()) +
            (isset($_GET)? $_GET : array());
        if (ini_get('register_globals')) {
            // TODO?
        }
    }


    // Called in case of error too!
    function _obHandler($text)
    {
        // Check for error.
        if (preg_match('{'.$this->UNIQ_HASH.'(.*?)'.$this->UNIQ_HASH.'}sx', $text)) {
            $text = str_replace($this->UNIQ_HASH, '', $text);
            $this->WAS_ERROR = 1;
        }
        // Content-type header.
        // In XMLHttpRRequest mode we must return text/plain - damned stupid Opera 8.0. :(
        Header("Content-type: " . ($this->LOADER=="SCRIPT"? "text/javascript" : "text/plain") . "; charset=" . $this->SCRIPT_ENCODING);
        // Make resulting hash.
        if (!isset($this->RESULT)) $this->RESULT = @$GLOBALS['_RESULT'];
        $result = $this->_php2js($this->RESULT);
        $text =
            "// BEGIN Subsys_JsHttpRequest_Js\n" .
            "Subsys_JsHttpRequest_Js.dataReady(\n" .
                " " . $this->_php2js($this->SCRIPT_ID) . ", // this ID is passed from JavaScript frontend\n" .
                " " . $this->_php2js(trim($text)) . ",\n" .
                " " . $result . "\n" .
            ")\n" .
            "// END Subsys_JsHttpRequest_Js\n" .
        "";
// $f = fopen("debug", "w"); fwrite($f, $text); fclose($f);
        return $text;
    }


    // Decode all %uXXXX entities in string or array (recurrent).
    // String must not contain %XX entities - they are ignored!
    function _ucs2EntitiesDecode($data)
    {
        if (is_array($data)) {
            $d = array();
            foreach ($data as $k=>$v) {
                $d[$this->_ucs2EntitiesDecode($k)] = $this->_ucs2EntitiesDecode($v);
            }
            return $d;
        } else {
            if (strpos($data, '%u') !== false) { // improve speed
                $data = preg_replace_callback('/%u([0-9A-F]{1,4})/si', array(&$this, '_ucs2EntitiesDecodeCallback'), $data);
            }
            return $data;
        }
    }

    // Decode one %uXXXX entity (RE callback).
    function _ucs2EntitiesDecodeCallback($p)
    {
        $hex = $p[1];
        $dec = hexdec($hex);
        if ($dec === "38" && $this->SCRIPT_DECODE_MODE == 'entities') {
            // Process "&" separately in "entities" decode mode.
            $c = "&amp;";
        } else {
            if (is_callable('iconv')) {
                $c = @iconv('UCS-2BE', $this->SCRIPT_ENCODING, pack('n', $dec));
            } else {
                $c = $this->_decUcs2Decode($dec, $this->SCRIPT_ENCODING);
            }
            if (!strlen($c)) {
                if ($this->SCRIPT_DECODE_MODE == 'entities') {
                    $c = '&#'.$dec.';';
                } else {
                    $c = '?';
                }
            }
        }
        return $c;
    }


    /**
     * If there is no ICONV, try to decode 1-byte characters manually
     * (for most popular charsets only).
     */

    // Convert from UCS-2BE decimal to $toEnc.
    function _decUcs2Decode($code, $toEnc)
    {
        if ($code < 128) return chr($code);
        if (isset($this->_encTables[$toEnc])) {
            $p = array_search($code, $this->_encTables[$toEnc]);
            if ($p !== false) return chr(128 + $p);
        }
        return "";
    }

    // UCS-2BE -> 1-byte encodings (from #128).
    var $_encTables = array(
        'windows-1251' => array(
            0x0402, 0x0403, 0x201A, 0x0453, 0x201E, 0x2026, 0x2020, 0x2021,
            0x20AC, 0x2030, 0x0409, 0x2039, 0x040A, 0x040C, 0x040B, 0x040F,
            0x0452, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
            0x0098, 0x2122, 0x0459, 0x203A, 0x045A, 0x045C, 0x045B, 0x045F,
            0x00A0, 0x040E, 0x045E, 0x0408, 0x00A4, 0x0490, 0x00A6, 0x00A7,
            0x0401, 0x00A9, 0x0404, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x0407,
            0x00B0, 0x00B1, 0x0406, 0x0456, 0x0491, 0x00B5, 0x00B6, 0x00B7,
            0x0451, 0x2116, 0x0454, 0x00BB, 0x0458, 0x0405, 0x0455, 0x0457,
            0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
            0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F,
            0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
            0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F,
            0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
            0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F,
            0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
            0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F,
        ),
        'koi8-r' => array(
            0x2500, 0x2502, 0x250C, 0x2510, 0x2514, 0x2518, 0x251C, 0x2524,
            0x252C, 0x2534, 0x253C, 0x2580, 0x2584, 0x2588, 0x258C, 0x2590,
            0x2591, 0x2592, 0x2593, 0x2320, 0x25A0, 0x2219, 0x221A, 0x2248,
            0x2264, 0x2265, 0x00A0, 0x2321, 0x00B0, 0x00B2, 0x00B7, 0x00F7,
            0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556,
            0x2557, 0x2558, 0x2559, 0x255A, 0x255B, 0x255C, 0x255d, 0x255E,
            0x255F, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565,
            0x2566, 0x2567, 0x2568, 0x2569, 0x256A, 0x256B, 0x256C, 0x00A9,
            0x044E, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433,
            0x0445, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043d, 0x043E,
            0x043F, 0x044F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432,
            0x044C, 0x044B, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044A,
            0x042E, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413,
            0x0425, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041d, 0x041E,
            0x041F, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412,
            0x042C, 0x042B, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042A
        ),
    );
}
?>
What can be the req.responseText what brings an error? I tried different things the div reload fine only with the error and with no update of the shoppingcart. ( no adding of a product and no update of the price.)
Back to top
View user's profile Send private message
Simpel
Заглянувший



Joined: 25 May 2011
Posts: 5
Карма: 0
   поощрить/наказать


PostPosted: Thu May 26, 2011 12:46 pm (спустя 1 минуту 19 секунд; написано за 4 секунды)
   Post subject:
Reply with quote

Ok that's not easy

ok I try version 3.29 of course is gives the same error

here is the code
Quote:
SHOW_ADDED = 1; // set 0 if you no need show
Offset_X = -10;
Offset_Y = -30;
/**
 * Subsys_JsHttpRequest_Js: JavaScript DHTML data loader.
 * (C) 2005 Dmitry Koterov, Дмитрий Котеров (forum.dklab.ru/users/DmitryKoterov/)
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 * See www.gnu.org/copyleft/lesser.html
 *
 * Do not remove this comment if you want to use script!
 *
 * This library tries to use XMLHttpRequest (if available), and on
 * failure - use dynamically created <script> elements. Backend code
 * is the same for both cases.
 *
 * @author Dmitry Koterov
 * @version 3.29
 */

function Subsys_JsHttpRequest_Js() { this._construct() }
(function() { // to create local-scope variables
    var COUNT = 0;
    var PENDING = {};
    var CACHE = {};

    // Called by server script on data load.
    Subsys_JsHttpRequest_Js.dataReady = function(id, text, js) {
        var undef;
        var th = PENDING[id];
        delete PENDING[id];
        if (th) {
            delete th._xmlReq;
            if (th.caching) CACHE[th.hash] = [text, js];
            th._dataReady(text, js);
        } else if (typeof(th) != typeof(undef)) {
            alert("ScriptLoader: unknown pending id: "+id);
        }
    }

    Subsys_JsHttpRequest_Js.prototype = {
        // Standard properties.
        onreadystatechange: null,
        readyState: 0,
        responseText: null,
        responseXML: null,
        status: 200,
        statusText: "OK",

        // Additional properties.
        session_name: "osCsid", // set to SID cookie or GET parameter name
        responseJS: null, // JavaScript response array/hash
        caching: false, // need to use caching?

        // Internals.
        _span: null,
        _id: null,
        _xmlReq: null,
        _openArg: null,
        _reqHeaders: null,

        dummy: function() {}, // empty function

        abort: function() {
            if (this._xmlReq) return this._xmlReq.abort();
            if (this._span) {
                this.readyState = 0;
                if (this.onreadystatechange) this.onreadystatechange();
                this._cleanupScript();
            }
        },

        open: function(method, url, asyncFlag, username, password) {
            this._openArg = {
                'method': method,
                'url': url,
                'asyncFlag': asyncFlag,
                'username': username,
                'password': password
            };
            this._id = null;
            this._xmlReq = null;
            this._reqHeaders = [];
            return true;
        },

        send: function(content) {
            var id = (new Date().getTime()) + "" + COUNT++;

            // Build QUERY_STRING from query hash.
            var query = this._hash2query(content);

            // Append SID to original URL now.
            var url = this._openArg.url;
            var sid = this._getSid();
            if (sid) url += (url.indexOf('?')>=0? '&' : '?') + this.session_name + "=" + this.escape(sid);
            
            // Solve hash BEFORE appending ID.
            var hash = this.hash = url + '?' + query;
            if (this.caching && CACHE[hash]) {
                var c = CACHE[hash];
                this._dataReady(c[0], c[1]);
                return false;
            }

            // Try to use XMLHttpRequest.
            this._xmlReq = this._obtainXmlReq(id, url);
                 

            // Pass data in URL (GET, HEAD etc.) or in request body (POST)?
            var hasSetHeader = this._xmlReq && (window.ActiveXObject || this._xmlReq.setRequestHeader);
            var href, body;
            if (this._xmlReq && hasSetHeader && (""+this._openArg.method).toUpperCase() == "POST") {
                // Use POST method. Pass query in request body.
                // Opera 8.01 does not support setRequestHeader, so no POST method.
                this._openArg.method = "POST";
                href = url;
                body = query;
            } else {
                this._openArg.method = "GET";
                href = url + (url.indexOf('?')>=0? '&' : '?') + query;
                body = null;
            }
            

            // Append ID: a=aaa&b=bbb&<id>
            href = href + (href.indexOf('?')>=0? '&' : '?') + id;

            // Save loading script.
            PENDING[id] = this;

            if (this._xmlReq) {
                // Open request now & send it.
                // In XMLHttpRequest mode request URL MUST be ended with "<id>-xml".
                var a = this._openArg;
                this._xmlReq.open(a.method, href+"-xml", a.asyncFlag, a.username, a.password);
                if (hasSetHeader) {
                    // Pass pending headers.
                    for (var i=0; i<this._reqHeaders.length; i++)
                        this._xmlReq.setRequestHeader(this._reqHeaders[i][0], this._reqHeaders[i][1]);
                    // Set non-default Content-type. We cannot use
                    // "application/x-www-form-urlencoded" here, because
                    // in PHP variable HTTP_RAW_POST_DATA is accessible only when
                    // enctype is not default (e.g., "application/octet-stream"
                    // is a good start). We parse POST data manually in backend
                    // library code.
                    this._xmlReq.setRequestHeader('Content-Type', 'application/octet-stream');
                }
                // Send the request.
                return this._xmlReq.send(body);
            } else {
                // Create <script> element and run it.
                this._obtainScript(id, href);
                return true;
            }
        },

        getAllResponseHeaders: function() {
            if (this._xmlReq) return this._xmlReq.getAllResponseHeaders();
            return '';
        },

        getResponseHeader: function(label) {
            if (this._xmlReq) return this._xmlReq.getResponseHeader(label);
            return '';
        },

        setRequestHeader: function(label, value) {
            // Collect headers.
            this._reqHeaders[this._reqHeaders.length] = [label, value];
        },


        //
        // Internal functions.
        //

        // Constructor.
        _construct: function() {},

        // Do all work when data is ready.
        _dataReady: function(text, js) { with (this) {
            if (text !== null || js !== null) {
                readyState = 4;
                responseText = responseXML = text;
                responseJS = js;
            } else {
                readyState = 0;
                responseText = responseXML = responseJS = null;
            }
            if (onreadystatechange) onreadystatechange();
            _cleanupScript();
        }},

        // Create new XMLHttpRequest object.
        _obtainXmlReq: function(id, url) {
            // If url.domain specified, cannot use XMLHttpRequest!
            // XMLHttpRequest (and MS ActiveX'es) cannot work with different domains.
            if (url.match(new RegExp('^[a-z]+://', 'i'))) return null;

            // Try to use built-in loaders.
            var req = null;
            if (window.XMLHttpRequest) {
                try { req = new XMLHttpRequest() } catch(e) {}
            } else if (window.ActiveXObject) {
                try { req = new ActiveXObject("Microsoft.XMLHTTP") } catch(e) {}
                if (!req) try { req = new ActiveXObject("Msxml2.XMLHTTP") } catch (e) {}
            }
            if (req) {
                var th = this;
                req.onreadystatechange = function() {
                    var s = req.readyState;
                    if (s == 4) {
                        // Avoid memory leak by removing closure.
                        req.onreadystatechange = th.dummy;
                        // Remove possible junk from response.
                        var responseText = req.responseText;
                        try {
                            // Call associated dataReady().
                            eval(responseText);
                        } catch (e) {
                            Subsys_JsHttpRequest_Js.dataReady(id, "JavaScript code generated by backend is invalid!\n"+responseText, null);
                        }
                    } else {
                        th.readyState = s;
                        if (th.onreadystatechange) th.onreadystatechange()
                    }
                };
                this._id = id;
            }
            return req;
        },

        // Create new script element and start loading.
        _obtainScript: function(id, href) { with (document) {
            var span = null;
            // Oh shit! Damned stupid fucked Opera 7.23 does not allow to create SCRIPT
            // element over createElement (in HEAD or BODY section or in nested SPAN -
            // no matter): it is created deadly, and does not respons on href assignment.
            // So - always create SPAN.
            span = body.appendChild(createElement("SPAN"));
            span.style.display = 'none';
            span.innerHTML = 'Text for stupid IE.<s'+'cript></' + 'script>';
            setTimeout(function() {
                var s = span.getElementsByTagName("script")[0];
                s.language = "JavaScript";
                s.type = "text/javascript";
                //if (s.setAttribute) s.setAttribute('src', href); else s.src = href;
                
                $.get(
                    href,
                    function(data) {
                        s.innerHTML = data;
                    }
                );
                
            }, 10);
            
            this._id = id;
            this._span = span;
        }},

        // Remove last used script element (clean memory).
        _cleanupScript: function() {
            var span = this._span;
            if (span) {
                this._span = null;
                setTimeout(function() {
                    // without setTimeout - crash in IE 5.0!
                    span.parentNode.removeChild(span);
                }, 50);
            }
            return false;
        },

        // Convert hash to QUERY_STRING.
        _hash2query: function(content, prefix) {
            if (prefix == null) prefix = "";
            var query = [];
            if (content instanceof Object) {
                for (var k in content) {
                    var v = content[k];
                    if (v == null || ((v.constructor||{}).prototype||{})[k]) continue;
                    var curPrefix = prefix? prefix+'['+this.escape(k)+']' : this.escape(k);
                    if (v instanceof Object)
                        query[query.length] = this._hash2query(v, curPrefix);
                    else
                        query[query.length] = curPrefix + "=" + this.escape(v);
                }
            } else {
                query = [content];
            }
            return query.join('&');
        },

        // Return value of SID based on QUERY_STRING or cookie
        // (PHP compatible sessions).
        _getSid: function() {
            var m = document.location.search.match(new RegExp('[&?]'+this.session_name+'=([^&?]*)'));
            var sid = null;
            if (m) {
                sid = m[1];
            } else {
                var m = document.cookie.match(new RegExp(s='(;|^)\\s*'+this.session_name+'=([^;]*)'));
                if (m) sid = m[2];
            }
            return sid;
        },

        // Stupid JS escape() does not quote '+'.
        escape: function(s) {
            return escape(s).replace(new RegExp('\\+','g'), '%2B');
        }
    }
})();
function addHandler(object, event, handler) { // Thanks xpoint.ru!
  if (typeof object.addEventListener != 'undefined')
    object.addEventListener(event, handler, false);
  else if (typeof object.attachEvent != 'undefined')
    object.attachEvent('on' + event, handler);
  else {
    var handlersProp = '_handlerStack_' + event;
    var eventProp = 'on' + event;
    if (typeof object[handlersProp] == 'undefined') {
      object[handlersProp] = [];
      if (typeof object[eventProp] != 'undefined')
        object[handlersProp].push(object[eventProp]);
      object[eventProp] = function(e) {
        var ret = true;
        for (var i = 0; ret != false && i < object[handlersProp].length; i++)
          ret = object[handlersProp][i](e);
        return ret;
    } }
    object[handlersProp].push(handler);
} }
function removeHandler(object, event, handler) { // Thanks xpoint.ru!
  if (typeof object.removeEventListener != 'undefined')
    object.removeEventListener(event, handler, false);
  else if (typeof object.detachEvent != 'undefined')
    object.detachEvent('on' + event, handler);
  else {
    var handlersProp = '_handlerStack_' + event;
    if (typeof object[handlersProp] != 'undefined') {
      for (var i = 0; i < object[handlersProp].length; i++) {
        if (object[handlersProp][i] == handler) {
          object[handlersProp].splice(i, 1);
          return;
} } } } }
/**
  AJAXBuyNow v2.0

  author Weretennikoff Andrew aka Medreces medreces@yandex.ru

  Released under the GNU General Public License
*/
var x, y;
var loadingImage = new Image();
var okImage = new Image();
loadingImage.src = "components/com_oscommerce_personal/images/icons/loading.gif";
okImage.src = "components/com_oscommerce_personal/images/icons/ok.png";

if (window.opera || (navigator.userAgent.indexOf('MSIE') > -1)) { //IE + Opera
  getM_x = function () { return event.clientX + document.body.scrollLeft; }
  getM_y = function () { return event.clientY + document.body.scrollTop; }
} else { // Mozilla
  addHandler(document, 'mousemove', function(e) {
    x = e.pageX;
    y = e.pageY;
  });
  getM_x = function () { return x; }
  getM_y = function () { return y; }
}
function showOk() {
  var imgLoading = document.getElementById("_loading_");
  with (imgLoading) {
    src = okImage.src;
    style.visibility = "visible";
} }

function hideOk() {
  if(document.getElementById("_loading_")) document.getElementById('_loading_').style.visibility = "hidden";
  removeHandler(document, 'mousemove', hideOk);
}
function showLoading() {
  var imgLoading = document.getElementById("_loading_");
  if(!imgLoading) {
    imgLoading = document.createElement("img");
    with(imgLoading) {
      id = "_loading_";
      style.position = "absolute";
      style.visibility = "hidden";
    }
    document.body.appendChild(imgLoading);
  }
  with(imgLoading) {
    src = loadingImage.src;
    style.left = (getM_x() + Offset_X) + "px";
    style.top = (getM_y() + Offset_Y) + "px";
    style.visibility = "visible";
} }
function hideLoading() {
  if(document.getElementById("_loading_")) document.getElementById("_loading_").style.visibility = "hidden";
}

function doBuyNowGet( link ) {
        showLoading();
  var reqAddCart = new Subsys_JsHttpRequest_Js();
  reqAddCart.onreadystatechange = function() {
    if (reqAddCart.readyState == 4) {
      if (reqAddCart.responseJS) {
        document.location.href = reqAddCart.responseJS.ajax_redirect;
        return;
      }
      else {
        document.getElementById('divShoppingCard').innerHTML = (reqAddCart.responseText||'');
        hideLoading();
        if ( SHOW_ADDED ) {
          showOk();
          timerID = setTimeout( "addHandler(document, \'mousemove\', hideOk)", 500);
        }
      }
    }
  }
  //reqAddCart.caching = false;
  reqAddCart.open('GET', link, true);
  reqAddCart.send();
}

function doAddProduct(form) {
  showLoading();
  var reqAddCart = new Subsys_JsHttpRequest_Js();
  reqAddCart.onreadystatechange = function() {
    if (reqAddCart.readyState == 4) {
      if (reqAddCart.responseJS) {
        document.location.href = reqAddCart.responseJS.ajax_redirect;

        return;
      }
      else {
        document.getElementById('divShoppingCard').innerHTML = (reqAddCart.responseText||'')
        if ( SHOW_ADDED ) {
          showOk();
          timerID = setTimeout( "addHandler(document, \'mousemove\', hideOk)", 500);
        }
      }
    }
  }
// ñîáèðàåì âñå ýëåìåíòû ôîðìû:
  var senddata = new Object();
  var fe = form.elements;
  for(var i=0 ; i<fe.length ; i++) {
    if ( fe[i].type=="radio" || fe[i].type=="checkbox" ) {
      if ( fe[i].checked ) senddata[fe[i].name] = fe[i].value;
    } else {
      senddata[fe[i].name] = fe[i].value;
    }
  }
 url = 'index.php?option=com_oscommerce&osMod=ajax_shopping_cart&' + ( senddata.products_id ? 'products_id='+senddata.products_id+'&' : "" )+ 'format=ajax' ;

  reqAddCart.caching = false;
  reqAddCart.open( form.method, url, true);
  reqAddCart.send( senddata );
  return false;
}
ajax_shopping_cart shows this information:
Quote:
<?php
/**
  AJAXBuyNow v2.0

  author Weretennikoff Andrew aka Medreces medreces@yandex.ru

  Released under the GNU General Public License
 */
 // begin joomla 1.5 modification
 
 
  
  require(DIR_WS_INCLUDES . 'classes/sybsys.php');
  $JsHttpRequest =& new Subsys_JsHttpRequest_Php('');
  foreach( $_REQUEST as $key => $value) $HTTP_POST_VARS[$key]=$value;
  

  


  $navigation->remove_current_page();

  $JsHttpRequest->setEncoding(CHARSET);

   require(DIR_FS_MODULES . 'mod_oscommerce_cart/mod_oscommerce_cart.php');
  
  
?>
The require file mod_oscommerce_cart.php
Quote:
<?php
/*
  $Id$

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

  Copyright (c) 2003 osCommerce

  Released under the GNU General Public License
*/
?>
<!-- shopping_cart1 //-->
          <tr>
            <td>
           <td style="padding: 0">
               
                      <div id="divShoppingCard"><table border="0" width="100%" cellspacing="0" cellpadding="2"><?php require(DIR_FS_MODULES . 'mod_oscommerce_cart/mod_original_oscommerce_cart.php'); ?>
                 </table></div>
            </td>
          </tr>
<!-- shopping_cart1_eof //-->
mod_original_oscommerce_cart.php is the standard shoppingcart of oscommerce
Quote:
<?php

defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );

// Check if osCommerce environment is already loaded
if (defined( '_OSCOMMERCE_LOADED' )) {
  // Load osCommerce Globals for Boxes
  global $category_links, $languages_id, $cPath, $cPath_array, $current_category_id;
  global $request_type, $lng, $cart, $currencies, $language, $navigation, $breadcrumb;
} else {
    // Load osCommerce Environment for the First Time
  require('components/com_oscommerce/includes/application_top.php');
}

// This is where you paste the 'BOX' from OSCommerce

  $info_box_contents = array();
  $info_box_contents[] = array('text' => BOX_HEADING_SHOPPING_CART);

  new infoBoxHeading($info_box_contents, false, true, tep_href_link(FILENAME_SHOPPING_CART));
          
  
 $cart_contents_string = tep_draw_form('boxcart_quantity', tep_href_link(FILENAME_SHOPPING_CART, 'action=update_product')) ;
 


  if ($cart->count_contents() > 0) {
    $cart_contents_string .= '<table border="0" width="100%" cellspacing="0" cellpadding="0" id="boxcart-content">';
    $products = $cart->get_products();
    for ($i=0, $n=sizeof($products); $i<$n; $i++) {
      $cart_contents_string .= '<tr id="pc-' . $products[$i]['id'] . '"><td align="right" valign="top" class="infoBoxContents">';

      if ((tep_session_is_registered('new_products_id_in_cart')) && ($new_products_id_in_cart == $products[$i]['id'])) {
        $cart_contents_string .= '<span class="newItemInCart">';
      } else {
        $cart_contents_string .= '<span class="infoBoxContents">';
      }

      $cart_contents_string .= '<span id="pq-' . $products[$i]['id'] . '">' . $products[$i]['quantity'] . '</span>&nbsp;x&nbsp;</span></td><td valign="top" class="infoBoxContents"><a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products[$i]['id']) . '">';

      if ((tep_session_is_registered('new_products_id_in_cart')) && ($new_products_id_in_cart == $products[$i]['id'])) {
        $cart_contents_string .= '<span class="newItemInCart">';
      } else {
        $cart_contents_string .= '<span class="infoBoxContents">';
      }

      $cart_contents_string .= $products[$i]['name'] . '</span></a>' ;
      $cart_contents_string .= '<span style="float:right;">
          <a class="boxcart-remove" style="visibility:hidden;cursor:pointer;" rel="' . $products[$i]['id'] . '" title="">' . tep_image(DIR_WS_ICONS . 'small_delete.png') . '</a></span>'
                    . tep_draw_hidden_field('products_id[]', $products[$i]['id'])
                    . tep_draw_checkbox_field('cart_delete[]', $products[$i]['id'], false, "style=display:none;") . '</form>' ;

      $cart_contents_string .='</td></tr>';

      if ((tep_session_is_registered('new_products_id_in_cart')) && ($new_products_id_in_cart == $products[$i]['id'])) {
        tep_session_unregister('new_products_id_in_cart');
      }

    }
    $cart_contents_string .= '</table>';
  } else {
    $cart_contents_string .= '<table border="0" width="100%" cellspacing="0" cellpadding="0" id="boxcart-content"><tr><td>';
    $cart_contents_string .= BOX_SHOPPING_CART_EMPTY;
    $cart_contents_string .= '</td></tr></table>';
  }

  $info_box_contents = array();
  $info_box_contents[] = array('text' => $cart_contents_string);

    $info_box_contents[] = array('text' => tep_draw_separator());
    $info_box_contents[] = array('align' => 'right',
                                 'text' => '<span id=boxcart-total>' . $currencies->format($cart->show_total()) . '</span>' );

  $info_box_contents[] = array('text' => '<span id="boxcart-text-empty" style="display:none;">' . BOX_SHOPPING_CART_EMPTY . '</span>' .
                                         '<span id="boxcart-text-remove" style="display:none;">' . IMAGE_BUTTON_UPDATE_CART . '</span>' .
                                         '<span id="boxcart-button-remove" style="display:none;">
                                          <span style="float:right;"><a class="boxcart-remove" style="cursor:pointer;" rel="" title="">' . tep_image(DIR_WS_ICONS . 'small_delete.png') . '</a></span></span>');
  new infoBox($info_box_contents);
?>
            </td>
          </tr>
<!-- shopping_cart_eof //-->
and the file: sybsys.php
Quote:
<?php
/**
* Subsys_JsHttpRequest_Php: PHP backend for JavaScript DHTML loader.
* (C) 2005 Dmitry Koterov, Дмитрий Котеров (forum.dklab.ru/users/DmitryKoterov/)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
* See www.gnu.org/copyleft/lesser.html
*
* Do not remove this comment if you want to use the script!
* Íå óäàëÿéòå äàííûé êîììåíòàðèé, åñëè âû õîòèòå èñïîëüçîâàòü ñêðèïò!
*
* This backend library also supports POST requests additionally to GET.
*
* @author Dmitry Koterov
* @version 3.29
*/

class Subsys_JsHttpRequest_Php
{
    var $SCRIPT_ENCODING = "windows-1251";
    var $SCRIPT_DECODE_MODE = '';
    var $UNIQ_HASH;
    var $SCRIPT_ID;
    var $LOADER = null;
    var $QUOTING = null;

     
    // Constructor.
    function Subsys_JsHttpRequest_Php($enc)
    {
        // QUERY_STRING is in form: PHPSESSID=<sid>&a=aaa&b=bbb&<id>
        // where <id> is request ID, <sid> - session ID (if present),
        // PHPSESSID - session parameter name (by default = "PHPSESSID").

        // Parse QUERY_STRING wrapper format.
        $this->LOADER = "SCRIPT";
        if (preg_match('/(\d+)((?:-\w+)?)$/s', $_SERVER['QUERY_STRING'], $m)) {
            $this->SCRIPT_ID = $m[1];
            // XMLHttpRequest is used if URI ends with "&".
            if ($m[2] == '-xml') $this->LOADER = "XMLHttpRequest";
        } else {
            $this->SCRIPT_ID = 0;
        }

        // Start OB handling early.
        $this->UNIQ_HASH = md5(microtime().getmypid());
        ini_set('error_prepend_string', ini_get('error_prepend_string').$this->UNIQ_HASH);
        ini_set('error_append_string', ini_get('error_append_string') .$this->UNIQ_HASH);
        ob_start(array(&$this, "_obHandler"));

        // Set up encoding.
        $this->setEncoding($enc);
    }


    // Set active script encoding & correct QUERY_STRING according to it.
    // Examples:
    // "windows-1251" - set plain encoding (non-windows characters,
    // e.g. hieroglyphs, are totally ignored)
    // "windows-1251 entities" - set windows encoding, BUT additionally replace:
    // "&" -> "&amp;"
    // hieroglyph -> &#XXXX; entity
    function setEncoding($enc)
    {
        // Parse encoding.
        preg_match('/^(\S*)(?:\s+(\S*))$/', $enc, $p);
        $this->SCRIPT_ENCODING = strtolower(@$p[1]? $p[1] : $enc);
        $this->SCRIPT_DECODE_MODE = @$p[2]? $p[2] : '';
        // Manually parse QUERY_STRING because of damned Unicode's %uXXXX.
        $this->_correctQueryString();
    }

     
    // Quote string according to input decoding mode.
    // If entities is used (see setEncoding()), no '&' character is quoted,
    // only '"', '>' and '<' (we presume than '&' is already quoted by
    // input reader function).
    //
    // Use this function INSTEAD of htmlspecialchars() for $_GET data
    // in your scripts.
    function quoteInput($s)
    {
        if ($this->SCRIPT_DECODE_MODE == 'entities')
            return str_replace(array('"', '<', '>'), array('&quot;', '&lt;', '&gt;'), $s);
        else
            return htmlspecialchars($s);
    }

     
    // Convert PHP scalar, array or hash to JS scalar/array/hash.
    function _php2js($a)
    {
        if (is_null($a)) return 'null';
        if ($a === false) return 'false';
        if ($a === true) return 'true';
        if (is_scalar($a)) {
            $a = addslashes($a);
            $a = str_replace("\n", '\n', $a);
            $a = str_replace("\r", '\r', $a);
            return "'$a'";
        }
        $isList = true;
        for ($i=0, reset($a); $i<count($a); $i++, next($a))
            if (key($a) !== $i) { $isList = false; break; }
        $result = array();
        if ($isList) {
            foreach ($a as $v) $result[] = Subsys_JsHttpRequest_Php::_php2js($v);
            return '[ ' . join(',', $result) . ' ]';
        } else {
            foreach ($a as $k=>$v) $result[] = Subsys_JsHttpRequest_Php::_php2js($k) . ': ' . Subsys_JsHttpRequest_Php::_php2js($v);
            return '{ ' . join(',', $result) . ' }';
        }
    }


    // Parse & decode QUERY_STRING.
    function _correctQueryString()
    {
        // ATTENTION!!!
        // HTTP_RAW_POST_DATA is only accessible when Content-Type of POST request
        // is NOT default "application/x-www-form-urlencoded"!!!
        // Library frontend sets "application/octet-stream" for that purpose,
        // see JavaScript code.
        foreach (array('_GET'=>$_SERVER['QUERY_STRING'], '_POST'=>@$GLOBALS['HTTP_RAW_POST_DATA']) as $dst=>$src) {
            if (isset($GLOBALS[$dst])) {
                // First correct all 2-byte entities.
                $s = preg_replace('/%(?!5B)(?!5D)([0-9a-f]{2})/si', '%u00\\1', $src);
                // Now we can use standard parse_str() with no worry!
                parse_str($s, $data);
                $GLOBALS[$dst] = $this->_ucs2EntitiesDecode($data);
            }
        }
        $_REQUEST =
            (isset($_COOKIE)? $_COOKIE : array()) +
            (isset($_POST)? $_POST : array()) +
            (isset($_GET)? $_GET : array());
        if (ini_get('register_globals')) {
            // TODO?
        }
    }


    // Called in case of error too!
    function _obHandler($text)
    {
        // Check for error.
        if (preg_match('{'.$this->UNIQ_HASH.'(.*?)'.$this->UNIQ_HASH.'}sx', $text)) {
            $text = str_replace($this->UNIQ_HASH, '', $text);
            $this->WAS_ERROR = 1;
        }
        // Content-type header.
        // In XMLHttpRRequest mode we must return text/plain - damned stupid Opera 8.0. :(
        Header("Content-type: " . ($this->LOADER=="SCRIPT"? "text/javascript" : "text/plain") . "; charset=" . $this->SCRIPT_ENCODING);
        // Make resulting hash.
        if (!isset($this->RESULT)) $this->RESULT = @$GLOBALS['_RESULT'];
        $result = $this->_php2js($this->RESULT);
        $text =
            "// BEGIN Subsys_JsHttpRequest_Js\n" .
            "Subsys_JsHttpRequest_Js.dataReady(\n" .
                " " . $this->_php2js($this->SCRIPT_ID) . ", // this ID is passed from JavaScript frontend\n" .
                " " . $this->_php2js(trim($text)) . ",\n" .
                " " . $result . "\n" .
            ")\n" .
            "// END Subsys_JsHttpRequest_Js\n" .
        "";
// $f = fopen("debug", "w"); fwrite($f, $text); fclose($f);
        return $text;
    }


    // Decode all %uXXXX entities in string or array (recurrent).
    // String must not contain %XX entities - they are ignored!
    function _ucs2EntitiesDecode($data)
    {
        if (is_array($data)) {
            $d = array();
            foreach ($data as $k=>$v) {
                $d[$this->_ucs2EntitiesDecode($k)] = $this->_ucs2EntitiesDecode($v);
            }
            return $d;
        } else {
            if (strpos($data, '%u') !== false) { // improve speed
                $data = preg_replace_callback('/%u([0-9A-F]{1,4})/si', array(&$this, '_ucs2EntitiesDecodeCallback'), $data);
            }
            return $data;
        }
    }

    // Decode one %uXXXX entity (RE callback).
    function _ucs2EntitiesDecodeCallback($p)
    {
        $hex = $p[1];
        $dec = hexdec($hex);
        if ($dec === "38" && $this->SCRIPT_DECODE_MODE == 'entities') {
            // Process "&" separately in "entities" decode mode.
            $c = "&amp;";
        } else {
            if (is_callable('iconv')) {
                $c = @iconv('UCS-2BE', $this->SCRIPT_ENCODING, pack('n', $dec));
            } else {
                $c = $this->_decUcs2Decode($dec, $this->SCRIPT_ENCODING);
            }
            if (!strlen($c)) {
                if ($this->SCRIPT_DECODE_MODE == 'entities') {
                    $c = '&#'.$dec.';';
                } else {
                    $c = '?';
                }
            }
        }
        return $c;
    }


    /**
     * If there is no ICONV, try to decode 1-byte characters manually
     * (for most popular charsets only).
     */

    // Convert from UCS-2BE decimal to $toEnc.
    function _decUcs2Decode($code, $toEnc)
    {
        if ($code < 128) return chr($code);
        if (isset($this->_encTables[$toEnc])) {
            $p = array_search($code, $this->_encTables[$toEnc]);
            if ($p !== false) return chr(128 + $p);
        }
        return "";
    }

    // UCS-2BE -> 1-byte encodings (from #128).
    var $_encTables = array(
        'windows-1251' => array(
            0x0402, 0x0403, 0x201A, 0x0453, 0x201E, 0x2026, 0x2020, 0x2021,
            0x20AC, 0x2030, 0x0409, 0x2039, 0x040A, 0x040C, 0x040B, 0x040F,
            0x0452, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
            0x0098, 0x2122, 0x0459, 0x203A, 0x045A, 0x045C, 0x045B, 0x045F,
            0x00A0, 0x040E, 0x045E, 0x0408, 0x00A4, 0x0490, 0x00A6, 0x00A7,
            0x0401, 0x00A9, 0x0404, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x0407,
            0x00B0, 0x00B1, 0x0406, 0x0456, 0x0491, 0x00B5, 0x00B6, 0x00B7,
            0x0451, 0x2116, 0x0454, 0x00BB, 0x0458, 0x0405, 0x0455, 0x0457,
            0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
            0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F,
            0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
            0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F,
            0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
            0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F,
            0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
            0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F,
        ),
        'koi8-r' => array(
            0x2500, 0x2502, 0x250C, 0x2510, 0x2514, 0x2518, 0x251C, 0x2524,
            0x252C, 0x2534, 0x253C, 0x2580, 0x2584, 0x2588, 0x258C, 0x2590,
            0x2591, 0x2592, 0x2593, 0x2320, 0x25A0, 0x2219, 0x221A, 0x2248,
            0x2264, 0x2265, 0x00A0, 0x2321, 0x00B0, 0x00B2, 0x00B7, 0x00F7,
            0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556,
            0x2557, 0x2558, 0x2559, 0x255A, 0x255B, 0x255C, 0x255d, 0x255E,
            0x255F, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565,
            0x2566, 0x2567, 0x2568, 0x2569, 0x256A, 0x256B, 0x256C, 0x00A9,
            0x044E, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433,
            0x0445, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043d, 0x043E,
            0x043F, 0x044F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432,
            0x044C, 0x044B, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044A,
            0x042E, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413,
            0x0425, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041d, 0x041E,
            0x041F, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412,
            0x042C, 0x042B, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042A
        ),
    );
}
?>
What can be the req.responseText what brings an error? I tried different things the div reload fine only with the error and with no update of the shoppingcart. ( no adding of a product and no update of the price.)
Back to top
View user's profile Send private message
Simpel
Заглянувший



Joined: 25 May 2011
Posts: 5
Карма: 0
   поощрить/наказать


PostPosted: Thu May 26, 2011 12:51 pm (спустя 5 минут; написано за 1 минуту 16 секунд)
   Post subject:
Reply with quote

But when I make the normal shoppingcart of the div. I can see a product is added and the price is updated.
Back to top
View user's profile Send private message
Rumata
Профессионал



Joined: 17 Aug 2003
Posts: 1850
Карма: 185
   поощрить/наказать


PostPosted: Thu May 26, 2011 4:32 pm (спустя 3 часа 41 минуту; написано за 2 минуты 17 секунд)
   Post subject:
Reply with quote

Uuhhh! So huge sheets! Are you sure that someone will observe all of them? I can say -- none and never. Could you be so kind as to localize problem portions of code and show here, please?
Back to top
View user's profile Send private message
Simpel
Заглянувший



Joined: 25 May 2011
Posts: 5
Карма: 0
   поощрить/наказать


PostPosted: Thu May 26, 2011 11:41 pm (спустя 7 часов 8 минут; написано за 4 минуты)
   Post subject:
Reply with quote

I am sorry!

As you explane before: The req.responseText is arbitrary text and brings to errors because only a valid javascript code can be eval'd. As a conclusion - it should contain a valid javascript code only.

sybsys.php (js.js) and Subsys_(JsHttpRequest_Js)are file codes from Dmitry Koterov and explaned here en.dklab.ru/lib/JsHttpRequest/

Only the last piece of Subsys_JsHttpRequest_Js is different. mod_original_oscommerce_cart.php is the oscommerce cart. So you can eliminate pieces of code. I am not an expert and really don't know where to look at for couple weeks now.

In firebug I found
     
Quote:
       "// BEGIN Subsys_JsHttpRequest_Js\n" .
            "Subsys_JsHttpRequest_Js.dataReady(\n" . (GOOD)
                " " . $this->_php2js($this->SCRIPT_ID) . ", // this ID is passed from JavaScript frontend\n" . (GOOD)
                " " . $this->_php2js(trim($text)) . ",\n" .(ERROR)
                " " . $result . "\n" .(ERROR)
            ")\n" .
            "// END Subsys_JsHttpRequest_Js\n" . (GOOD)
Has it something to do with each other? " " . $this->_php2js(trim($text)) . ",\n" and
Quote:
try {
                            // Call associated dataReady().
                            eval(responseText);
                        } catch (e) {
                            Subsys_JsHttpRequest_Js.dataReady(id, "JavaScript code generated by backend is invalid!\n"+responseText, null);
                        }
?? I hope you or somebody else can help me. Could it be a wrong link?
Back to top
View user's profile Send private message
Simpel
Заглянувший



Joined: 25 May 2011
Posts: 5
Карма: 0
   поощрить/наказать


PostPosted: Sat May 28, 2011 8:26 pm (спустя 1 день 20 часов 45 минут; написано за 2 минуты 58 секунд)
   Post subject:
Reply with quote

The strandard version gives in firebug these tabs.

Params Headers Post Response( javascript?)

RESPONSE
Quote:
// BEGIN Subsys_JsHttpRequest_Js
Subsys_JsHttpRequest_Js.dataReady(
  '13066031727940', // this ID is passed from JavaScript frontend
  '<!-- shopping_cart1 //-->\n <tr>\n <td>\n<table border=\"0\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\">\n <tr>\n <td height=\"14\" class=\"infoBoxHeading\"><img src=\"images/infobox/corner_right_left.gif\" border=\"0\" alt=\"\" width=\"11\" height=\"14\"></td>\n <td width=\"100%\" height=\"14\" class=\"infoBoxHeading\">Shopping Cart</td>\n <td height=\"14\" class=\"infoBoxHeading\" nowrap><a href=\"domain/~oscommerce/shopping_cart.php\"><img src=\"images/infobox/arrow_right.gif\" border=\"0\" alt=\"more\" title=\" more \" width=\"12\" height=\"10\"></a><img src=\"images/infobox/corner_right.gif\" border=\"0\" alt=\"\" width=\"11\" height=\"14\"></td>\n </tr>\n</table>\n<table border=\"0\" width=\"100%\" cellspacing=\"0\" cellpadding=\"1\" class=\"infoBox\">\n <tr>\n <td><table border=\"0\" width=\"100%\" cellspacing=\"0\" cellpadding=\"3\" class=\"infoBoxContents\">\n <tr>\n <td><img src=\"images/pixel_trans.gif\" border=\"0\" alt=\"\" width=\"100%\" height=\"1\"></td>\n </tr>\n <tr>\n <td class=\"boxText\">0 items</td>\n </tr>\n <tr>\n <td><img src=\"images/pixel_trans.gif\" border=\"0\" alt=\"\" width=\"100%\" height=\"1\"></td>\n </tr>\n</table>\n</td>\n </tr>\n</table>\n </td>\n </tr>\n<!-- shopping_cart1_eof //-->',
  null
)
// END Subsys_JsHttpRequest_Js
but in my version I got one more tab

Params Headers Post Response HTML


REPONSE
Quote:
<!-- shopping_cart1 //-->
          <tr>
            <td>
           <td style="padding: 0">
               
                      <div id="divShoppingCard"><table border="0" width="100%" cellspacing="0" cellpadding="2"><!-- shopping_cart1 //-->
          <tr>
            <td>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
  <tr>
    <td height="18" class="componentheading"><img src="/~domain/components/com_oscommerce_personal/images/pixel_trans.gif" width="11" height="18" border="0" alt="" /></td>
    <td width="100%" height="18" class="componentheading">Shopping Cart</td>
    <td height="18" class="componentheading" nowrap><a href="domain/index.php?option=com_oscommerce&amp;osMod=shopping_cart&amp;Itemid=2"><img src="/~domain/components/com_oscommerce_personal/images/infobox/arrow_right.gif" width="12" height="10" border="0" alt="more" title="more" /></a><img src="/~domain/components/com_oscommerce_personal/images/pixel_trans.gif" width="11" height="18" border="0" alt="" /></td>
  </tr>
</table>
<table border="0" width="100%" cellspacing="0" cellpadding="1" class="infobox">
  <tr>
    <td><table border="0" width="100%" cellspacing="0" cellpadding="3" class="infoboxContents">
  <tr>
    <td><img src="/~domain/components/com_oscommerce_personal/images/pixel_trans.gif" width="100%" height="1" border="0" alt="" /></td>
  </tr>
  <tr>
    <td><div class="boxText">0 items</div></td>
  </tr>
  <tr>
    <td><img src="/~domain/components/com_oscommerce_personal/images/pixel_trans.gif" width="100%" height="1" border="0" alt="" /></td>
  </tr>
</table>
</td>
  </tr>
</table>
            </td>
          </tr>
<!-- shopping_cart1_eof //-->
The HTML is the webpage as we known. Could this be the problem?
Back to top
View user's profile Send private message
qiujie
Участник форума



Joined: 12 Sep 2016
Posts: 112
Карма: 1
   поощрить/наказать


PostPosted: Mon Sep 12, 2016 5:31 am (спустя 5 лет 3 месяца 14 дней 9 часов 4 минуты)
   Post subject: 2016912qiujie
Reply with quote

discount oakley sunglasses (www.oakley--sunglasses.us.org)
ralph lauren outlet (www.poloralphlauren-outlet.co.uk)
coach outlet (www.coach-outletonlines.us.com)
birkenstock sandals (www.birkenstock-sandals.us.com)
ugg boots outlet (www.ugg-boots.de.com)
ysl outlet (www.ysl-outlet.com)
nfl jerseys (www.cheapnfljerseys-wholesale.us)
ugg boots (www.ugg-outletboots.in.net)
christian louboutin (www.louboutin.eu.com)
true religion outlet (www.true-religionjeansoutlet.in.net)
oakley vault (www.oakleysvaultoutletstore.org)
uggs australia (www.uggsaustralia.fr)
coach outlet (www.coach-outletonline.us.org)
gucci outlet (www.guccihandbagsoutlet.us)
the north face (www.thenorthface.org.uk)
timberland boots (www.timberlandbootsuk.org.uk)
pandora charms (www.pandoracharmsuk.org.uk)
true religion outlet (www.true-religionjeans.net.co)
basketball shoes (www.cheapbasketballshoes.us)
fitflops (www.fitflops.in.net)
birkenstock sandals (www.birkenstocks.us.com)
gucci borse (www.gucci-borse.it)
cheap ray bans (www.cheapraybans.com.co)
michael kors outlet (www.michaelkorsoutlet-online.us.org)
yeezy boost 350 balck (www.yeezyboost.us.com)
cheap jordans (www.cheapjordans.com.co)
timberlands (www.timberlandbootsuk.org.uk)
nike trainers (www.niketrainers.com.co)
yeezy boost 350 (www.yeezyboost.us.com)
true religion (www.truereligionjeans.me.uk)
kevin durant shoes (www.kevindurantshoes.us)
the north face (www.thenorthfaceoutlet.com.co)
ugg boots (www.ugg-bootssale.in.net)
ugg australia (www.ugg-australia.org.uk)
ugg outlet (www.uggbootsonsales.org)
louis vuitton factory outlet (www.louisvuittonoutletonline.us.org)
ray ban sunglasses (www.cheapraybansunglasses.name)
nike free flyknit (www.nikefreeflyknit.name)
omega replica watches (www.omegawatches.name)
louis vuitton handbags (www.louisvuittonoutletonlines.us.com)
ugg australia outlet (uggs.uggsaustralia.de.com)
ugg outlet (www.uggbootsoutlet.org.uk)
uggs (www.uggs-pas-cher.fr)
michael kors handbags (www.michaelkorspurses.in.net)
michael kors handbags outlet (www.michaelkorshandbag.us.com)
yeezy boost 350 (www.yeezyboost350.me.uk)
reebok (www.reebokclassic.me.uk)
ugg boots (www.uggbootsoutlet.com.co)
cheap nhl jerseys (www.cheapnhljerseyswholesale.us)
coach outlet (www.coachoutletus.us.com)
bottega veneta outlet (www.bottegaveneta.in.net)
air max 2016 (www.airmax90.org)
polo ralph lauren outlet (www.poloralphlaurenoutletonlines.us.com)
ralph lauren outlet (www.ralphlauren-outlet.com.co)
canada goose uk (www.canadagooseuk.co.uk)
ralph lauren outlet (www.ralphlaurenoutlet.us.org)
true religion jeans (www.true-religionjeans.net.co)
michael kors purses (www.michaelkorspurses.in.net)
canada goose pas cher (www.canadagoosepaschere.fr)
prada outlet store (www.pradaoutlet.org)
michael kors outlet (www.michaelkors-outlet.us.org)
ray ban sunglasses discount (www.raybanssunglasses.us.org)
louis vuitton outlet (www.louisvuittonoutlet.ca)
ray bans (www.raybans.us.com)
michael kors handbags outlet (www.michaelkorshandbags-outlet.us.org)
nike free flyknit 4.0 (www.nikefreeflyknit.name)
coach outlet (www.coachpursesoutlet.in.net)
uggs on sale (www.uggsonsale.eu.com)
lacoste shoes (www.lacosteshoes.us)
true religion jeans (www.truereligionjeans.me.uk)
canada goose outlet (www.canadagoose.us.com)
converse sneakers (www.converseshoes.in.net)
coach factory outlet (www.coachoutlets.us.org)
oakley sunglasses (www.discountoakleysunglasses.us.org)
michael kors outlet clearance (www.michaelkorsoutletclearances.us.com)
nike tn (www.nike-tn-pascher.fr)
doudoune moncler (www.doudounemonclerpascher.fr)
cheap oakley sunglasses (www.oakley--sunglasses.net.co)
coach outlet online (www.coach-outletonline.us.org)
bottega veneta handbags (www.bottegaveneta.in.net)
nike air max (www.nike-airmax90.me.uk)
puma shoes (www.puma-shoes.in.net)
canada goose outlet online (www.canadagooseoutlet.ca)
fitflops sale clearance (www.fitflopssaleclearance.net)
nike free flyknit (www.nikefreeflyknit.org.uk)
polo ralph lauren outlet online (www.polooutlet.com.co)
ysl outlet online (www.ysl-outlet.com)
louis vuitton outlet (www.louisvuittonoutlets-lv.com)
coach outlet (www.coachfactoryoutletstoreonline.com)
coach outlet store (www.coachfactoryoutletstoreonline.com)
ugg boots (www.ugg-bootsoutlet.co.uk)
designer bags (www.designerhandbags.net.co)
coach outlet online coach factory outlet (www.coachoutletonlinecoachfactoryoutlet.us.com)
moncler outlet (www.moncleroutletjackets.us)
coach outlet online (www.coachfactoryoutletsaleonline.us.com)
chi flat iron (www.chiflatiron.in.net)
kd 9 shoes (www.kevindurantshoes.us)
michael kors outlet clearance (www.michaelkorsoutletonlineclearance.in.net)
lacoste outlet (www.lacosteshoes.us)
ugg boots canada (www.uggscanada.ca)
valentino shoes on sale (www.valentino.in.net)
gucci outlet (www.guccioutlets.us.org)
christian louboutin shoes (www.christianlouboutinshoesoutlet.com)
michael kors outlet (www.michaelkorsoutletonlineclearance.us.com)
air force 1 (www.airforce1-nike.fr)
kobe 9 (www.kobeshoes.name)
oakley vault sunglasses (www.oakleysvaultoutletstore.org)
converse uk (www.conversetrainer.co.uk)
mcm outlet (www.mcm-outlet.us)
ugg australia (www.uggaustralia.us.com)
birkenstock sandals (www.birkenstocksandals.org.uk)
ugg boots (www.ugg-boots.de.com)
gucci handbags (www.guccihandbagsoutlet.us)
michael kors outlet (www.michaelkorsoutletclearances.us.com)
converse trainers (www.conversetrainer.co.uk)
uggs (www.uggs.us.org)
hollister sale (www.hollistersaleuk.me.uk)
ray ban sunglasses (www.raybans.in.net)
ugg boots canada (www.uggs--canada.ca)
ralph lauren pas cher (www.ralph-lauren-pas-cher.fr)
ecco shoes (www.eccoshoes.us)
yeezy boost (www.yeezyboost-350.us.com)
nike store (www.nikestoreuk.me.uk)
ugg boots (www.uggboots.org)
nike huarache trainers (www.nikehuarache.com.co)
michael kors outlet clearance (www.michaelkorsoutletonlineclearance.us.com)
michael kors outlet (www.michael-korsoutlet.ca)
ralph lauren outlet (www.ralphlaurenoutletuk.me.uk)
cheap jordans (www.cheapjordans-shoes.us.com)
michael kors outlet (www.michaelkorsoutlet.net.co)
ugg boots (www.uggsboots.org.uk)
rolex replica watches (www.rolexreplicawatches.name)
cheap uggs (www.cheapuggboots.us.org)
hermes outlet (www.hermesbeltoutlet.us)
polo ralph lauren (www.ralphlauren.us.org)
reebok shoes (www.reebokshoes.in.net)
adidas superstars (www.adidassuperstar.co.uk)
burberry outlet (www.burberry-outlet.name)
coach factory outlet (www.coachoutletus.us.com)
adidas trainers (www.adidas-trainers.me.uk)
coach outlet (www.coach-outletonline.eu.com)
birkenstock sandals (www.birkenstocksandals.in.net)
cheap jordan shoes (www.cheapjordans.com.co)
polo outlet (www.polooutlet.in.net)
cheap uggs (www.cheapuggs.org.uk)
louis vuitton outlet (www.louisvuittonoutletonline.us.org)
cheap nfl jerseys (www.cheapnfljerseys-wholesale.us)
ray ban sunglasses discount (www.raybansunglassesdiscount.us.com)
oakley vault (www.oakleyvault.name)
louboutin uk (www.christianlouboutinshoes.org.uk)
discount ray ban sunglasses (www.raybansunglassesdiscount.us.com)
oakley sunglasses (www.oakleysunglassessale.us.com)
coach outlet online (www.coachoutletonlinecoachfactoryoutlet.us.com)
michael kors outlet (www.michael-kors-outlet.ca)
supra shoes (www.supraforsale.in.net)
rolex submariner (www.rolexdaytona.in.net)
rolex replica watches (www.cheaprolexreplicawatches.us)
tory burch outlet (www.toryburchoutlet.org)
uggs for kids (www.uggsforkids.in.net)
true religion jeans (www.true-religionjeansoutlet.us.com)
levis jeans (www.levisjeans.name)
polo outlet (www.polooutlet.com.co)
michael kors bags (www.michaelkors-handbags.us.org)
kate spade outlet (www.kate-spadeoutlet.in.net)
louis vuitton handbags outlet (www.louis-vuitton-handbags.us.org)
michael kors outlet online (www.michael-korsoutlet.ca)
cheap ugg sale (www.cheapuggsale.in.net)
coach factory outlet (www.coachfactoryonlineoutlet.com.co)
michael kors outlet (www.michaelkorsoutletonlineclearance.in.net)
cheap uggs (www.cheap-uggs.us.com)
michael kors handbags (www.michaelkors-handbags.uk)
canada goose jackets (www.canadagoosejacketsuk.co.uk)
skechers shoes (www.skechersshoes.us)
vans shoes (www.vansshoes.in.net)
coach purses (www.coachpursesoutlet.in.net)
louis vuitton factory outlet (www.louisvuittonfactoryoutlet.us.com)
coach outlet (www.coachoutletstoreonlineclearances.in.net)
uggs sale (www.uggsonsale.us.org)
michael kors watches (www.michaelkorswatches.co.uk)
cheap nike shoes (www.discountnikeshoessc.org)
uggs outlet (www.uggs-outlet.net.co)
michael kors outlet (www.michaelkors-outlet.us.com)
canada goose outlet online (www.canadagoose-outlet.name)
ugg outlet (www.uggs-outlet.org)
michael kors handbags (www.michaelkorshandbag.us.com)
ugg boots (www.uggbootsclearance.de.com)
christian louboutin shoes (www.christianlouboutinshoes.org.uk)
birkenstocks (www.birkenstocks.us.com)
pandora outlet (www.pandorajewelryoutlet.org)
discount nike shoes (www.discountnikeshoessc.org)
burberry outlet (www.burberryoutlet.cc)
fitflops clearance (www.fitflopssaleclearance.net)
cheap nba jerseys (www.cheap-nbajerseys.us.com)
nike cortez (www.nikecortez.com.co)
jimmy choo shoes (www.jimmychoo.in.net)
tiffany and co jewelry (www.tiffanyjewelryoutlet.name)
toms outlet (www.tomsoutletstores.in.net)
rolex replica watches (www.rolex-replicawatches.com.co)
timberland outlet (www.timberlandbootsoutlet.name)
pandora outlet (www.pandoracharmssaleclearance.com)
ghd flat iron (www.ghdflatiron.com)
nike air max (www.airmaxoutletsaleus.com)
louis vuitton outlet store (www.louisvuittonoutletus.us.com)
true religion jeans (www.truereligionjeansoutlet.name)
coach factory outlet (www.coach-outletonline.eu.com)
moncler jackets (www.monclerjackets-uk.co.uk)
cheap ferragamo shoes (www.ferragamoshoes.cc)
michael kors outlet clearance (www.michaelkors-outlet.us.org)
coach factory outlet (www.coachfactoryoutlet-online.com.co)
true religion outlet (www.true-religionjeansoutlet.us.com)
celine outlet (www.celineoutlet.us)
kate spade handbags (www.katespadehandbags.net.co)
ray ban sunglasses (www.raybansunglassesdiscount.com.co)
louis vuitton outlet online (www.louisvuittonoutlet.ca)
michael kors outlet (www.michaelkorsoutletclearance.com.co)
ferragamo shoes (www.ferragamoshoes.cc)
coach outlet (www.coachoutletstoreonlineclearances.org)
north face jackets (www.thenorthfaceoutlet.com.co)
canada goose jackets (www.canadagoosejacketsoutlet.name)
ugg outlet (www.ugg-outlet.de.com)
ugg outlet (www.ugg-outlet.eu.com)
ugg sale (www.uggsale.us)
ugg boots (www.uggbootsoutlet.org.uk)
sac longchamp pliage (www.sac-longchamppliage.fr)
cheap oakleys (www.cheapoakleyssunglasses.com.co)
jordan pas cher (www.jordan-femmepascher.fr)
christian louboutin (www.christianlouboutinshoes.us.org)
rolex watches (www.cheaprolexreplicawatches.us)
ugg boots (www.uggbootsoutlet.de.com)
abercrombie and fitch outlet (www.abercrombieandfitchoutlet.name)
michael kors outlet (www.michaelkorsoutletclearance.in.net)
cheap ray ban sunglasses (www.raybansunglassesdiscount.com.co)
ugg outlet (www.ugg-outlet.com.co)
pandora uk (www.pandoracharmsuk.org.uk)
true religion jeans (www.true-religionjeansoutlet.in.net)
pandora jewelry (www.pandorajewelryoutlet.name)
fitflops (www.fitflopssaleclearance.com)
michael kors outlet (www.michaelkors-outlet.ca)
true religion outlet (www.truereligionoutlet.com.co)
oakley sunglasses (www.oakley--sunglasses.us.org)
kate spade handbags (www.katespadehandbags.org.uk)
pandora charms (www.pandoracharms.com.co)
ugg boots (www.uggsboots-outlet.in.net)
uggs outlet (www.uggs-outlet.com)
louis vuitton outlet (www.wwwlouisvuittonoutlet.us.com)
canada goose jackets (www.canadagoosejacketsuk.org.uk)
ugg boots outlet (www.ugg-outlet.com.co)
ed hardy outlet (www.edhardy-outlet.name)
buy red bottoms (www.buyredbottomcheapshoesonline.com)
versace shoes (www.versaceshoes.in.net)
louis vuitton outlet (www.louisvuitton-outlet-online.us.com)
mont blanc pens (www.mont-blancpens.name)
canada goose (www.canadagoose.us.com)
uggs on sale (www.uggsonsale.us.org)
rolex watches (www.rolexdaytona.in.net)
uggs (www.uggs--canada.ca)
ugg outlet (www.ugg-bootsoutlet.co.uk)
nike air max (www.nikeairmax.me.uk)
ugg boots sale (www.uggbootsonsales.org)
longchamp bags (www.longchampbags.uk)
coach outlet store online (www.coachoutletstoreonlineclearances.in.net)
rolex watches (www.rolexwatchesuk.me.uk)
jordan shoes (www.cheapjordans-shoes.us.com)
canada goose outlet (www.canadagooseoutlet.ca)
christian louboutin outlet (christianlouboutin.outletsale.us.com)
ralph lauren (www.ralphlaurenoutletuk.me.uk)
birkenstocks (www.birkenstocks.name)
ugg boots (www.uggsboots.fr)
tiffany jewelry (www.tiffanyjewelryoutlet.name)
michael kors handbags (www.michaelkors-handbags.us.org)
nike air max shoes (www.nike-airmax90.me.uk)
canada gooses outlet (www.canadagoose-outlet.name)
adidas gazelle (www.adidasgazelle.me.uk)
coach outlet store online clearances (www.coachoutletstoreonlineclearances.org)
rolex watches for sale (www.rolexwatchesuk.me.uk)
christian louboutin outlet (www.christianlouboutin.us.org)
coach outlet (www.coachoutlets.us.org)
cheap ugg boots (www.cheap-uggboots.net.co)
polo outlet (www.poloralphlauren.net.co)
polo outlet (www.poloralphlaurenoutletonlines.us.com)
ugg australia (www.uggs-australia.it)
abercrombie and fitch (www.abercrombieandfitchoutlet.name)
louis vuitton bags (www.louisvuittonhandbagsuk.me.uk)
canada goose jackets (www.canadagoosejackets.cc)
ugg outlet (www.uggbootsoutlet.com.co)
reebok uk (www.reebokclassic.me.uk)
moncler outlet (www.moncler-outlet.us.com)
adidas nmd runner (www.adidasnmd.us.org)
kate spade (www.katespadehandbags.org.uk)
ray ban sunglasses outlet (www.cheapraybansunglasses.name)
coach outlet (www.coachfactoryoutlet-online.com.co)
true religion outlet (www.truereligionjeansoutlet.name)
louis vuitton handbags (www.louisvuittonhandbagsuk.me.uk)
ugg outlet (www.ugg-outlet.us.org)
hollister clothing (www.hollisterclothingstore.com.co)
ed hardy uk (www.edhardyukclothing.me.uk)
louis vuitton factory outlet (www.louisvuittonoutlets-lv.com)
ugg outlet (www.uggs.us.org)
cheap ray ban sunglasses (www.raybansunglassesdiscount.us.com)
michael kors outlet store (www.michaelkors-outlet.us.com)
cheap mlb jerseys (www.cheapmlbjerseys.us)
nike free run black (www.nikefreerun.name)
coach outlet (www.coachfactoryonlineoutlet.com.co)
kobe shoes (www.kobeshoes.name)
polo ralph lauren (www.poloralphlauren-outlet.co.uk)
air max 90 (www.airmax90.org)
adidas nmd (www.adidasnmd.org.uk)
canada goose jackets (www.canada-goose-jackets.ca)
nike air force white (www.nikeairforce1.org.uk)
coach outlet (www.coachoutletstoreonline.com.co)
ugg boots (www.uggs-australia.it)
oakley sunglasses (www.oakley.nom.co)
air jordan retro (www.airjordanretro.us)
louis vuitton factory (www.louisvuittonfactoryoutlet.us.com)
michael kors handbags (www.michaelkorshandbagsuk.me.uk)
michael kors outlet clearance (www.michaelkorsoutlet-online.us.org)
louis vuitton pas cher (www.louisvuitton-sac-pascher.fr)
adidas superstar (www.adadassuperstar.com)
nike air max 90 (www.nikeairmax.me.uk)
canada goose jackets (www.canada-goosejackets.org.uk)
cheap uggs (www.cheapuggsale.in.net)
cheap jordans (www.cheapjordan-shoes.in.net)
oakley sunglasses outlet (www.discountoakleysunglasses.com.co)
hollister co (www.hollisterclothing.org)
cheap oakley sunglasses (www.oakley.nom.co)
air jordans (www.airjordan-uk.org.uk)
oakley sunglasses (www.cheapoakleyssunglasses.com.co)
ralph lauren outlet (www.poloralphlaurenmen.name)
michael kors outlet (www.michaelkorsoutletonline.com.co)
michael kors outlet online (www.michaelkors-outlet.ca)
michael kors bags (www.michaelkorshandbagsuk.me.uk)
toms (www.toms.in.net)
ralph lauren outlet (www.ralphlaurenoutlet-online.com)
canada goose outlet (canadagoose.outletsale.us.com)
air max 90 (www.nikeairmax90.uk)
ugg pas cher (www.uggs-pas-cher.fr)
ray bans (www.raybans.in.net)
cheap jerseys wholesale (www.cheap-jerseyswholesale.us)
timberland boots (www.timberlandbootsoutlet.us)
moncler coats (www.monclerjackets-uk.co.uk)
omega watches (www.omegawatches.name)
adidas nmd (www.adidasnmd.us.org)
michael kors outlet clearance (www.michaelkorsoutletclearance.net.co)
true religion (www.truereligionoutlet.com.co)
coach outlet online (www.coachoutletstoreonline.com.co)
micahel kors outlet online (www.michaelkorsoutlet-online.org)
kate spade outlet (www.katespade-outlet.us)
michael kors outlet clearance (www.michaelkorsoutletclearance.com.co)
longchamp handbags (www.longchamphandbags.us)
christian louboutin sale (www.christianlouboutinoutletsale.org)
michael kors outlet (www.michaelkorsoutletclearance.net.co)
burberry outlet (www.burberry-outlet-canada.ca)
hermes belt (www.hermesbeltoutlet.us)
michael kors outlet clearance (www.michaelkorsoutletclearance.in.net)
hermes belt (www.hermesbelt.in.net)
toms shoes (www.tomsshoes.us.com)
michael kors outlet (www.michaelkorsoutlet-online.org)
tiffany and co jewelry (www.tiffanyandcojewelry.org.uk)
dolce and gabbana outlet (www.dolceandgabbanaoutlet.com)
longchamp outlet (www.longchampoutletstore.com)
timberland boots (www.timberlandbootsoutlet.name)
ugg sale (www.ugg-sale.org.uk)
adidas shoes uk (www.adidas-shoes.me.uk)
nike blazer (www.nike-blazerlow.fr)
armani watches (www.armani-exchange.us)
cheap jordans (www.cheapjordanshoes.us.com)
michael kors outlet online (www.michael-kors-outlet.ca)
louboutin outlet (www.christianlouboutinoutlet.us)
christian louboutin outlet (www.christianlouboutinoutlet.us)
ugg outlet online (www.ugg-outlet.us.org)
red bottom shoes (www.buyredbottomcheapshoesonline.com)
nike air max 90 (www.nikeairmax90.uk)
polo ralph lauren outlet online (www.polooutlet.in.net)
oakley sunglasses (www.discountoakleysunglasses.com.co)
nfl jerseys wholesale (www.nfl-jerseys-wholesale.us.com)
louis vuitton outlet (www.louisvuittonoutletus.us.com)
adidas supercolor (www.adadassupercolor.com)
converse shoes (www.converseshoes.in.net)
ugg boots (www.uggs-outlet.com)
hollister clothing (www.hollisterclothing.org)
louboutin pas cher (www.chaussurelouboutin-pascher.fr)
ralph lauren outlet online (www.ralphlaurenoutlet-online.com)
reebok pump (www.reebokshoes.in.net)
cheap jordans (www.cheap-jordans.us)
louboutin (www.louboutin.eu.com)
nike air force 1 (www.nikeairforce1.org.uk)
tommy hilfiger outlet (www.tommyhilfigeroutlet.us)
birkenstocks (www.birkenstocksandals.in.net)
nike roshe run women (www.nikerosherunwomen.org.uk)
cheap ugg boots (www.cheapuggboots.com.co)
ugg boots outlet (www.uggs-outlet.org)
nike huarache white (www.nikehuarache.com.co)
ralph lauren outlet (www.ralphlauren.us.org)
birkenstock sandals (www.birkenstocks.name)
polo ralph lauren (www.poloralphlaurenmen.name)
prada outlet (www.pradaoutlet.name)
ray ban sunglasses (www.raybanssunglasses.us.org)
ugg outlet (ugg.outletsale.us.com)
moncler jackets (www.monclerjacketsuk.org.uk)
celine outlet store (www.celineoutlet.us)
burberry sale (www.burberryoutlet.cc)
valentino shoes (www.valentino.in.net)
ugg boots on sale (www.ugg-bootssale.in.net)
nike air max sale (www.airmaxoutletsaleus.com)
chaussure louboutin (www.chaussure-louboutin.fr)
longchamp outlet (www.outletlongchamp.us)
moncler outlet (www.moncleroutlet.in.net)
christian louboutin outlet (www.christianlouboutinshoes.us.org)
uggs sale (www.uggsale.us)
ghd hair straighteners (www.ghdflatiron.com)
oakley sunglasses outlet (www.discountoakleysunglasses.us.org)
nike cortez red (www.nikecortez.com.co)
louis vuitton handbags (www.louis-vuitton-handbags.us.org)
mont blanc outlet (www.montblancoutletpens.com)
vans sk8 hi (www.vansshoes.in.net)
cheap uggs (www.cheapuggboots.com.co)
burberry sale (www.burberry-outlet.name)
tiffany and co (www.tiffanyandcojewelry.org.uk)
nike free flyknit 4.0 (www.nikefreeflyknit.org.uk)
lebron james sneakers (www.lebronjamesshoes.org)
air jordan uk (www.airjordan-uk.org.uk)
nba jerseys (www.nbajerseys-wholesale.us.com)
coach outlet (www.coach-outlets.us.com)
fitflops (www.fitflops.us)
coach factory outlet (www.coach-outlets.us.com)
christian louboutin shoes (www.christianlouboutinoutletsale.org)
burberry outlet online (www.burberry-outlet-canada.ca)
uggs (www.uggscanada.ca)
mlb jerseys (www.cheapmlbjerseys.us)
canada goose parka (www.canada-goose-jackets.ca)
polo ralph lauren (www.poloralphlauren.net.co)
christian louboutin (www.christianlouboutin.us.org)
birkenstock (www.birkenstocksandals.org.uk)
michael kors handbags (www.michaelkorshandbagsoutlet.in.net)
north face jackets (www.thenorthface.org.uk)
ugg australia (uggs.uggsaustralia.de.com)
birkenstock sheos (www.birkenstock-sandals.us.com)
jimmy choo outlet (www.jimmychoo.in.net)
michael kors outlet clearance (www.michaelkorsoutlet.net.co)
hugo boss outlet (www.hugobossoutlet.name)
babyliss pro (www.babylisspro.in.net)
nike free run (www.nikefreerun.name)
moncler jackets (www.moncleroutlet.in.net)
louis vuitton outlet (www.louisvuittonoutletonlines.us.com)
yeezy boost 350 (www.yeezyboost-350.us.com)
coach outlet (www.coachfactoryoutletsaleonline.us.com)
adidas nmd r1 (www.adidas-nmd.us.com)
canada goose outlet (www.canadagoose-outlet.net.co)
ray bans (www.raybans.org.uk)
tiffany and co (www.tiffanyandco.name)
adidas nmd (www.adidas-nmd.us.com)
oakley sunglasses (www.oakley--sunglasses.net.co)
louis vuitton borse (www.louisvuitton-borse.it)
designer handbags (www.designerhandbags.net.co)
coach outlet store (www.coach-outletonlines.us.com)
uggs outlet (www.ugg-outlet.eu.com)
pandora charms (www.pandoracharmssaleclearance.com)
ugg outlet (www.uggs-outlet.us.org)
ugg outlet (www.uggbootsoutlet.de.com)
adidas stan smith (www.adadasstansmith.com)
ugg outlet (www.uggsboots-outlet.in.net)
oakley sunglasses outlet (www.oakleysunglassessale.us.com)
lebron james shoes (www.lebronjamesshoes.org)
Back to top
View user's profile Send private message
Annie
Guest





Карма: 388
   поощрить/наказать


PostPosted: Tue Dec 19, 2017 9:35 am (спустя 1 год 3 месяца 7 дней 4 часа 3 минуты)
   Post subject: js_invalid:&quot;JavaScript code generated by backend is invalid! oscommerce sorry english.. :: JsHttpRequest :: JavaScript :: Форум dkLab и Denwer
Reply with quote

This web sute is myy inspiration, really superb style annd Perfect subject matter. Stop by my homepage; Nike (myretroblog.com/the-only-jordan-retro-2-review-you-want-to-read/)
Back to top
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
Post a reply
Username
Subject
Господа спамеры и оптимизаторы!

Вы можете даже и не пытаться вставлять в текст поста ссылки - они все равно автоматически удаляются (вернее, тэги <a> заменяются на тэги <u>).

Но если не поверите и все же попытаетесь - как только увидите, что все безрезультатно, удалите свой пост, пожалуйста. Модераторы тоже люди, нехорошо, если они погрязнут в тоннах спама.
     

Disable BBCode in this post
Disable Smilies in this post
    HTML is OFF
BBCode is ON
Smilies are ON
You cannot post new topics in this forum. You can reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML