我刚进一步完善了自己的页面调试代码以及修复了其他一些和 W3C标准不兼容的地方.
我觉得自己做的这么辛苦(包括写自己的代码和整合别人的代码), 如果要我以后完全放弃而使用其他的 PHP Framework 我肯定难以做到, 下面是我刚完成的两个文件 c_debug.php d_debug.js , 虽然还是需要一些修正, 但大部分功能都已经可以正常运行了, 小部分功能在测试页的情况下正常但复杂页面情况下还有问题.
c_debug.php
————————————————-
<?PHP
echo <<<END
<script type='text/javascript' src='/inc/d_debug.js'></script>
<script type='text/javascript' src='/inc/de_maths.js'></script>
<script type='text/javascript' src='/inc/de_base64.js'></script>
<script type='text/javascript'>
document.oncontextmenu = nocontextmenu;
</script>
END;
$post=base64_encode(arridx2str($_POST));
$get=base64_encode(arridx2str($_GET));
$session=base64_encode(arridx2str($_SESSION));
$request=base64_encode(arridx2str($_REQUEST));
echo <<<END
<input name=htmlsrc type=button value=HTML onclick="dispvar(Base64.encode(document.documentElement.innerHTML));">
<input name=POSTtsrc type=button value=POST onclick="dispvar('$post');">
<input name=getsrc type=button value=GET onclick="dispvar('$get');">
<input name=SESSIONsrc type=button value=SESSION onclick="dispvar('$session');">
<input name=REQUESTsrc type=button value=REQUEST onclick="dispvar('$request');">
END;
echo <<<END
<input name=fillform type=button value="Fill Form" onclick="filltext();">
END;
?>
d_debug.js
————————————————-
// JavaScript Document
//display global variable
function dispvar(svar){
var win_html=window.open('about:blank','_blank');
win_html.document.write('<textarea cols=150 rows=30>'+Base64.decode(svar)+'</textarea>');
}
//fflag=1 change existing value
function filltext(fflag){
fflag=(typeof(fflag)=="undefined")?0:fflag;
var formarr=document.forms;
var formlen=formarr.length;
if(formlen>0){
for(var i=0; i < formlen; i++){
var eles=formarr[i].elements;
var elelen=eles.length;
if(elelen==0){continue;}
for(var j=0; j < elelen; j++){
var ele=eles[j];
if(ele.type=="radio"){ele.checked;}//alert(ele.value);
if((fflag || ele.value) && (ele.type!="hidden") && (ele.type!="button") && (ele.type!="radio")){
switch(ele.type){
case "text":
ele.value=randoms(5,0,1);
break;
case "textarea":
ele.value=randoms(50,1,1);
break;
case "select-one":
var idx=randomir(ele.options.length);
ele.options[idx].selected;//alert(ele.options[idx].value);
break;
default:
alert(ele.type);
}
}
}
}
}
}