PHP 和 Javascript:使用 Javascript 变量获取文件内容
PHP and Javascript: Getting file contents with Javascript variable
有人可以帮助我理解为什么这不起作用吗?
var uname = "<?php echo strtolower($_GET['un']) ?>";
var source = "<?php echo file_get_contents('accounts/"+uname+"') ?>";
console.log(source);
我一直在尝试让它工作一段时间,但似乎没有。在我添加源变量之前,它工作正常并在页面上显示un
变量。
谢谢。
您正在混合客户端和服务器端技术... +uname+ 看起来像 PHP 命令中的 JavaScript 变量...在呈现页面之前,JavaScript 变量不可用。
尝试。。。
var source = "<?php echo file_get_contents('accounts/'. $_GET['un']) ?>";
您将uname设置为javascript变量,然后尝试使用php读取它。
var source = "<?php echo file_get_contents('accounts/'.strtolower($_GET['un'])) ?>";
console.log(source);
我必须说,这对于公共用途来说无论如何都是不安全的。
我只想指出,您不需要 PHP 来访问查询字符串中的变量,正如一些人已经提到的,您在这里混合了技术。另请注意,您的问题示例存在安全问题,我很确定这些问题会持续存在,因为您需要清理您调用的脚本中的输入!
你完整的例子可以用javascript完成。我将使用 jQuery 进行 ajax 调用(您可以省略它 ofc 并自己处理 ajax 调用 - 我只是懒惰 ;-) )和一个用于查询字符串检索的 MDN 截图。
// populate a variable with your query string (window.location.search) - courtesy of MDN
var oGetVars = new (function (sSearch) {
var rNull = /^'s*$/, rBool = /^(true|false)$/i;
function buildValue(sValue) {
if (rNull.test(sValue)) { return null; }
if (rBool.test(sValue)) { return sValue.toLowerCase() === "true"; }
if (isFinite(sValue)) { return parseFloat(sValue); }
if (isFinite(Date.parse(sValue))) { return new Date(sValue); }
return sValue;
}
if (sSearch.length > 1) {
for (var aItKey, nKeyId = 0, aCouples = sSearch.substr(1).split("&"); nKeyId < aCouples.length; nKeyId++) {
aItKey = aCouples[nKeyId].split("=");
this[unescape(aItKey[0])] = aItKey.length > 1 ? buildValue(unescape(aItKey[1])) : null;
}
}
})(window.location.search);
// with jQuery
$.ajax({
url: "accounts/" + oGetVars.un,
success: function(data, textStatus, jqXHR) {
console.log(data);
}
});
// plain javascript
var xhr = new XMLHttpRequest();
xhr.open("GET", "accounts/" + oGetVars.un, true);
xhr.onreadystatechange = function () {
if(http.readyState == 4 && http.status == 200) {
console.log(this.responseText);
}
};
xhr.send();
[编辑] 使用纯 JavaScript XMLHttpRequest 调用更新示例。
试试这个:
<?php $uname = strtolower($_GET['un']); ?>
var source = "<?php echo file_get_contents('accounts/'.$uname) ?>";
相关文章:
- 使用压缩的JavaScript文件(不是运行时压缩)
- 如何包含特定于每个视图angularjs的javascript文件
- 将数据从javascript文件导入VB.Net页面
- Chrome加载旧版本的Javascript文件
- 操作员”;新的“;根据我想在几个JavaScript文件中使用的类,在JavaScript中使用
- gulp-if-javascript文件,但不在gulp-useref的特定目录中
- 如何在visualstudio中调试web api时编辑javascript文件
- 关于引入外部javascript文件的问题&css通过https
- 有没有办法在tinymceiframe中加载一个外部javascript文件
- 什么'是在asp.net MVC中将本地化的resources.resx文件转换为javascript文件的有效
- 在一个javascript文件中为整个网站创建标签
- 如何在定义js文件后为外部javascript文件设置变量
- 显示IIS上javascript文件(SOAP请求)的XML响应
- ResolveUrl没有'我似乎不适合当链接到具有动态虚拟目录的外部javascript文件时
- 我应该将MVC视图特定的javascript文件放在哪个文件夹中
- Django'支持Javascript文件中的翻译
- MVC正在忽略我的Javascript文件
- 为什么不't我的ruby代码与javascript文件一起插入
- 在Javascript文件中获取PHP变量
- 如何在Windows中将Javascript文件编译成二进制文件