首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我不能用_POST读取值,但我可以用_POST检查isset (并且它可以工作)

问题:为什么我不能用_POST读取值,但我可以用_POST检查isset (并且它可以工作)?

回答: 在Web开发中,我们通常使用HTTP协议来传输数据。当我们提交表单或发送请求时,可以使用两种常见的HTTP方法:GET和POST。GET方法将数据附加在URL的查询字符串中,而POST方法将数据作为请求的主体发送。

根据问题描述,你提到无法使用$_POST来读取值,但可以使用$_POST来检查isset,并且它可以正常工作。这可能是由于以下原因:

  1. 请求方法不正确:首先,请确保你的表单或请求使用了POST方法。可以通过检查HTML表单的method属性或查看请求的HTTP头部来确认。
  2. 表单字段名称不正确:确保你使用了正确的表单字段名称来访问$_POST数组中的值。表单字段的名称应该与$_POST数组中的键名一致。
  3. 表单数据未正确提交:如果你无法读取$_POST中的值,可能是因为表单数据未正确提交。请确保你的表单中包含了正确的表单字段,并且在提交时使用了正确的表单操作。
  4. 服务器配置问题:有时,服务器的配置可能会限制或禁用对$_POST数据的访问。这可能是由于安全设置或服务器配置错误导致的。在这种情况下,你可以联系服务器管理员或托管提供商以获取帮助。

总结: 无法使用$_POST读取值可能是由于请求方法不正确、表单字段名称不正确、表单数据未正确提交或服务器配置问题等原因导致的。确保使用正确的请求方法、正确的表单字段名称,并确保表单数据正确提交。如果问题仍然存在,可以进一步检查服务器配置或寻求相关技术支持。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

咱妈说别乱点链接之浅谈CSRF攻击

POST也能造成CSRF攻击 上面的CSRF可以说相当危险,更新资源的操作不应该使用GET方式,GET方式只应该用于操作。更新操作一定要使用POST方式,特别涉及到钱的问题。...程序会把归属为安全请求,那么就被绕过了。并且如果某些低版本的浏览器存在漏洞(比如IE6),Referer很有可能被篡改,所以这个方法并非十全十美。...isset($_POST['token']) || $_POST['token'] !...该方法可以用于a链接和表单等请求,属于同一个原理。...总结 CSRF防御原则: GET方式不能用于更新资源的操作 POST方式请求加上随机token验证 OWASP 2017年的十大安全威胁已经公布了,我们可以看看2013年和2017年CSRF稳稳排在第八位

5.1K40

PHP安全基础第一章

所以,碰到上边那些无法得到值的问题的朋友应该首先检查一下你的register_globals的设置和你获取值的方法是否匹配。...最小权限 过去有一辆汽车有一个佣人钥匙。这个钥匙只能用来点火,所以它不能打开车门、控制台、后备箱,能用来启动汽车。可以给泊车员(或把留在点火器上),确认这个钥匙不能用于其它目的。...但我觉得没有道理的是为什么它不能开车门。当然,这是因为的观点是在于权限的收回。是在想为什么泊车员被取消了开车门的权限。在编程中,这是一个很不好的观点。...相反地,你应该考虑什么权限是必须的,只能给予每个人完成他本职工作所必须的尽量少的权限。 一个为什么佣人钥匙不能打开车门的理由是这个钥匙可以被复制,而这个复制的钥匙在将来可能被用于偷车。...', $_POST['filename']); ?> 你能想到_POST['filename']如何取值以使filename成为Linux系统中用户口令文件的路径../..

1.6K30
  • 十个 PHP 开发者最容易犯的错误

    但也是因为的简单,PHP 也慢慢发展成一个相对复杂的语言,层出穷的框架,各种语言特性和版本差异都时常让搞的我们头大,不得不浪费大量时间去调试。...老实说,我们的内存管理确实是有缺陷的,并且我们也会遇到如上所示的问题。 如果使用 mysqlnd 模块的话,你至少可以避免上面那种欺骗(尽管它自身并不会提升你的内存利用率)。...没错,确实会输出 a 到 z,但是,它还会继续输出 aa 到 yz。我们一起来看一下这是为什么。 PHP 中没有 char 数据类型; 只能用 string 类型。...// 输出 bool(true) $array = new ArrayObject(); var_dump(empty($array)); // 输出 bool(false) // 为什么这两种方法产生相同的输出呢...在类的作用域之外,你仅仅只能检查是否将返回一个 null 值,这并不意味着没有设置相应的键,因为实际上还可能被设置为 null 。

    3K90

    易犯错误 | 十个 PHP 开发者最容易犯的错误

    但也是因为的简单,PHP 也慢慢发展成一个相对复杂的语言,层出穷的框架,各种语言特性和版本差异都时常让搞的我们头大,不得不浪费大量时间去调试。...然而,正如上面说的,如果 data['keyShouldBeSet'] 存在并且值为 null 的时候, isset( if ($_POST['active']) { $postData =...没错,确实会输出 a 到 z,但是,它还会继续输出 aa 到 yz。我们一起来看一下这是为什么。 PHP 中没有 char 数据类型;只能用 string 类型。...bool(true) $array = new ArrayObject(); var_dump(emptyempty($array)); // 输出 bool(false) // 为什么这两种方法产生相同的输出呢...在类的作用域之外,你仅仅只能检查是否将返回一个 null 值,这并不意味着没有设置相应的键,因为实际上还可能被设置为 null 。

    4.5K20

    十个 PHP 开发者最容易犯的错误

    但也是因为的简单,PHP 也慢慢发展成一个相对复杂的语言,层出穷的框架,各种语言特性和版本差异都时常让搞的我们头大,不得不浪费大量时间去调试。...老实说,我们的内存管理确实是有缺陷的,并且我们也会遇到如上所示的问题。 如果使用 mysqlnd 模块的话,你至少可以避免上面那种欺骗(尽管它自身并不会提升你的内存利用率)。...没错,确实会输出 a 到 z,但是,它还会继续输出 aa 到 yz。我们一起来看一下这是为什么。 PHP 中没有 char 数据类型; 只能用 string 类型。...// 输出 bool(true) $array = new ArrayObject(); var_dump(empty($array)); // 输出 bool(false) // 为什么这两种方法产生相同的输出呢...在类的作用域之外,你仅仅只能检查是否将返回一个 null 值,这并不意味着没有设置相应的键,因为实际上还可能被设置为 null 。

    2.6K50

    2024全网最全面及最新的网络安全技巧 1 之 bypass各种waf技巧以及命令执行 ———— 作者:LJS

    命令执行的利用 这个是得到最多的一种答案,大部分人都是利用命令执行来绕过限制,最短的是: param=`$_GET[1]`;&1=bash 稍长一点的可以用exec: param=exec($_GET...PHP会认为N是一个常量,但我之前并没有定义这个常量,于是PHP就会把转换成字符串'N';第二个参数是要写入的数据,a也被转换成字符串'a';第三个参数是flag,当flag=8的时候内容会追加在文件末尾...这意味着如果一个变量名后有圆括号,PHP 将寻找与变量的值同名的函数,并且尝试执行。可变函数可以用来实现包括回调函数,函数表在内的一些用途。...可变函数不能用于例如 echo,print,unset(),isset(),empty(),include,require 以及类似的语言结构。需要使用自己的包装函数来将这些结构用作可变函数。...在在知识星球里发出帖子的时候,其实还没想到如何用PHP5解决问题,但我有自信解决,所以先发了这个小 挑战。

    8410

    php+mysql动态网站开发案例课堂_用php写一个网页页面

    isset() 函数用来检查变量是否被设置,只有用户点击 submit 后 isset(_POST['submit']) 才返回真,所以不用担心,首次加载表单(那时用户还没有填写任何内容)是不会执行这部分...用户填写的具体内容可以用 这里新出现了一个内容,就是 mysqli_close() 函数,的作用是关闭数据库连接。当我们不再需要这个连接的时候,及时关闭是一个好主意。...> 这里出现了 empty() 函数,用于检查内容是否为空。注意这里使用 isset() 是无效的,因为 isset() 检查的是是否“被设置”,而被设置为空也属于被设置。...这样,只要你的用户名变换方法泄露,攻击者就很难按他们的想法伪造 Cookie。 使用 GET 方法 在网页间传递信息除了刚才介绍的 POST 方法外,还有 GET 方法。...这里并没有强调 GET 方法的数值是“透明”的:虽然 POST 方法的数值不会显示在 URL 中,但是它还是会通过 HTTP Header 发送到服务器,用许多插件和小工具都可以查看 HTTP Header

    8.6K20

    一句话木马踩坑记

    前言 太菜了,今天有学弟拿着一个一句话过来找我,说链接上 <?php $a="eval"; $a(@$_POST['a']); ?...php $a = "eval"; $a(@$_POST['a']); ?> 这种木马 您能用吗 大佬: 咋不能用?...这意味着如果一个变量名后有圆括号,PHP 将寻找与变量的值同名的函数,并且尝试执行。可变函数可以用来实现包括回调函数,函数表在内的一些用途。...所以我在怀疑,有些大佬们都是照抄assert的变形方式没有测试过就放到博客上了就是说,如果换了assert,这个是可以用的 结论: eval不能用,assert可以用。...结论 eval不能用,php7.1之后assert()也不能用 最后说一下,蚁剑是可以用assert的,不过编码最后使用base64 后记 直接百度了一下: 还是有几个大佬写的有这种问题的。

    1.7K40

    PHP技能评测

    PHP函数isset()只能用于变量,传递任何其它参数都将造成解析错误。     检测常量是否已设置可使用 defined() 函数。    ...原因如下:   1、首先目前平台上承载的大部分项目是多写少的项目,而MyISAM的性能是比Innodb强不少的。   ...,那个只是where对主键是有效,非主键的都会锁全表的。   ...另外,可能有人会说你MyISAM无法抗太多写操作,但是可以通过架构来弥补,说个现有用的数据库平台容量:主从数据总量在几百T以上,每天十多亿 pv的动态页面,还有几个大项目是通过数据接口方式调用未算进...key进行淘汰,在配置文件中可以通过maxmemory-samples的值来设置redis需要检查key的个数,但是检查的越多,耗费的时间也就越久,但是结构越精确(也就是Redis从内存中淘汰的对象未使用的时间也就越久

    1K30

    Dedecms 中的预认证远程代码执行

    最后,将以一个影响v5.8.1 pre-release的预认证远程代码执行漏洞结束。这是一款有趣的软件,因为的历史可以追溯到其最初发布以来的 14 年多,而 PHP 在这些年来发生了很大的变化。...所以,决定做一个粗略的搜索: 该产品部署非常广泛,但此处详述的漏洞影响了少数站点,因为于2020 年 12 月 11 日推出,并且从未进入发布版本。...这是为什么?...CheckSql(),但我可以绕过并从数据库中泄漏一些数据,因为可以同时使用$catid和$bookname进行注入,然后(ab)使用第二个命令: else if($action=='quote')...虽然同意不需要 CVE,但我确实认为至少应该在提交中添加安全说明。

    4.1K50

    PHP 7 中的新操作符: 和 ??

    这两个操作符可以让我们用更简单的代码实现与复杂代码相同的功能,并且让代码更加清晰易懂,更具可读性。下面,一起来看看这两个新的操作符。 本文选自《高性能PHP 7》。...这个操作符将三个比较符号(==、)打包在了一起,可以用于书写清晰易读的用于usort、uasort、uksort的回调函数,具体使用规则如下。...同样地,我们也可以用这个操作符来对比字符串、对象、数组,这些类型的比较都基于标准的PHP比较方式。...想必大家都知道三元运算符,我们常常会用到。三元运算符只需一行代码就可以实现if-else的功能。例如下面这样。 $post = ($_POST['title']) ?...合并运算符检查_POST[‘title’]是否存在,如果存在则返回_POST[‘title’],否则返回NULL。 合并运算符的另一个好处是可以连续使用。

    1.4K10

    四十.WHUCTF (3)一道非常有趣的文件上传漏洞题(刀蝎剑详解)

    错误,这是因为指定了图片文件格式。 而当我们上传图片“mm.jpg”时,它就能成功上传,并且查看图片如下图所示: (2) 网站内容检查 内容检查是网站安全的重要手段之一。...php就解析了;还有旧版的Ngnix可以上传shell.jpg,然后访问shell.jpg/1.php或者shell.jpg%00.php都可以用php来解析jpg文件。...(4) 图片一句话木马制作 某些网站上传文件时,会检查你上传文件的头目录,如果你的一句话木马是放在PHP文件中,很容易被识别出来。这个时候图片一句话木马的作用就体现出来了。...,这是因为检查了“eval”关键词。 ---- 3.过狗一句话绕过限制 上面说明对某些关键字有限制,我们需要对一句话木马进行绕过处理,下面总结了常见的一些方法: //通过变量赋值 <?...这个可以用在对文件类型名的绕过上。需要注意,00截断get是可以自动转换的,post需要特殊转换,下面举一个例子。 首先,选择上传一张包含一句话木马的“php.jpg”图片。

    2.4K20

    2024全网最全面及最新且最为详细的网络安全技巧四 之 sql注入以及mysql绕过技巧 (3)———— 作者:LJS

    可以看作是想要运行的 SQL 的一种编译过的模板,它可以使用变量参数进行定制。预处理语句可以带来两大好处: 查询仅需解析(或预处理)一次,但可以用相同或不同的参数执行多次。...这样可以确保不管数据库是否具有这样的功能,都可以确保应用程序可以用相同的数据访问模式。...(strstr($key, "password") == false), FILE_APPEND); // 检查键名不是 "content",并且不包含 "password" 的字符串...// 检查键名不是 "content",并且不包含 "password" 的字符串 if ($key !...因为获取的是REQUEST_URI,所以特殊字符会被url编码,没关系可以用一些关键词替换。

    8110

    phpmyadmin任意文件包含漏洞分析

    发现如果文章发到一些社区或直接发博客,知名度不高很容易被转载以后署名,导致转来转去后来就不知道谁是作者了。写了这么久文章也没给博客带来什么知名度,大概也就是因此吧。...有时候好东西不是不愿分享,就是国内分享环境太差,开源程序遵守协议、转载文章不带链接、插件模板随便去除版权,屡屡皆是。...这段时间和牙僧哥都在对open_basedir做一些研究,也发现了一些好玩的东西,php全版本已经可以绕过open_basedir文件、列目录了,不知道离写文件还有多远,还是很期待的。...首先的测试环境为php 5.2.17 + phpmyadmin 4.0.3 (想想我为什么选这样的环境) 创建一个普通用户test,没有任何权限,登录后只能看到test和information_schema...is_string($_POST[$key])) { unset($_POST[$key]); } if (isset($

    1.5K40
    领券