0

これは、フォームをチェックするための PHP コード スニペットです。

<?php
include_once("includes/form_functions.php");
$var1 = 0; 
$var2 = 0; 
$var3 = 0; 
$var4 = 0; 
if(isset($_POST['submit'])) // checks if submit button is clicked of form
{
    if(isset($_POST['rdvar1']))
    {
        $var5 = $_POST["rdvar1"];
        if($_POST["rdvar1"] == "RJ")
        {
            $var1 = 20;
            $var2 = 15;
        }
        else
        {
            $var1 = 5;
            $var2 = 10;
        }           
    }
    if(isset($_POST['rdvar3']))
    {
        $var3 = $_POST["rdvar3"];
    }
    if(isset($_POST['rdvar4']))
    {
        $var4 = $_POST["rdvar4"];
    }
              elseif()
    {
               // many else if validation goes here 
              } 
        else
    {
        // some more internal validations
        $var6 = $var1/100 * $var2 + $var3 * $var4; // here i calculated var6 

            if(empty($message))
            {
            // db insert query  
                  }
    }
}
?> // php tag ends

// html website starts here
<!DOCTYPE html>
<html lang="en">

// somewhere down in html page i used

<?php
echo $var6
?>
// rest of html code and form

私のフォーム コードはすべて問題なく、すべての html も問題なく、私が作成したすべての php も問題ないと思います。

このコードを実行すると、ウェブページに常に通知が表示されます

 Notice: Undefined variable: var6 in C:\wamp\www\aaa\calc.php on line 478

未定義の変数から私が理解しているのは、変数のローカルまたはグローバルスコープである可能性があります...しかし、この変数をphpメインコードで使用し、phpメインコードで再度呼び出すと、関数内にないため、スコープがグローバルになります。 . まだこの通知を受けていますが、この変数の値を確認できませんか??

何が間違っている可能性がありますか??

4

3 に答える 3

6

スキップしたため、else のみに割り当てました。

if (condition) {
    // !! whatever here is executed
}
else
{
    // !! and this does not
    // some more internal validations
    $var6 = $var1/100 * $var2 + $var3 * $var4; // here i calculated var6 

        if(empty($message))
        { // db insert query }
}

入力した条件は実行されません。値をキャッチするか、 if 条件を改善してください。

通知を完全にしてエラーを取り除くには、他のスクリプトと同様にスクリプトの先頭で初期化する必要があります。

$var1 = 0; 
$var2 = 0; 
$var3 = 0; 
$var4 = 0; 
$var6 = 0; // <-- init this too
于 2013-03-10T03:55:49.883 に答える
-1

あなたのコードは $var6 の値を設定していません。オプションは次のとおりです。

  1. $var1-4 で行っているように、常に $var6 を設定します。
  2. 通知を非表示にするだけです。これは次のように行われます: <?PHP echo @$var6; ?>
  3. エコーする前に $var6 が設定されているかどうかを確認してください: <?PHP echo isset($var6) ? $var6 : "Var6 が設定されていません!"; ?>
于 2013-03-10T04:00:25.053 に答える
-1

通常、通知はそれほど重要ではなく、発生する可能性はあるが発生しない可能性が高いいくつかの癖について警告するためのものです。この場合、通知を無視することができます。

次の PHP コードを使用して、通知を無効にすることもできます。

error_reporting(E_ALL ^ E_NOTICE);
于 2013-03-10T03:54:06.967 に答える