PHP to communicate with javascript
PHP to communicate with javascript
静态页面 A 有一个表单,其中包含一个提交到授权页面 B 的操作,该页面是一个动态页面。授权后,B 将重定向到由 A 传递给 B 的回调 url C。
除了重定向到页面 C 外,B 还发布了一些指示身份验证状态的参数。uin 是最重要的参数,将在页面 C 即脚本的内容中使用。脚本需要 uin 稍后发送 Ajax 请求。问题是如何将 uin 传递给静态页面 C?
我得到的一个快速而肮脏的想法是用PHP文件包装静态页面C,并将数据输出到隐藏div
中,例如:
<?php
$html = file_get_contents("callback.html")
$div = "<div stype='display:none' uin={$_POST['uin']}></div>"
//add this div to $html and print it, need a little more work to figure out how to do this
?>
有没有更好的方法可以做到这一点,因为我认为这有点"白痴"......
您的代码:(修复了stype
拼写错误(
$div = "<div style='"display:none'" uin={$_POST['uin']}></div>";
查看此代码,我可以看到的最大问题是您正在输出一个$_POST
值而不对其进行任何转义。
这是一个潜在的安全威胁;考虑一下如果有人提供了一个发布到您网站的表单,uin
值设置为一串 HTML 代码,从 >
开始关闭div
,会发生什么。他们的代码会出现在你的网站上,就像你把它放在那里一样。通过仔细的样式设置,他们可以使用它使您的网站看起来和行为随心所欲。不太好。
您可以通过将 $_POST
变量包装在 html_entities()
中来解决此问题,以便在将其输出到站点时正确转义。
或者,在这种情况下,由于它是(或似乎是(一个数字 ID 值,您可以简单地将其转换为 int 以确保它不包含不需要的数据,无论实际的 post 数据包含什么:
$uin = (int)$_POST['uin'];
。然后在输出中使用$uin
而不是原始发布数据。
我要说的第二点是有效性。 uin
不是有效的 HTML 属性。它可能有效,但无效。在 HTML 中执行自定义属性的正确符合标准的方法是使用数据属性,如下所示:
$div = "<div style='"display:none'" data-uin={$uin}></div>";
。即所有自定义属性的名称都应以 data-
开头
建议这样做,因为它允许您拥有与实际属性同名的自定义属性,而不会冒任何问题。 例如,您可以拥有data-style
,而不会与实际style
属性发生冲突。
这也意味着 HTML 规范可以添加新属性,而不会冒与其他人的代码发生冲突的风险。 例如,如果未来版本的 HTML 包含一个 uin
属性,未来的浏览器使用该属性对该元素执行一些巧妙的操作,则会导致您的代码出现问题。如果您使用 data-uin
,这些问题就不会发生。(好的,所以uin
对于新的标准HTML属性来说,这是一个不太可能的名称,但重点是成立的(
也许您应该在用户会话中存储页面 B 中的参数。在 C 页上,您可以使用这些参数(在调用 session_start()
之后,在将任何内容输出到浏览器之前(。另外,如果你使用的是javascript,请考虑将uin放在javascript变量中而不是htmldiv中。像<script type="text/javascript">var uin = 123; </script>
.
你的php代码中有一个语法错误,你需要屏蔽内联样式周围的引号,并且你错过了一些冒号:
<?php
$html = file_get_contents("callback.html");
$div = "<div style='"display:none'" uin={$_POST['uin']}></div>";
//add this div to $html and print it, need a little more work to figure out how to do this
echo($html); // print variable $html
echo($div); // print variable $div
?>
- Modify Javascript with C#
- JavaScript with PHP SESSION
- Javascript with IE 11 issue
- javascript with()函数获胜'我不适合歌剧、Chrome或Brave
- Javascript with Heroku
- sqlite with javascript with phonegap using build.phonegap.co
- Including html+javascript with javascript
- .post javascript with PHP 以启用 select 语句返回
- Scrape query JavaScript with scrapy
- 正则表达式 JavaScript with punct,space 和 alnum
- writing JavaScript with PHP
- 将字符串从 C# 传递到 Javascript with Phonegap 和 Windows Phone 8
- Javascript with SJCL lib,在 GCM 模式下解密 AES
- Javascript with jquery datepicker using knockout
- Java to JavaScript with NodeJS convertion
- onMouseOver JavaScript with CSS list-style-image
- Appending on javascript with onclick
- javascript with html for stickynotes
- Scraping javascript with R
- Inserting javascript with jQuery .html