2
4

3 回答 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 回答