我發現RADPHP的FORM的loadResource(__FILE__)有嚴重問題 |
尚未結案
|
ganlnyn
一般會員 發表:2 回覆:4 積分:1 註冊:2011-09-29 發送簡訊給我 |
我使用的是Rad PHP XE2,就創建一個簡單的程式,過程如下:
創建一個FORM,然后在FORM上放一個EDIT控件,然后寫代碼如下: <?php require_once("rpcl/rpcl.inc.php"); //Includes use_unit("forms.inc.php"); use_unit("extctrls.inc.php"); use_unit("stdctrls.inc.php"); //Class definition class TestForm extends Page { public $Edit1 = null; function TestFormJSLoad($sender, $params) { ?> //begin js if(timerReload!=null) { clearTimeout(timerReload); timerReload = null; } timerReload = self.setTimeout("Reload()",1000); //end <?php } function TestFormShowHeader($sender, $params) { echo "\r\n"; echo "var timerReload = null;\r\n"; echo "function Reload()\r\n"; echo "{\r\n"; echo " = ;\r\n"; echo "}\r\n"; echo "\r\n"; } function TestFormShow($sender, $params) { $this->Edit1->Text = Date("Y-m-d H:i:s"); } } global $application; global $TestForm; //Creates the form $TestForm=new TestForm($application); //Read from resource file $TestForm->loadResource(__FILE__); //Shows the form $TestForm->show(); ?> 功能就是1秒重新加載一次頁面,在EDIT中顯示當前時間,我用兩臺電腦同時打開這個頁面,過一會兒會導致httpd內存錯誤,彈出一個錯誤框(見附件),看錯誤日志發現httpd重啟了;我在IE中將這個頁面的源碼存為另一個PHP,然后再用同樣方式訪問,就不會出錯,后來我發現如果把$TestForm->loadResource(__FILE__);去掉,自己創建控件,就不會出錯; 不知哪位兄弟遇到過沒,是不是RADPHP的一個BUG
------
e天之下任我行 |
ganlnyn
一般會員 發表:2 回覆:4 積分:1 註冊:2011-09-29 發送簡訊給我 |
在apache的error.log中會出現以下錯誤提示:
[Thu Sep 29 12:02:04 2011] [notice] Parent: child process exited with status 3221225477 -- Restarting. [Thu Sep 29 12:02:05 2011] [notice] Digest: generating secret for digest authentication ... [Thu Sep 29 12:02:05 2011] [notice] Digest: done 網上很多人說Parent: child process exited with status 3221225477 -- Restarting這個是由于訪問數據庫引起的,但其實不然
------
e天之下任我行 |
ganlnyn
一般會員 發表:2 回覆:4 積分:1 註冊:2011-09-29 發送簡訊給我 |
我把源碼也放上來,見附件:
errrefresh.php和errrefresh.xml.php是出錯的頁面 okrefresh.php是在IE中把errrefresh.php另存源碼后的頁面,不會出錯 errrefresh.php: <?php require_once("rpcl/rpcl.inc.php"); //Includes use_unit("forms.inc.php"); use_unit("extctrls.inc.php"); use_unit("stdctrls.inc.php"); //Class definition class TestForm extends Page { public $Edit1 = null; function TestFormJSLoad($sender, $params) { ?> //begin js if(timerReload!=null) { clearTimeout(timerReload); timerReload = null; } timerReload = self.setTimeout("Reload()",1000); //end <?php } function TestFormShowHeader($sender, $params) { echo "\r\n"; echo "var timerReload = null;\r\n"; echo "function Reload()\r\n"; echo "{\r\n"; echo " = ;\r\n"; echo "}\r\n"; echo "\r\n"; } function TestFormShow($sender, $params) { $this->Edit1->Text = Date("Y-m-d H:i:s"); } } global $application; global $TestForm; //Creates the form $TestForm=new TestForm($application); //Read from resource file $TestForm->loadResource(__FILE__); //Shows the form $TestForm->show(); ?> errrefreshp.xml.php: <?php <object class="TestForm" name="TestForm" baseclass="Page"><br /> <object class="Edit" name="Edit1" ><br /> </object><br /></object><br />?> okrefresh.php: <html DIR=ltr ><br /><head><br /> var timerReload = null; function Reload() { = ; } <title>refresh test</title><br /><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><br /> var TestForm=new Object(Object); <!-- function TestFormJSLoad(event) { var event = event || window.event; var params=null; //begin js if(timerReload!=null) { clearTimeout(timerReload); timerReload = null; } timerReload = self.setTimeout("Reload()",1000); //end } function Edit1_updatehidden(event) { edit=findObj('Edit1'); hidden=findObj('Edit1_hidden'); hidden.value=edit.value; } --> </head><br /><body ="margin-bottom: 0" id="TestForm" name="TestForm" method="post" action="/errrefresh.php"><input type="hidden" name="serverevent" value=""><input type="hidden" name="serverparams" value=""><input type="hidden" name="Edit1_hidden" value="2011-09-29 10:23:30"> </form></body> </html><br /><!-- TestForm end -->
------
e天之下任我行 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |