веб морда сетевого накопителя.

Discussion in 'PHP' started by kori256, 11 Apr 2010.

  1. kori256

    kori256 Member

    Joined:
    7 Feb 2009
    Messages:
    49
    Likes Received:
    33
    Reputations:
    6
    Собственно не знал куда запостить, поэтому пусть будет здесь, заранее извиняюсь.



    Имеется внешений сетевой накопитель, на нем есть веб интерфейс, там есть форма обновления прошивки, и ленивые китайцы поленились активировать кнопочку "Start Upgrade"

    вот сам скрипт:
    HTML:
    <script language="JavaScript" type="text/javascript">
    function showMsg()
    {
    	var f=document.forms[0];
    	
    	if(f.ret_msg.value != "")
    		alert(f.ret_msg.value);
    }
    
    function startUp()
    {
    	var f=document.forms[0];
    	
    	if(confirm("Upgrade now?")){
    		f.op.value="upnow";
    		return true;
    	}
    	
    	return false;
    }
    
    function checkNullFilename()
    {
    	var f=document.forms[0];
    	if(f.upfile.value == ""){
    		alert("Please choose a firmware to upload!");
    		return false;
    	}
    	else
    		return true;
    }
    
    var action="wait";
    function fresh()
    {
    	var url = "data.tmp";
    	var xml = new ActiveXObject("Microsoft.XMLHTTP");
    
    	xml.open("GET",url,false);
    	xml.send("async");
    
    	if(xml.responseText=="upgrade")
    		action = xml.responseText;
    }
    
    function upgrade()
    {
    	var url = location.href;
    	var ip = url.split("/");
    	//alert(ip[2]);
    	fresh();
    	if(action=="wait"){
    		//alert(action);
    		//alert("Rain");
    		var timer = setTimeout("upgrade()", 1000);
    	}else{
    		//alert("ok");
    		window.clearTimeout(timer);
    		url = "http://" + ip[2] + "/upgrade_en.htm";
    		//alert(url);
    		parent.location.href = url;
    		return true;
    	}
    }
    
    function updatefirmware()
    {
    	if(!checkNullFilename())
    		return false;
    		
    	if(!startUp())
    		return false;
    		
    	upgrade();
    	document.forms[0].submit();
    
    	return true;
    }
    </script>
    а вот сама кнопка
    HTML:
    <input name="b_apply_up" type="button" id="b_apply_up" value="Start Upgrade" onClick="updatefirmware()">


    вобщем помогите как нибудь все таки отправить запрос на обновление прошивки, или что исправить, буду очень благодарен.
     
    #1 kori256, 11 Apr 2010
    Last edited: 11 Apr 2010
  2. scrat

    scrat кодер

    Joined:
    8 Apr 2007
    Messages:
    625
    Likes Received:
    541
    Reputations:
    3
    в строке адреса:
    Code:
    javascript: document.GetElementById("b_apply_up").disabled=false; void 0
    
     
  3. dr.Web

    dr.Web Member

    Joined:
    2 Feb 2009
    Messages:
    7
    Likes Received:
    22
    Reputations:
    10
    не думаю что китайцы ленивые и случайно забыли активировать кнопку. скорее всего чтото неверно делаешь.
     
  4. kori256

    kori256 Member

    Joined:
    7 Feb 2009
    Messages:
    49
    Likes Received:
    33
    Reputations:
    6

    я неверно выбираю прошивку и неверно тыкаю кнопку? scrat, не помогло, тоже никакой реакции ни в браузере ни на сетевом жестком((
     
  5. dr.Web

    dr.Web Member

    Joined:
    2 Feb 2009
    Messages:
    7
    Likes Received:
    22
    Reputations:
    10
    я не вижу где идёт выключение кнопки.вероятно там есть ещё какой то скрипт.
    если я правильно понял кнопка не активна.или же по нажатии на неё ничего не происходит??
     
  6. kori256

    kori256 Member

    Joined:
    7 Feb 2009
    Messages:
    49
    Likes Received:
    33
    Reputations:
    6

    да, при нажатии ничего не происходит
     
  7. Red_EYEs

    Red_EYEs Member

    Joined:
    7 Aug 2009
    Messages:
    32
    Likes Received:
    12
    Reputations:
    11
    javascript:document.forms[0].submit();
    попробуй. тока запомни
     
  8. dr.Web

    dr.Web Member

    Joined:
    2 Feb 2009
    Messages:
    7
    Likes Received:
    22
    Reputations:
    10
    попробуй вот так javascript:upgrade();document.forms[0].submit();

    мне всётаки кажется что чтото не так делаешь возможно файл прошивки не подходит.или мб проблема в браузере потому что там идёт запрос через аякс возможно браузер имеет другой тип аякса как то так.
     
  9. kori256

    kori256 Member

    Joined:
    7 Feb 2009
    Messages:
    49
    Likes Received:
    33
    Reputations:
    6
    не работает, прошивка с сайта производителя, браузеры пробовал все, ни в одном не пашет, в опере включил консоль ошибок, вот что при обновлении выдает

    [​IMG]
     
  10. dr.Web

    dr.Web Member

    Joined:
    2 Feb 2009
    Messages:
    7
    Likes Received:
    22
    Reputations:
    10
    скинь код странички где находится кнопка обновления.
     
  11. kori256

    kori256 Member

    Joined:
    7 Feb 2009
    Messages:
    49
    Likes Received:
    33
    Reputations:
    6
    вообще там все находится во фрейме, вот код где кнопка обновления:

    HTML:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta http-equiv=="pragma" content="no-cache">
    <meta http-equiv="Expires" content="Mon, 01 Jan 2000 00:00:01 GMT">
    <link rel="stylesheet" type="text/css" href="../../feature.css">
    <script language="JavaScript" type="text/javascript">
    function showMsg()
    {
    	var f=document.forms[0];
    	
    	if(f.ret_msg.value != "")
    		alert(f.ret_msg.value);
    }
    
    function startUp()
    {
    	var f=document.forms[0];
    	
    	if(confirm("Upgrade now?")){
    		f.op.value="upnow";
    		return true;
    	}
    	
    	return false;
    }
    
    function checkNullFilename()
    {
    	var f=document.forms[0];
    	if(f.upfile.value == ""){
    		alert("Please choose a firmware to upload!");
    		return false;
    	}
    	else
    		return true;
    }
    
    var action="wait";
    function fresh()
    {
    	var url = "data.tmp";
    	var xml = new ActiveXObject("Microsoft.XMLHTTP");
    
    	xml.open("GET",url,false);
    	xml.send("async");
    
    	if(xml.responseText=="upgrade")
    		action = xml.responseText;
    }
    
    function upgrade()
    {
    	var url = location.href;
    	var ip = url.split("/");
    	//alert(ip[2]);
    	fresh();
    	if(action=="wait"){
    		//alert(action);
    		//alert("Rain");
    		var timer = setTimeout("upgrade()", 1000);
    	}else{
    		//alert("ok");
    		window.clearTimeout(timer);
    		url = "http://" + ip[2] + "/upgrade_en.htm";
    		//alert(url);
    		parent.location.href = url;
    		return true;
    	}
    }
    
    function updatefirmware()
    {
    	if(!checkNullFilename())
    		return false;
    		
    	if(!startUp())
    		return false;
    		
    	upgrade();
    	document.forms[0].submit();
    
    	return true;
    }
    </script>
    <title>Administration -> Tools -> Upgrade</title>
    </head>
    <body onLoad="showMsg()">
    <form action="admin_tls_up.cgi" method="post" enctype="multipart/form-data" name="f_up">
    <table width="500" border="1" cellpadding="0" cellspacing="0" bordercolor="#000000" bordercolordark="#ffffff" bordercolorlight="#6699cc">
        <!--DWLayoutTable-->
        <tr> 
          <td width="500" height="22" class=title>FW Upgrade</td>
      </tr>
      <tr> 
        <td height="138" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
              <!--DWLayoutTable-->
              <tr> 
                <td width="15" height="18"></td>
                <td width="136">&nbsp;</td>
                <td width="338"></td>
                <td width="7"></td>
              </tr>
              <tr> 
                <td height="22"></td>
                <td colspan="2"><font color="#FF0000">Note: Please do not power off 
                  the device while upgrading, </font></td>
                <td></td>
              </tr>
              <tr> 
                <td height="22"></td>
                <td colspan="2"><font color="#FF0000">in this progress, some device 
                  functions will be disabled!</font></td>
                <td></td>
              </tr>
              <tr> 
                <td height="13"></td>
                <td></td>
                <td></td>
                <td></td>
              </tr>
              <tr> 
                <td height="22"></td>
                <td valign="top">Current FW version:</td>
                <td valign="top">V01R01</td>
                <td></td>
              </tr>
              <tr> 
                <td height="22"></td>
                <td colspan="2"> 
                  <input name="upfile" type="file" id="upfile" size="36"></td>
                <td></td>
              </tr>
            </table></td>
      </tr>
      <tr> 
          <td height="22" align="center"> 
            <input name="b_apply_up" type="button" id="b_apply_up" value="Start Upgrade" onClick="updatefirmware()">
    	  </td>
      </tr>
    </table>
    <input type="hidden" name="lang" value="en">
    <input type="hidden" name="op" value="">
    <input type="hidden" name="ret_msg" value="">
    <input type="hidden" name="cur_page" value="admin_sys.htm">
    <input type="hidden" name="next_page" value="admin_sys.htm">
    </form>
    </body>
    </html>
     
  12. dr.Web

    dr.Web Member

    Joined:
    2 Feb 2009
    Messages:
    7
    Likes Received:
    22
    Reputations:
    10
    так давай проясним кое что. ты выбрал прошивку.далее жмёшь кнопку у тебя вылетает сообщение "Upgrade now?" ??
    попробуй невыбери прошивку и нажми на кнопку что тебе выдаст браузер?
     
    1 person likes this.