php isset($_post) 不起作用?
php isset($_post) is not working?
最近几个小时以来我一直在处理这个问题,并且还搜索了有关堆栈溢出的相关问题。我有一个简单的 html 形式
<form name="user_verification" action="action.php" method="POST">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit" name="submit" value="submit">
</form>
这里是 action.php 文件中的 php 脚本
if(isset($_POST['submit']))
{
echo 'yes';
}else{
echo 'no';
}
一直显示"no"。我使用这个
测试了我的 php 脚本
if(1==1)
{
echo 'yes';
}else{
echo 'no';
}
在这种情况下,它显示"yes"。这意味着问题出在 isset($_POST['submit']) 函数上,但我找不到解决方案。请在这方面提供帮助。谢谢
可能某个地方的 $_POST 值是 emptied/unseted。这可能是由于 php 配置或作为安全措施(即 http://php.net/manual/en/ini.core.php#ini.enable-post-data-reading)。你可以检查 $_REQUEST 也可以检查你是否可以得到 $_GET 值(形式的方法是 get)。
如果单击提交按钮,以上代码将仅显示提交的值。
isset( )。这是一个内置函数,用于检查是否已设置变量。在圆括号之间,输入希望 isset() 检查的内容。对我们来说,这是 $_POST['Submit']。如果用户刚刚刷新页面,则不会为提交按钮设置任何值。如果用户确实点击了提交按钮,那么 PHP 将自动 return 一个值
$var = '';
// This will evaluate to TRUE so the text will be printed.
if (isset($var)) {
echo "This var is set so I will print.";
}
您也可以使用 var_dump(isset());
// TRUE
输出 isset().
的 return 值
你的代码是正确的,对我有用。看到这个 for more info.
在index.php
<form name="user_verification" action="action.php" method="POST">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit" name="submit" value="submit">
</form>
在 action.php
<?php if(isset($_POST['submit']))
{
echo 'yes';
}else{
echo 'no';
} ?>
您的代码是正确的。
只有在您提交表单时才有效。
因此,除非您提交表单,否则它将始终打印 no
。
为了稳健性,最好根据请求检查方法。
这是验证 post 请求的表单处理器的简单示例。
if ('POST' === $_SERVER['REQUEST_METHOD']) {
if (!isset($_POST['required_data'])) {
http_send_status(400);
exit;
}
echo 'OK';
}
您仍然需要检查 isset
您需要的字段。
最近几个小时以来我一直在处理这个问题,并且还搜索了有关堆栈溢出的相关问题。我有一个简单的 html 形式
<form name="user_verification" action="action.php" method="POST">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit" name="submit" value="submit">
</form>
这里是 action.php 文件中的 php 脚本
if(isset($_POST['submit']))
{
echo 'yes';
}else{
echo 'no';
}
一直显示"no"。我使用这个
测试了我的 php 脚本 if(1==1)
{
echo 'yes';
}else{
echo 'no';
}
在这种情况下,它显示"yes"。这意味着问题出在 isset($_POST['submit']) 函数上,但我找不到解决方案。请在这方面提供帮助。谢谢
可能某个地方的 $_POST 值是 emptied/unseted。这可能是由于 php 配置或作为安全措施(即 http://php.net/manual/en/ini.core.php#ini.enable-post-data-reading)。你可以检查 $_REQUEST 也可以检查你是否可以得到 $_GET 值(形式的方法是 get)。
如果单击提交按钮,以上代码将仅显示提交的值。
isset( )。这是一个内置函数,用于检查是否已设置变量。在圆括号之间,输入希望 isset() 检查的内容。对我们来说,这是 $_POST['Submit']。如果用户刚刚刷新页面,则不会为提交按钮设置任何值。如果用户确实点击了提交按钮,那么 PHP 将自动 return 一个值
$var = '';
// This will evaluate to TRUE so the text will be printed.
if (isset($var)) {
echo "This var is set so I will print.";
}
您也可以使用 var_dump(isset());
// TRUE
输出 isset().
你的代码是正确的,对我有用。看到这个 for more info.
在index.php
<form name="user_verification" action="action.php" method="POST">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit" name="submit" value="submit">
</form>
在 action.php
<?php if(isset($_POST['submit']))
{
echo 'yes';
}else{
echo 'no';
} ?>
您的代码是正确的。
只有在您提交表单时才有效。
因此,除非您提交表单,否则它将始终打印 no
。
为了稳健性,最好根据请求检查方法。
这是验证 post 请求的表单处理器的简单示例。
if ('POST' === $_SERVER['REQUEST_METHOD']) {
if (!isset($_POST['required_data'])) {
http_send_status(400);
exit;
}
echo 'OK';
}
您仍然需要检查 isset
您需要的字段。