免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1419 | 回复: 8
打印 上一主题 下一主题

请使者帮忙解觉点问题! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-06-09 09:28 |只看该作者 |倒序浏览
我做了一个将html文件格转成js格式的程序,如下。
  1. <?php
  2. //传递要修改了文本给变量sing
  3. if (isset($_POST["zdz_text"])){
  4. $sing=$_POST["zdz_text"];
  5. }else{
  6. $sing="";
  7. }

  8. //将文本进行递换

  9. //判断是否包函双引号
  10. if (preg_match("/\"/",$sing)){
  11. $sing=preg_replace("/\"/","\"",$sing);
  12. }
  13. //判断是否包函小数点
  14. if (preg_match("/\./",$sing)){
  15. $sing=preg_replace("/\./","\.",$sing);
  16. }
  17. //判断是否包函等于号
  18. if (preg_match("/\=/",$sing)){
  19. $sing=preg_replace("/\=/","\=",$sing);
  20. }
  21. //判断是否包函加号
  22. if (preg_match("/\+/",$sing)){
  23. $sing=preg_replace("/\+/","\+",$sing);
  24. }
  25. //判断是否包函斜杠
  26. if (preg_match("/{\\}/",$sing)){
  27. $sing=preg_replace("/{\\}/","\\",$sing);
  28. }
  29. //判断是否包函换行符
  30. if (preg_match("/\r\n/",$sing)){
  31. $sing=preg_replace("/\r\n/","\");\ndocument.writeln(\"",$sing);
  32. }
  33. //判断是否包函<script
  34. if (preg_match("/<script/",$sing)){
  35. $sing=preg_replace("/\<script/","<\"+\"script\"+\"",$sing);
  36. }
  37. //判断是否包函</script>;
  38. if (preg_match("/<\/script>;/",$sing)){
  39. $sing=preg_replace("/\<\/script\>;/","<\"+\"\/script\"+\">;",$sing);
  40. }
  41. //判断是否包函<textarea
  42. if (preg_match("/<textarea/",$sing)){
  43. $sing=preg_replace("/\<textarea/","<\"+\"textarea\"+\"",$sing);
  44. }
  45. //判断是否包函</textarea>;
  46. if (preg_match("/<\/textarea>;/",$sing)){
  47. $sing=preg_replace("/\<\/textarea\>;/","<\"+\"\/textarea\"+\">;",$sing);
  48. }
  49. $value="<script language=\"JavaScript\" type=\"text/JavaScript\">;\n document.writeln(\"".$sing."\");\n</script>;";
  50. ?>;
  51. <form name="form1" method="post" action="">;
  52.   <p align="center">;
  53.     <textarea name="zdz_text" cols="50" rows="15">;
  54. <?php
  55. if (isset($_POST["zdz_text"])){
  56. echo $value;
  57. }else{
  58. echo "";
  59. }
  60. ?>;
  61. </textarea>;
  62.   </p>;
  63.   <p align="center">;
  64.     <input type="submit" name="Submit" value="转  换">;
  65.     </p>;
  66. </form>;
复制代码



但是问题出在。如果你输入一个字符进行了多次换算后就会什么也不显示了。你要是换算的次数少上点它就正常。请问一下这是JS原因还是我写的程序有什么问题。再问一下上面的程序可以将任何html文档都成功转换吗,不会有什么bug吧?

论坛徽章:
0
2 [报告]
发表于 2004-06-09 09:42 |只看该作者

请使者帮忙解觉点问题!

我现在发现还是有好多页面无法转换成功。
请问一下HTML代码有多少标志需要转换?

论坛徽章:
0
3 [报告]
发表于 2004-06-09 09:46 |只看该作者

请使者帮忙解觉点问题!

至于那么麻烦吗?看看这个
<?php
if(!isset($_POST['code'])) {
$code = <<< TEXT
<?php
phpinfo();
?>;
<form>;
<input type=text name="my">;
<input type=submit>;
</form>;
<script>;
function test() {
alert("你好";
}
</script>;
TEXT;
}else {
  if(get_magic_quotes_gpc())
    $code = StripSlashes($_POST['code']);
  else
    $code = $_POST['code'];
}
echo "<form method=post>;";
echo "<textarea name=code cols=40 rows=10>;".htmlspecialchars($code)."</textarea>;";
echo "<input type=submit>;</form>;";
?>;

论坛徽章:
0
4 [报告]
发表于 2004-06-09 10:41 |只看该作者

请使者帮忙解觉点问题!

  1. <?php
  2. if(!isset($_POST['code'])) {
  3. $code = <<< TEXT
  4. <?php
  5. phpinfo();
  6. ?>;
  7. <form>;
  8. <input type=text name="my">;
  9. <input type=submit>;
  10. </form>;
  11. <script>;
  12. function test() {
  13. alert("你好");
  14. }
  15. </script>;
  16. TEXT;
  17. }else {
  18. if(get_magic_quotes_gpc())
  19. $code = StripSlashes($_POST['code']);
  20. else
  21. $code = $_POST['code'];
  22. }
  23. echo "<form method=post>;";
  24. echo "<textarea name=code cols=40 rows=10>;".htmlspecialchars($code)."</textarea>;";
  25. echo "<input type=submit>;</form>;";
  26. ?>;
复制代码

对不起,本人水平有限没看懂你的程序,运行了一下多处报错。问一下他是干什么用的?请加上注解好吗,我在这谢过了!

论坛徽章:
0
5 [报告]
发表于 2004-06-09 10:48 |只看该作者

请使者帮忙解觉点问题!

我说的是转成JS的而你的代码好象转成了HTML可以输出的格式了

论坛徽章:
0
6 [报告]
发表于 2004-06-09 11:03 |只看该作者

请使者帮忙解觉点问题!

转换到第五次代码就不执行了。

  1. <script language="JavaScript" type="text/JavaScript">;
  2. document.writeln("<"+"script"+" language\=\"JavaScript\" type\=\"text/JavaScript\">;");
  3. document.writeln(" document\.writeln(\"<\"\+\"script\"\+\" language\\\=\\\"JavaScript\\\" type\\\=\\\"text/JavaScript\\\">;\");");
  4. document.writeln("document\.writeln(\" document\\\.writeln(\\\"<\\\"\\\+\\\"script\\\"\\\+\\\" language\\\\\\\=\\\\\\\"JavaScript\\\\\\\" type\\\\\\\=\\\\\\\"text/JavaScript\\\\\\\">;\\\");\");");
  5. document.writeln("document\.writeln(\"document\\\.writeln(\\\" document\\\\\\\.writeln(\\\\\\\"<\\\\\\\"\\\\\\\+\\\\\\\"script\\\\\\\"\\\\\\\+\\\\\\\" language\\\\\\\\\\\\\\\=\\\\\\\\\\\\\\\"JavaScript\\\\\\\\\\\\\\\" type\\\\\\\\\\\\\\\=\\\\\\\\\\\\\\\"text/JavaScript\\\\\\\\\\\\\\\">;\\\\\\\");\\\");\");");
  6. document.writeln("document\.writeln(\"document\\\.writeln(\\\"document\\\\\\\.writeln(\\\\\\\" document\\\\\\\\\\\\\\\.writeln(\\\\\\\\\\\\\\\"<\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\+\\\\\\\\\\\\\\\"script\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\+\\\\\\\\\\\\\\\">;\\\\\\\\\\\\\\\");\\\\\\\");\\\");\");");
  7. document.writeln("document\.writeln(\"document\\\.writeln(\\\"document\\\\\\\.writeln(\\\\\\\"document\\\\\\\\\\\\\\\.writeln(\\\\\\\\\\\\\\\"alert(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"成功\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\");\\\\\\\\\\\\\\\");\\\\\\\");\\\");\");");
  8. document.writeln("document\.writeln(\"document\\\.writeln(\\\"document\\\\\\\.writeln(\\\\\\\"document\\\\\\\\\\\\\\\.writeln(\\\\\\\\\\\\\\\"<\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\+\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\/script\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\+\\\\\\\\\\\\\\\">;\\\\\\\\\\\\\\\");\\\\\\\");\\\");\");");
  9. document.writeln("document\.writeln(\"document\\\.writeln(\\\"document\\\\\\\.writeln(\\\\\\\"<\\\\\\\"\\\\\\\+\\\\\\\"\\\\\\\\/script\\\\\\\"\\\\\\\+\\\\\\\">;\\\\\\\");\\\");\");");
  10. document.writeln("document\.writeln(\"document\\\.writeln(\\\"<\\\"\\\+\\\"\\\\/script\\\"\\\+\\\">;\\\");\");");
  11. document.writeln("document\.writeln(\"<\"\+\"\\/script\"\+\">;\");");
  12. document.writeln("<"+"\/script"+">;");
  13. </script>;

复制代码






转换了4次还正常执行

  1. <script language="JavaScript" type="text/JavaScript">;
  2. document.writeln("<"+"script"+" language\=\"JavaScript\" type\=\"text/JavaScript\">;");
  3. document.writeln(" document\.writeln(\"<\"\+\"script\"\+\" language\\\=\\\"JavaScript\\\" type\\\=\\\"text/JavaScript\\\">;\");");
  4. document.writeln("document\.writeln(\" document\\\.writeln(\\\"<\\\"\\\+\\\"script\\\"\\\+\\\" language\\\\\\\=\\\\\\\"JavaScript\\\\\\\" type\\\\\\\=\\\\\\\"text/JavaScript\\\\\\\">;\\\");\");");
  5. document.writeln("document\.writeln(\"document\\\.writeln(\\\" document\\\\\\\.writeln(\\\\\\\"<\\\\\\\"\\\\\\\+\\\\\\\"script\\\\\\\"\\\\\\\+\\\\\\\">;\\\\\\\");\\\");\");");
  6. document.writeln("document\.writeln(\"document\\\.writeln(\\\"document\\\\\\\.writeln(\\\\\\\"alert(\\\\\\\\\\\\\\\"成功\\\\\\\\\\\\\\\");\\\\\\\");\\\");\");");
  7. document.writeln("document\.writeln(\"document\\\.writeln(\\\"document\\\\\\\.writeln(\\\\\\\"<\\\\\\\"\\\\\\\+\\\\\\\"\\\\\\\\/script\\\\\\\"\\\\\\\+\\\\\\\">;\\\\\\\");\\\");\");");
  8. document.writeln("document\.writeln(\"document\\\.writeln(\\\"<\\\"\\\+\\\"\\\\/script\\\"\\\+\\\">;\\\");\");");
  9. document.writeln("document\.writeln(\"<\"\+\"\\/script\"\+\">;\");");
  10. document.writeln("<"+"\/script"+">;");
  11. </script>;
复制代码

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
7 [报告]
发表于 2004-06-09 13:35 |只看该作者

请使者帮忙解觉点问题!

你怎么可以这么转换呢?

应位你是要做多次转换的,那么建议开始转换成特殊的,最后把特殊的转贷需要的

论坛徽章:
0
8 [报告]
发表于 2004-06-09 14:33 |只看该作者

请使者帮忙解觉点问题!

哪上面转换用的程序写对了吗?写完整了吗?请高手指点!
longnetpro 该用户已被删除
9 [报告]
发表于 2004-06-09 17:02 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP