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してフォームから変数を取得すると、次のエラーが発生する場合があります。

Notice: 行 '現在の行' の '実行中の php ファイルのパス' の未定義のインデックス 'テーブルのフィールド'

このエラーは、PHP エラー レポート設定が原因で表示されます。通常、変数が適切に設定されていない場合に表示されます。この問題を処理するには、次の 2 つの方法があります。

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 の後の 1 行だけが if 本体と見なされ、if の結果が true か false かに関係なく、2 番目と 3 番目のエコーが実行されます。

そのはず

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 に答える