2010-11-22 16 views
0

Bazı web sitelerinde oturum açmaya çalışıyorum. Daha önce başka bir site ile yaptım ama bu site daha karmaşık. Posta isteğini yakalamak için LIVE HTTP Üstbilgileri kullandım. İleti isteğinin doğru yapıldığını fark ettim, ancak bazı nedenlerden dolayı doğru URL'ye aktarılmam. Sayfa kaynağına gittim ve bu formun JS kullanılarak aktarıldığını düşünüyorum.Curl post ve javascript hakkında yardıma ihtiyacım var

Bu __VIEWSTATE değişkenden sonra yazılan argümanları eklenen budur

:

&ctl00_Menu_MainMenu_ContextData=&ctl00%24middleContent%24TextBoxName=0526579737&ctl00%24middleContent%24TextBoxPass=LIRAN&ctl00%24middleContent%24TextBoxPriv=liran&ctl00%24middleContent%24CheckLicense=on 

ve bu bilgileri doğrular javascript fonksiyonudur:

function Continue_Click() 
    { 
     var LabelError = document.getElementById('ctl00_middleContent_LabelError'); 
     var lnkButton1 = document.getElementById(middleContent + 'lnkButton1'); 
     var msg = validateLoginPeleNumRecognizeUser(document.getElementById('ctl00_middleContent_TextBoxName').value); 
     if (msg == '') 
     { 
      if (validateLoginPeleNumEmail(document.getElementById('ctl00_middleContent_TextBoxName').value)){ 
       musixMail = document.getElementById('ctl00_middleContent_TextBoxName').value; 
       var obj = document.getElementById('ctl00_middleContent_TextBoxPriv'); 
       if (obj != null && obj.value != '')      
        msg = validateLoginUserLogin(obj.value); 

       if (msg == '') 
       {       
        if(document.getElementById('ctl00_middleContent_CheckLicense').checked) 
        { 
         if(log.login('recognize')) 
         { 
          __doPostBack('ctl00$middleContent$lnkButton1',''); 
         } 
        } 
        else 
         LabelError.innerHTML = 'עליך להסכים לתנאי השימוש על מנת להמשיך לגלוש באתר'; 
       } 
       else 
        LabelError.innerHTML = msg; 
      } 
      else{ 
       msg = validateLoginPasswordLogin(document.getElementById('ctl00_middleContent_TextBoxPass').value); 
       if (msg == '')  
       { 
        var obj = document.getElementById('ctl00_middleContent_TextBoxPriv'); 
        if (obj != null && obj.value != '')      
         msg = validateLoginUserLogin(obj.value); 

        if (msg == '') 
        {       
         if(document.getElementById('ctl00_middleContent_CheckLicense').checked) 
         { 
          if(log.login('recognize')) 
          { 
           __doPostBack('ctl00$middleContent$lnkButton1',''); 
          } 
         } 
         else 
          LabelError.innerHTML = 'עליך להסכים לתנאי השימוש על מנת להמשיך לגלוש באתר'; 
        } 
        else 
         LabelError.innerHTML = msg; 
       } 
       else 
        LabelError.innerHTML = msg; 
      } 
     } 
     else 
      LabelError.innerHTML = msg; 
    }   
    $(function(){ 
     $('#ctl00_middleContent_TextBoxName,#ctl00_middleContent_TextBoxPass,#ctl00_middleContent_CellName').keypress(function(e){ 
      if(e.keyCode==13)     
       Continue_Click(); 
     }); 

kimse bunu tetikleyebilir biliyor mu curl kullanırken işlev?

Teşekkür

+0

Sizi doğru sayfaya yönlendirmeden önce bir çerez veya bir şey kontrol etmeyi denemediğinden emin misiniz? –

+0

Tanımlama bilgisini curl kullanarak getiriyorum. fakat bağırsak hislerim bana JS'nin form aracılığıyla gönderilen verilerin doğrulanması için kullanıldığını söylüyor. – embedded

cevap

0

Kıvrım bir sunucuya HTTP isteklerini yapmak, ve (isteğe bağlı) yanıtını kaydetmek için sadece bir araçtır. Düşündüğünüz isteği yaptığınızda, sunucu kıvrılma isteğine yanıt olarak birkaç KB metin gönderir.

Bu durumda, metin bazı Javascript gömülü (veya başvurulan) HTML'dir. Ancak curl, HTML'yi nasıl ayrıştırılacağını bilmez, çünkü sadece bir veri aktarımı aracıdır. Verileri aldı - iş bitti.

Dolayısıyla, otomatik olarak Javascript'i çalıştırmayı istiyorsanız, çıkmaz bir ucuna vuracaksınız. Bunu yapmak için bir JS motorunun yanı sıra, HTML'yi ayrıştırmak için bir HTML motoruna ve JS komutlarının gerçekten çalıştırılması gerekenleri bulmaya ihtiyacınız vardır. Rhino veya Spidermonkey eskileri yapabilirdi, ancak bir JS dosyanız değil, bir HTML dosyanız olduğundan bu işlem çok iyi çalışmayacaktır. Temel olarak, bunun genel olarak kapsamlı ve özerk bir şekilde çalışmasını istiyorsanız, bir tarayıcıyla aynı şekilde davranan bir araca ihtiyacınız olacaktır. Bu, numaralı telefonun bir tarayıcıyla.

Çoğu durumda, tek bir siteye bakıyorsanız, bir tarayıcı tarafından yapılan istekleri koklayarak gönderilmesi gereken istekleri çözebilirsiniz. Genellikle, en kötü durum senaryosunda, örn. sessionID; Belirli bir site için bu çok kötü değil. Eğer bu kırılganlık derecesine sahip olmaya hazır değilseniz, kıvırmak yapmakta olduğunuz şey için uygun bir araç değildir.

İlgili konular