繁体   English   中英

php代码中的JavaScript脚本标签

[英]JavaScript script tag inside php code

我有一个页面(父页面),该页面通过弹出窗口(子窗口)打开了第二个页面

在第二页上,我具有以下PHP代码,该代码从父页面获取HTML元素的值:

 $var=print_r("<script type='text/javascript'>var x=window.opener.document.getElementsByName('name1');document.write(x[0].value)</script>",true);   

当我回显变量$var我得到的正是我所期望的。 从而:

echo "test=" . $test;

...在页面上打印例如“费用”。

到现在为止还挺好。

问题是当我尝试将此变量写入文件时,例如:

$f=fopen("/mylog.txt","w+");
fwrite($f, $test);
fclose($f);

...然后,而不是$test的实际值(例如Expenses),

我在日志文件中得到了整个脚本标签,因此:

<script type='text/javascript'>var x=window.opener.document.getElementsByName('name1');document.write(x[0].value)</script>

假设带有'true'参数的print_r将值返回给我的$test变量,为什么将确切的脚本标记写入日志文件?

我该如何克服?

当您将值echo显到浏览器时,它将运行JavaScript并显示结果。

将其保存到文件时,不会执行JavaScript。

在这两种情况下,都将输出完整脚本,但是浏览器实际上正在运行脚本,而文本编辑器则不会。

将客户端上的数据发送到服务器。 您可以使用Ajax(如下所示)或表单。

$.post('myPHPfile.php',{name:window.opener.document.getElementsByName('name1')});

myPHPfile.php

$test=$_POST['name'];
$f=fopen("/mylog.txt","w+");
fwrite($f, $test);
fclose($f);

好的,我通过更改URL字符串来实现期望的结果,该URL字符串使用一个额外的变量(期望的变量)来调用第二页,然后通过$ _GET检索此值并将其打印到我的日志文件中而不会出现问题。

非常感谢你们大家的快速回复:)

内缩进

[英]Indentation inside of <?php tag with PHP Code Sniffer

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM