请问GET 能用,但是POST不能用是怎么回事?

a541464750 2016-01-13 01:45:17
先上代码:
html:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>添加用户</title>
</head>
<body>
<form action="adduser.php" method="post">
<div>
<input type="text" name="fname">
</div>
<div>
<input type="text" name="age">
</div>
<input type="submit" value="提交">
</form>
</body>
</html>


adduser.php:
<?php

require_once "connectDB.php";
print_r( $_POST );
//var_dump($_POST;
$fname = $_POST[ 'fname' ];
$age = $_POST[ 'age' ];

$conn = connectDB();
mysqli_query( $conn, "INSERT INTO user(name,age) VALUES ('$fname','$age')" );

?>

输出:
Array ( )
Notice: Undefined index: fname in C:\xampp\htdocs\DataBase\adduser.php on line 21

Notice: Undefined index: age in C:\xampp\htdocs\DataBase\adduser.php on line 22

查看数据库里面有一条空数据插入。但是把post换成get以后就能可以插入正确的数据。
...全文
2993 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
紫还君 2016-04-18
  • 打赏
  • 举报
回复
感谢11#楼,这个问题困扰了很久。我这边环境是使用xampp启动Apache+使用PHPStrom,直接在phpstrom上进行预览打开,之后出现GET获得数据而POST无法获取数据问题。 网上找了好久都没有发现问题所在。 由于PHPStrom使用的是http://localhost:63342,而Apache使用的80端口,这个原因导致post包传递了但无法接收,查看网络传输能看见post的信息没有问题,但是php页面就是死活收不到,返回Array()。
后来将phpstrom的页面放到xampp的htdocs下,修改一下htdocs下面的index.php,在浏览器地址栏输入localhost,访问就可以了。 希望帮助到出现同样问题的人。 <?php if (!empty($_SERVER['HTTPS']) && ('on' == $_SERVER['HTTPS'])) { $uri = 'https://'; } else { $uri = 'http://'; } $uri .= $_SERVER['HTTP_HOST']; header('Location: '.$uri.'/boboil/'); exit; ?> Something is wrong with the XAMPP installation :-( 上面的boboil是我修改index.php的部分。
考丶拉 2016-03-21
  • 打赏
  • 举报
回复
灰常感谢11楼的楼主!!!
louisa_lee 2016-03-04
  • 打赏
  • 举报
回复
楼主,你好,我是初学php,也遇到了跟您一样的问题。get可以用,post不可以,请问您说的改成apache的端口打开网页是怎么设置的呢?
a541464750 2016-01-13
  • 打赏
  • 举报
回复
原因找到了。。。是因为我是用phpstorm启动的网页,不是用的apache,改成apache的端口打开网页就好了。
缘中人 2016-01-13
  • 打赏
  • 举报
回复
奇怪的很,拦截post啦?
a541464750 2016-01-13
  • 打赏
  • 举报
回复
引用 8 楼 Novolee 的回复:
用浏览器的开发者模式调试,先看看请求头里是不是真的有数据Post过来。
不知道怎么看这个,但是我用print打印出来POST显示的空值,你的意思是不是让我看到底是数据没传过来还是数据没接受到么。
李睿_Lee 2016-01-13
  • 打赏
  • 举报
回复
用浏览器的开发者模式调试,先看看请求头里是不是真的有数据Post过来。
a541464750 2016-01-13
  • 打赏
  • 举报
回复
引用 6 楼 lirenbing01 的回复:
[quote=引用 5 楼 a541464750 的回复:] [quote=引用 1 楼 lirenbing01 的回复:] 光这两个文件 是没有问题的
在其他地方也是,GET能用,POST用不了,是因为系统或者设置原因么?[/quote] 你真实代码用的是$_GET ? 然后print出空值 ,是正常现象。。 跟你主楼贴的代码以及错误又对不上 你越贴代码越没描述清楚问题了。。[/quote] 就是看我主楼代码就可以了,我只是把一些注释给删除掉发上来了而已。 我用GET的时候print出来的不是空值,但是POST就是空值
lirenbing01 2016-01-13
  • 打赏
  • 举报
回复
引用 5 楼 a541464750 的回复:
[quote=引用 1 楼 lirenbing01 的回复:] 光这两个文件 是没有问题的
在其他地方也是,GET能用,POST用不了,是因为系统或者设置原因么?[/quote] 你真实代码用的是$_GET ? 然后print出空值 ,是正常现象。。 跟你主楼贴的代码以及错误又对不上 你越贴代码越没描述清楚问题了。。
a541464750 2016-01-13
  • 打赏
  • 举报
回复
引用 1 楼 lirenbing01 的回复:
光这两个文件 是没有问题的
在其他地方也是,GET能用,POST用不了,是因为系统或者设置原因么?
a541464750 2016-01-13
  • 打赏
  • 举报
回复
引用 3 楼 a541464750 的回复:
[quote=引用 2 楼 xuzuning 的回复:] 请贴出真实代码! 出错行都是 21、22行了,你 adduser.php 才给了几行
都是注释了的就没贴出来 真实代码: <?php /** * Created by PhpStorm. * User: 541464750 * Date: 2016/1/13 * Time:$$ 0:49 */ //if(!isset($_GET['fname'])) //{ // die("no name"); //} //if(!isset($_GET['age'])) //{ // die("no age"); //} require_once "connectDB.php"; print_r( $_GET ); //var_dump($_GET; $fname = $_GET[ 'fname' ]; $age = $_GET[ 'age' ]; $conn = connectDB(); mysqli_query( $conn, "INSERT INTO user(name,age) VALUES ('$fname','$age')" ); //header( "Location:alluser.php" ); ?>[/quote] 这里只是把POST改成了GET 其他的还是和之前一样的。
a541464750 2016-01-13
  • 打赏
  • 举报
回复
引用 2 楼 xuzuning 的回复:
请贴出真实代码!
出错行都是 21、22行了,你 adduser.php 才给了几行


都是注释了的就没贴出来
真实代码:

<?php
/**
* Created by PhpStorm.
* User: 541464750
* Date: 2016/1/13
* Time:$$ 0:49
*/

//if(!isset($_GET['fname']))
//{
// die("no name");
//}
//if(!isset($_GET['age']))
//{
// die("no age");
//}
require_once "connectDB.php";
print_r( $_GET );
//var_dump($_GET;
$fname = $_GET[ 'fname' ];
$age = $_GET[ 'age' ];

$conn = connectDB();
mysqli_query( $conn, "INSERT INTO user(name,age) VALUES ('$fname','$age')" );

//header( "Location:alluser.php" );
?>
xuzuning 2016-01-13
  • 打赏
  • 举报
回复
请贴出真实代码! 出错行都是 21、22行了,你 adduser.php 才给了几行
lirenbing01 2016-01-13
  • 打赏
  • 举报
回复
光这两个文件 是没有问题的
源码下载地址: https://pan.quark.cn/s/a4b39357ea24 SolidWorks是一款在机械设计领域得到广泛应用的计算机辅助设计(CAD)软件,它具备功能强大的三维建模工具、完善的工程图功能以及多样化的设计协作功能。在工程图模板方面,SolidWorks为设计师们提供了创建符合行业标准图纸的便捷途径,从而显著提升了设计工作的效率。标题"SolidWorks工程图模板"具体指的是在SolidWorks软件中预先设定好的图框与标题栏组合布局,这些模板通常依据特定的规范(例如ISO、ANSI等)进行配置,涵盖了设计者通常所需的所有基本要素。借助这些模板,用户能够直接展开工程图的绘制工作,无需独立设置图框和标题栏,因而有效节省了大量的时间。描述中所指出的"已配置好图框和标题栏",表明这些模板已具备绘制工程图的基础结构。图框作为工程图的一个核心组成部分,它界定了图纸的范围,并且通常包含了图纸编号、日期、比例等关键信息。标题栏则是用于呈现设计详细信息的区域,例如设计者的姓名、零件的名称、材料种类、版本号等。一旦这些要素被配置妥当,设计师便可以根据具体的项目需求填充相应内容,从而迅速生成专业且标准化的工程图纸。"配置好存储路径后即可使用"这一说明表明,在使用SolidWorks工程图模板之前,用户必须先设定一个保存位置,这样每次创建新的工程图时,软件会自动将文件保存在这个指定的路径下,便于后续的管理和检索。压缩包内包含的文件"A3零件.DRWDOT"与"A3零件.slddrt"代表了SolidWorks的两种不同类型的工程图文件。".DRWDOT"文件是工程图模板文件,它集成了图框、标题栏及其他个性化设置,供用户在创建新工程图时选用。".slddr...
内容概要:本文介绍了一个名为GeometryService的类,旨在将不同类型的地理空间数据(如点坐标、Shapefile文件、GADM行政区划数据)解析并转换为Google Earth Engine可识别的几何对象(ee.Geometry)。该服务支持三种输入类型:通过经纬度字典创建点几何体、读取本地矢量文件(如Shapefile或GeoJSON)以及调用pygadm库获取全球行政区划数据。每种类型均有专门的解析方法,内部实现了坐标系统一(WGS84)、几何合并与GeoJSON格式转换,并最终封装为Earth Engine兼容的几何结构用于遥感分析或区域提取。; 适合人群:具备Python编程基础,熟悉地理信息系统(GIS)数据处理的科研人员或开发者,尤其是需要将本地或全球地理数据接入Google Earth Engine平台进行遥感分析的技术人员; 使用场景及目标:①将野外采样点、研究区边界等地理数据快速导入Earth Engine进行遥感影像分析;②利用GADM全球行政区划数据库动态获取国家或省级行政边界的几何对象,实现自动化区域统计;③为构建基于Web的地图分析工具提供后端几何解析支持; 阅读建议:使用前需安装geopandas、pygadm、earthengine-api等依赖库,注意处理异常情况如文件路径错误、坐标系不匹配或网络请求失败,建议结合实际数据调试各解析函数。

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧