php$_post[]方法使用问题
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页面不可以直接使用还是怎么样?
谢谢 展开
直接打开页面 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
$_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!
$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