ajax发布请求到php $_POST vars为空

2024-03-05

我有一个 nginx 重写规则,它将 img src 属性重定向到 php 页面。在此 php 页面中,我尝试发出 GET 请求,成功后会向同一页面发出 POST 请求,将从 GET 请求返回的数据作为数据发送。为什么php脚本中$_POST数据为空?如果我硬编码$name = "http://path/to/my/img.png"在 php 脚本中图像正确呈现。

<?php 
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);
var_dump($_REQUEST);
//if(isset($_POST['val'])) {


  // open the file in a binary mode

  $name = $_POST['val']; // ALWAYS EMPTY
  $fp = fopen($name, 'rb');

  // send the right headers
  header("Content-Type: image/png");
  header("Content-Length: " . filesize($name));

  // dump the picture and stop the script
  //echo fpassthru($fp);
  header("Location: $name");
  exit;

//}
?>
<html>
<head>
<script type='text/javascript' src='/steal/steal.js'></script>
<script type="text/javascript" src="/plugins/jquery/json2.js"></script>
<script type="text/javascript">
steal('jquery/dom/fixture').then(function(){

$.fixture("GET /event/{code}", function(original, settings, headers){
    return [200, "success", { "img_url":"http://path/to/my/img.png" }, {} ]
})

var strObj = <?php echo json_encode($_REQUEST); ?>;
var str = strObj.q;
var eventCode = str.split('/')[1];
$.ajax({
  url: "/event/"+eventCode,
  success: function(data) {
     var imgUrl = data.img_url
     $.ajax({
        type: 'POST',
        contentType: 'json',
        data: {val:imgUrl},
        success: function(data){
           console.log(data);
        },
        error: function(jqXHR, textStatus, errorThrown){
           console.log(textStatus);
        }
     });
   }
});

});
</script>

</head>
<body>

</body>
</html>

好吧,你已经超出了可能的范围。

当用户在电子邮件中点击该图像时,系统会向您的服务器发送请求该图像的请求。这些 javascript 都不会返回给用户,因为<img>标签需要图像,而不是 html 文档。您可以通过类似的方式将内容添加到传出请求中

<img src="http://yourwebsite.com/tracker.php?val=someimage.png">

你的脚本将能够得到val out of $_GET但您将无法从电子邮件内对此图像发出 POST 请求。

所有这些$_REQUEST你在顶部得到的数据?您可以从那里获取所有电子邮件跟踪数据。你能从那里得到的一切$_GET这就是你所得到的一切。

之后,您需要向他们返回图像。这就是你如何做到这一点。

$val = $_GET['val']; // assuming val contains an image

header('Content-Type: image/png');
readfile('/path/to/your/images/'. $val);

请注意,您需要进行健全性检查$val以确保它只包含您希望能够看到的图像。潜在的恶意用户可能会看到这一点并输入类似的内容tracker.php?val=/etc/passwd或类似的东西,然后 PHP 会尝试读取你的密码文件。确保图像存在并且甚至可以读取可以使用is_readable() http://www.php.net/manual/en/function.is-readable.php功能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ajax发布请求到php $_POST vars为空 的相关文章

  • 返回重定向作为对 Ajax(fetch、XHR 等)请求的响应

    如果浏览器收到对 ajax 请求的重定向响应 会发生什么 如果浏览器收到对 ajax 请求的重定向响应 会发生什么 如果服务器发送重定向 又名 302 响应加上 Location 标头 浏览器将自动遵循重定向 对此的回应second请求 假
  • 如何在类似 MVC 的页面中加载基于漂亮 URL 的类?

    我想请教一些关于如何解决这个问题的提示 我正在尝试构建自己的 MVC 网站 我了解了 URL 的基础知识 http example com blog cosplay cosplayer expo today 博客 gt 控制器cosplay
  • 如何删除除任何特定 id 之外的元素

    假设有一个父 id 其中包含许多元素 我想删除除一个元素之外的所有元素 ex parent id children not id n remove
  • PHP:读取字体文件的 TrueType/OpenType 元数据

    如何阅读字体详细信息 例如 字体在其元数据中包含版权 姓氏 设计者 版本等信息 我还希望脚本能够计算文件中的字形数量 并返回字体支持的语言 例如 典型的字体可能包含西方语言 瑞典语和罗马语言支持 并具有数百个字形 它应该支持 truetyp
  • Instagram 粉丝计数 - 使用 jQuery / json 和 PHP

    经过几个小时的工作和一些帮助萨希尔 米塔尔我们已经成功使用 jQuery json 和 PHP 检索 Instagram 关注者计数 这是我们设法整理的内容 希望对其他想要获取 Instagram 信息的人有所帮助 我们的 jQuery I
  • 防止垃圾邮件按钮呼叫功能

    如何防止调用函数时出现垃圾邮件按钮 就像用户只能在按钮上每 1 秒调用一次该函数 有办法做到吗 因为我尝试了 setTimeout 但没有成功 它仍然在发送垃圾邮件 顺便说一句 我使用 Jquery 这是我的代码
  • 使用 XSLT 将 XML 转换为 SQL

    由于我无法控制的原因 我将获得一个 XML 文件和一个 XSLT 文件 该文件可以将 XML 文件转换为 SQL 代码或错误 现在让我们假设我们可以信任提供 XML 文件的人不会在 XML 中包含危险的构造 我什至不知道是否应该使用 Sim
  • MySQL PHP邮政编码比较具体距离

    我试图找出比较一个邮政编码 用户提供的 和一大堆其他邮政编码 现在大约有 200 个邮政编码 之间的距离的最有效方法 相对于加载时间 但它会随着时间的推移而增加 我不需要任何精确的东西 只是在球场上 我下载了整个美国的邮政编码 csv 文件
  • JavaScript 验证和 PHP 验证?

    我正在使用 jquery 验证插件来验证空表单 我还应该在 PHP 中检查一下以确保 100 正确吗 或者用 javascript 验证就可以了 谢谢 您应该始终在服务器上进行验证 如果用户以某种方式不使用 Javascript 提交表单
  • Apache、PHP 和 MySQL 可移植吗?

    我可以在外部硬盘上运行 Apache PHP 和 MySQL 吗 我需要这个 因为我在不同的地方工作 计算机 有时我没有安装和配置所有使用的应用程序 当然可以 XAMPP http www apachefriends org en xamp
  • javascript 选择自定义光标 (svg)

    我正在动态地将光标更改为悬停时的本地 svg element on mouseover function this css cursor url svgs pointer svg 9 30 auto 工作正常 但我想选择该 svg 来操纵其
  • 如何仅使用 PHP5 RecursiveDirectoryIterator 类递归显示具有特定文件类型的文件夹和子文件夹

    您好 我正在尝试使用 FilterIterator 上的扩展来获取 RecursiveDirectoryIterator 类 但由于某种原因 它仅在根目录上进行迭代 我的代码是这样的 class fileTypeFilter extends
  • suhosin.mt_srand.ignore 在 PHP 中一致洗牌数组的解决方法?

    我有一个 PHP 脚本 需要随机化一个具有一致结果的数组 这样它就可以向用户呈现前几个项目 然后如果他们愿意 他们可以从同一个打乱的集合中提取更多结果 我目前使用的是这个 基于我相信的 Fisher Yates 算法 function sh
  • PHP 数组通过 JSON 转为 jquery 数组

    我有点困惑为什么以下不起作用 get php
  • 如何使用 JavaScript 或 jQuery 克隆 HTML 元素的样式对象?

    我正在尝试克隆元素的样式对象 这应该允许我在更改后重置所述元素的样式 例如 el style left 50px curr style left 50px Modify the elements style The cloned style
  • Laravel leftJoin 仅右表的最后一条记录

    我是 Laravel 的新手 我有两张桌子 1 产品 2 价格 products id product int p key name varchar prices id price int p key id product int
  • Highcharts jQuery 渲染问题 - 所有浏览器

    我在尝试使用构建堆积柱形图时遇到了一个奇怪的问题高图表 http www highcharts com 当图表呈现时 在您调整浏览器大小之前 不会显示列无论如何 导致图表重绘 我认为 图表的其余部分显示 轴 标题等 但不显示列本身 我在 I
  • 如何从父类中获取子类名

    我试图在不需要子类上的函数的情况下完成此任务 这可能吗 我有一种感觉 但我真的很想确定
  • 滚动顶部不符合预期

    Note 由于上次忘记奖励而重新开放赏金 A Woff 大师已经给出答案 我想在用户展开某一行时到达该行 这样当最后一个可见行展开时 用户不必向下滚动即可查看内容 I used example tbody on click td green
  • Flot 库将 y 轴设置为最小值 0 和最大值 24

    如何将 y 轴设置在 0 到 24 的范围内 这是我的代码 j plot j placeholder d1 xaxis mode time min new Date 2010 11 01 getTime max new Date 2011

随机推荐

  • 如何从未签名的存储库安装 debian 软件包

    尝试从未签名的存储库将 Debian 软件包安装到 Debian 9 apt get allow unauthenticated update Get 1 http files freeswitch org repo deb freeswi
  • 在 WPF 中显示多维数据

    在 WPF 中显示多维数据的最佳方式是什么 直到运行时我才会知道数据的大小 形状 理想情况下 我想使用数据绑定 但这不是严格的要求 我正在考虑某种网格 但我不知道如何动态绑定到数据并让它计算出行数和列数 请提供建议和示例 听起来好像您想要一
  • 隐藏样式、块样式和无样式之间的区别

    我试图找出风格之间的差异 hidden block none 我正在尝试这个例子 但不幸的是这不起作用 有人可以告诉我答案吗 div hr DIV 1 hr div 你真的很接近 两种不
  • 用于输入/V 模型的 Vue 过滤器

    所以我对 ES6 SPA Javascript 和 Vue JS 非常陌生 我主要使用 JQuery 所以我有一个全局过滤器 Vue filter formatDate function value if value return mome
  • 在 Backbone.js 中,如何让模型超类默认值充当子类的默认值?

    我有一个定义一些默认值的类和一个定义一些默认值的子类 但是 当我创建子类的实例时 它只查看本地默认值 不会将其默认值与父类的默认值合并 有没有什么简单的方法可以做到这一点 而无需显式地将本地默认值与父默认值合并initialize每个子类的
  • Javascript:类属性在拖动事件期间变得未定义

    我对 Javascript 中的类还很陌生 我已经被困了几天试图理解为什么我的属性在我的所有方法中都变得未定义 我试图复制this https www kirupa com html5 drag htm到一个类中 但不成功 因为每次调用方法
  • 在C中,如何使用X11获取屏幕内活动监视器的几何形状(x,y,宽度,高度)

    我所有的搜索都得到了关于如何使用 C 获取 X11 中活动屏幕的几何形状的答案 但该屏幕可能包含许多显示器 并且通常只有一个屏幕 除非有许多用户同时使用同一台计算机 关于获取屏幕几何形状的那些答案已经过时 因为它们没有考虑多个显示器 那么
  • 从 mysql 时间戳字段中选择不同的月份和年份,并在 php 中回显它们

    我的mysql表有一个createdOn列 其filedtype timestamp 的格式为2011 10 13 14 11 12 我需要的是显示与createdOn列不同的月份 年份 我已经搜索了堆栈溢出并能够使用以下代码回显几个月 s
  • Codeigniter上传路径无效

    下面的人给出了代码和文件夹结构 任何人都可以帮助我为什么会出现 上传路径似乎无效 错误 如何解决此错误 文件夹结构 Application System Upload 414208 代码点火器代码 config upload path up
  • 中传递多个变量' aria-label='使用 PHP 和 $_GET[''] 在 中传递多个变量'> 使用 PHP 和 $_GET[''] 在 中传递多个变量

    我正在使用 PHP 根据变量创建链接 目前我有这行代码 我已经使用过多次并且工作完美 echo a href value2 a 以上全部在一行 在接收页面我有 assignmentName GET assignName 它从 URL 中检索
  • C#.net 中具有不同间隔的多个计时器

    我想要输入不同间隔的不同计时器 例如 如果我输入 4 则 4 个计时器创建并在 4 个标签中显示时间 其中第一个计时器的时间在 1 秒内变化 第二个计时器的时间在 2 秒内变化 第三个计时器的时间在 3 秒内变化4tn 计时器的时间在 4
  • 在 Azure 应用服务中部署前端和后端应用程序的最佳方法是什么?

    我们正在分别使用 Reactjs 开发前端应用程序和使用 Nodejs 开发后端应用程序 但我不太熟悉 Azure 应用服务后端的部署工作方式 我已经成功部署了我们的前端 它现在已在应用程序服务 URL 中启动并运行 但我不确定如何处理后端
  • 在android帮助中翻转位图?

    我想为我的游戏节省内存 我想问你 因为我找不到任何东西 上次我在这里问问题时我得到了很好的答案 我可以在 Eclipse 中翻转位图 这样我就可以节省精灵的内存吗 我发现的所有教程都是关于旋转而不是翻转 翻转位图的教程仅适用于 open G
  • 通过 Websocket 传输视频

    我正在尝试构建可以从双方传输视频的移动应用程序 即视频通话之类的东西 我研究了 webrtc 但这还没有为移动本机应用程序做好准备 无论如何 webrtc 正在做的是允许浏览器直接捕获相机和音频而不需要插件等 但在本机移动应用程序中捕获相机
  • SyntaxError:JSON 输入意外结束 - 这是为什么?

    这是我使用express和node js编写的代码 const express require express const https require https const app express app get function req
  • 我应该在哪里存储 jwt 令牌以在服务器端进行身份验证

    在我的 Nodejs 应用程序中 我使用 jwt 令牌进行身份验证 现在 在创建令牌后 将对其进行验证 为此 它应该存储在某个地方以供验证之用 所以 我的问题是 我应该将其存储在针对相关用户 ID 的单独数据库模式中 还是应该将其存储在其他
  • using 语句和await 关键字在c# 中表现得很好吗

    我有一种情况 我正在做一个async调用一个返回和的方法IDisposable实例 例如 HttpResponseMessage response await httpClient GetAsync new Uri http www goo
  • GLib-GObject-CRITICAL ...断言“夸克> 0”失败

    我对 Gtk 编程相当陌生 我正在使用 Gtkmm 库为我的应用程序编写一个简单的 GUI GUI 是一个更大的应用程序的一部分 它实际上编译为两个单独的可执行文件 但我不认为这是相关的 因为这个问题只涉及两个可执行文件之一 无论如何 我在
  • python:重新启动循环

    i have for i in range 2 n if something do something else do something else i 2 restart the loop 但这似乎不起作用 有没有办法重新启动该循环 Th
  • ajax发布请求到php $_POST vars为空

    我有一个 nginx 重写规则 它将 img src 属性重定向到 php 页面 在此 php 页面中 我尝试发出 GET 请求 成功后会向同一页面发出 POST 请求 将从 GET 请求返回的数据作为数据发送 为什么php脚本中 POST