Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Joob

Duplicar Função "eval"

Recommended Posts

Boas Malta,

Basicamente queria duplicar esta função.. Ele basicamente vai fazer um calculo..

eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('b 6(z){z=(1*z).x(8);f 1*z}b q(2,j){a(2==0){o(\'n 2\');f p}3 9=6($(\'#m\').l());a(9<0)9=0;3 c=(2*9)/y;3 h=c*j;$(\'#A\').k(6(c));$(\'#w\').k(6(h))}$(r).t(b(){3 4=[{7:v,d:s,2:5},{7:C,d:D,2:5.5}];$("#K").L(b(e){e.M();3 g=6($("#m").l());3 2=-1;F(i=0;i<4.G;i++){a(4[i].7<=g&&4[i].d>=g){I.H(4[i].7);2=4[i].2;E}}a(2==-1){o("u, n B");f p}q(2,J)})});',49,49,'||rate|var|plans||round2|min||sum|if|function|daily_profit|max||return|amount|total_profit||days|html|val|hyCalcAmount|Invalid|alert|false|calcSimple|document|1499|ready|Sorry|250|txtTotalAmount|toFixed|1250||txtDailyAmount|input|1500|9999999|break|for|length|log|console|50|hyCalc|submit|preventDefault'.split('|'),0,{}))
});

Quero por exemplo o Calculo1 e o Calculo2 ..

Estou só a usar estes "hyCalcAmount, txtTotalAmount, txtDailyAmount, hyCalc" para fazer chamar pelo html no form.

Não sei se consegui fazer-me entender.

Obrigado.

Abraço ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

não, não deu pra entender.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hmm certo..

Pronto, eu tenho um form para fazer um calculo.. por exemplo, colo 200 faço calcular e ele depois dá-me um valor diário.

E esse mesmo form, chama esta função eval ..

A função até está ok, funcional.. o problema é que eu pretendo ter um outro form igual a esse, com esta função mas só pra dar outros valores.. para dar outros valores isso consigo, só não estou a conseguir é fazer ele funcionar ..

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeira coisa a fazer é extrair o código real dessa função.. o eval significa que ela foi mirificada e obsfuscada.

passando por essa ferramenta:

http://jsbeautifier.org

vemos o código real:

function round2(z) {
    z = (1 * z).toFixed(8);
    return 1 * z
}

function calcSimple(rate, days) {
    if (rate == 0) {
        alert('Invalid rate');
        return false
    }
    var sum = round2($('#hyCalcAmount').val());
    if (sum < 0) sum = 0;
    var daily_profit = (rate * sum) / 1250;
    var total_profit = daily_profit * days;
    $('#txtDailyAmount').html(round2(daily_profit));
    $('#txtTotalAmount').html(round2(total_profit))
}
$(document).ready(function() {
var plans = [{
    min: 250,
    max: 1499,
    rate: 5
}, {
    min: 1500,
    max: 9999999,
    rate: 5.5
}];
$("#hyCalc").submit(function(e) {
    e.preventDefault();
    var amount = round2($("#hyCalcAmount").val());
    var rate = -1;
    for (i = 0; i < plans.length; i++) {
        if (plans[i].min <= amount && plans[i].max >= amount) {
            console.log(plans[i].min);
            rate = plans[i].rate;
            break
        }
    }
    if (rate == -1) {
        alert("Sorry, Invalid input");
        return false
    }
    calcSimple(rate, 50)
})
});
});
agora você pode modificar conforme o que você precisa fazer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito bom.. é isso mesmo ;) Obrigado.

Consegues-me dar uma ajuda acrescentar ?

Pretendo um outro form a dar outros valores nos plans .. ou seja, pretendo acrescentar o #hyCalcAmount2 #txtDailyAmount2 #txtDailyAmount2 #hyCalc2 #hyCalcAmount2

E para um o (exemplo form1) os plans ficam assim

$(document).ready(function() {
var plans = [{
    min: 250,
    max: 1499,
    rate: 5
}];

E para o (exemplo form2) os plans ficam assim

$(document).ready(function() {
var plans = [{
    min: 450,
    max: 5499,
    rate: 5
}];

Basicamente pretendo duplicar essa calculadora.. não estou conseguindo.

Abraço ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

As duas calculadoras estão na mesma página? se não estiverem, basta você trocar os nomes que precisa trocar, e deixar os código isolados.

se estiverem as duas na mesma página, ai você tem que trocar os nomes das variáveis e os nomes das funções para não colidirem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Yap, estão as duas na mesma página..

Não estou conseguindo fazer..

Já tentei acrescentar de várias maneiras e nada ..

A ultima foi assim mas também nada.. calculo que esteja mal, devido a certas funções necessárias..

function round3(z) {
    z = (1 * z).toFixed(8);
    return 1 * z
}

function calcSimple2(rate, days) {
    if (rate == 0) {
        alert('Invalid rate');
        return false
    }
    var sum = round3($('#hyipCalcAmount2').val());
    if (sum < 0) sum = 0;
    var daily_profit = (rate * sum) / 1250;
    var total_profit = daily_profit * days;
    $('#txtDailyAmount2').html(round3(daily_profit));
    $('#txtTotalAmount2').html(round3(total_profit))
}
$(document).ready(function() {
var plans2 = [{
    min: 1500,
    max: 9999999,
    rate: 5.5
}];
$("#hyipCalc2").submit(function(e) {
    e.preventDefault();
    var amount = round3($("#hyipCalcAmount2").val());
    var rate = -1;
    for (i = 0; i < plans2.length; i++) {
        if (plans2[i].min <= amount && plans2[i].max >= amount) {
            console.log(plans2[i].min);
            rate = plans2[i].rate;
            break
        }
    }
    if (rate == -1) {
        alert("Sorry, Invalid input");
        return false
    }
    calcSimple2(rate, 50)
})
});
});

Coloquei duas 2x o código, alterando ou melhor acrescentando o 2 e 3 ..

Tentei também sem adicionar o mesmo código e ir acrescentando e nada..

Abraço ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

E o que acontece?

qual erro aparece no console de erros? Ctrl + Shift + J no browser?

você está no caminho certo. Continue debugando e entendendo o que está fazendo que você vai conseguir.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É isso mesmo William.. ;)

Obrigadão pela ajuda.. :)

O o problema chegou a ser o ultimo ]); ;)

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.