php$_post[]方法使用问题

简单描述一下问题吧、a.php和b.phpa文件设置好<formaction="test.php"method="post">姓名:<inputtype="text"na... 简单描述一下问题吧、a.php和b.php
a文件设置好
<form action="test.php" method="post">
姓名: <input type="text" name="name" />
性别: <input type="text" name="sex" />
权限:<input type="text" name="quanxian" />
<input type="submit" />
</form>
发送到b文件
然后b文件接收

调试 :
调试的时候a文件开始运行 一切正常,提交空内容也可以。
b文件单独调试会报错直接使用变量my=$_POST['name'] 未定义“name”
赋值$name_my=$_POST['name']也不行

是不是b页面不能单独使用 还是我思路有问题

这种情况 b页面应该怎么搭配使用?
没有a页不能直接打开b吗

比如a提交空的时候b是空值
没有a的时候 b页面不可以直接使用还是怎么样?
谢谢
展开
 我来答
jinyc007
2013-08-22 · TA获得超过934个赞
知道小有建树答主
回答量:398
采纳率:75%
帮助的人:474万
展开全部

直接打开页面 b,对于 b 来说,$_POST 是一个空的数组,里面没有元素,所以你获取 里面的元素,比如 $_POST['name'] 时会报错。解决办法就是判断下是否有这个值,如:

$name = isset( $_POST['name'] ) ? $_POST_['name'] : '';


a 页面提交数据到 b,对于 b 来说,$_POST 是有元素,表单项的值如果是空(没有写)的话,那么元素存在,且它的值是空值。如:

// 假设提交时,name 没有写
$name = $_POST['name']; // $name = ''


你要区别,空值只是这个元素的值是空,但是元素是存在的。而直接进入 b 页面,那么元素是不存在的。


这里有一个常见的方式:

a 页面 - 提交按钮设置一个 name,比如 $name=”submited"

b 页面 - 判断这个 $_POST['submited'] 即可,如果有这个值(isset($_POST['submited'])),说明有数据通过 post 方式提交过来。那么你可以直接(当然,不建议怎么做) $name = $_POST['name'];


参考:

// a.php
<form action="b.php" method="post">
    <input type="text" name="name" />
    <input type="submit" name="submited" value="提交" />
</form>

// b.php
if( isset( $_POST['submited'] ) )
{
    // codes
    $name = $_POST['name'];
}
// other codes
du瓶邪
2015-06-26 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.7万
采纳率:100%
帮助的人:2873万
展开全部

$_POST 变量用于收集来自 method=”post” 的表单中的值。

$_POST 变量是一个数组,内容是由 HTTP POST 方法发送的变量名称和值。
$_POST 变量用于收集来自 method=”post” 的表单中的值,带有 POST 方法的表单发送的信息,任何人都是不可见的(不会显示在浏览器的地址栏),并且对发送信息的量也没有限制。

例如:

<form action="hello.php" method="post">
Enter your name: <input type="text" name="name" />
Enter your age: <input type="text" name="age" />
<input type="submit" />
</form>

当点击提交按钮,URL 不会含有任何表单数据,看上去类似这样:

http://www.testpost.com.cn/hello.php

“hello.php” 现在可以通过 $_POST 变量来获取表单数据了(请注意,表单域的名称会自动成为 $_POST 数组中的 ID 键):

Welcome <?php echo $_POST["name"]; ?>.<br />
You are <?php echo $_POST["age"]; ?> years old!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
caiaolin
2013-08-22 · TA获得超过664个赞
知道小有建树答主
回答量:621
采纳率:0%
帮助的人:456万
展开全部
它报的错误只是notice而已·····或者你改改··
$name_my = isset($_POST['name']) ? $_POST['name'] : '';
这样就不会报错了··
追问
能否通过if(!empty($_POST['name']))操作 
这个好险也是不可以使用的 只能放在$name_my = isset($_POST['name']) ? $_POST['name'] : '';

后面 也就没有意义了吧
追答
if(isset($_POST['name']))
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-22
展开全部
要是跳转到b.php,那a.php种的form表单中应该是action=“b.php”吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式