问问题
1701 次
3 回答
3
if
您忘记为语句添加括号,如下所示:
if(isset($_POST['user_input']) && isset($_POST['search_for'])
&& isset($_POST['replace_with']) && !empty($_POST['user_input'])
&& !empty($_POST['search_for']) && !empty($_POST['replace_with'])) {
echo $user_input = $_POST['user_input'];
echo $search_for = $_POST['search_for'];
echo $replace_with = $_POST['replace_with'];
}
上面的代码应该做你想做的。
于 2012-09-20T09:41:26.713 回答
1
在使用$ _POST
或$ _GET
从表单中检索变量时,您可能会遇到以下错误:
注意:“当前行”行“正在执行的 php 文件的路径”中未定义的索引“表的字段”
出现此错误是因为您的 PHP 错误报告设置。通常,它会在您的变量设置不正确时出现。有两种方法可以处理此问题:
1.使用前检查是否设置了$_POST['action']
或$GET['action']
。例如:
if (!isset($_POST['action'])) {//your pure stuff }
if (!isset($_GET['action'])) {//your pure stuff }
2. 禁止通知警告
注意警告可以通过更改 PHP.ini 中的 error_reporting 变量来抑制。error_reporting 可以设置为显示除通知和编码标准警告之外的所有错误:error_reporting = E_ALL & ~E_NOTICE
<?php error_reporting (E_ALL ^ E_NOTICE); ?>
但我个人的建议是解决警告而不是使用 2 方法
更新的问题答案
您没有添加封闭括号{}
,因此 if 之后的唯一一行将考虑为 if 正文,并且无论您的 if 的结果是真还是假,都将执行您的第二和第三回声
它应该是
if(isset($_POST['user_input']) && isset($_POST['search_for'])
&& isset($_POST['replace_with']) && !empty($_POST['user_input'])
&& !empty($_POST['search_for']) && !empty($_POST['replace_with'])) {
echo $user_input = $_POST['user_input'];
echo $search_for = $_POST['search_for'];
echo $replace_with = $_POST['replace_with'];
}
于 2012-09-20T09:38:50.430 回答
1
如果您在发布表单之前使用变量,例如$var = $_POST['var'];
它将返回错误。
最好检查是否已按下提交按钮。
例子:
if(isset($_POST['submit'])){
//form has been posted
}
然后,我将确保您将使用的所有帖子变量都已设置,如果没有抛出错误。
例子:
$error = false;
//['submit'] is the button used to post the form.
if(isset($_POST['submit'])){
$testVar = (isset($_POST['testVar']) && strlen($_POST['testVar']) > 0 ? $_POST : $error[] = 'Please enter something.');
if(!$error){
//Submit for
}
else{
foreach($error as $e){
echo $e;
}
}
}
于 2012-09-20T09:46:17.210 回答