2016-10-03 19 views
-1

何が間違っているのか分かりません。しかし、私はテキストボックスの値に$num1$num2を使用する場合、それはエラーを示しています。この受信エラー:通知:未定義の変数 - すでに定義済み

Notice: Undefined variable: num1 in D:\Programs\XAMPP\htdocs\homework\addsub.php on line 15`

<?php 
    if(isset($_POST['sub'])) 
    { 
     $num1=$_POST['t1']; 
     $num2=$_POST['t2']; 
     if ($_POST['sub']=="+") { 
      $res= $num1 + $num2; 
     } 
     elseif($_POST['sub']=="-"){ 
      $res = $num1-$num2; 
     } 
    } 
?> 
<form action="addsub.php" method="POST"> 
    <input type="text" name="t1" value="<?php echo $num1;?>"><br> 
    <input type="text" name="t2" value="<?php echo $num2;?>"><br> 
    <input type="text" name="res" value="<?php echo $res;?>"><br> 
    <input type="submit" name="sub" value="+"> 
    <input type="submit" name="sub" value="-"> 
</form> 

を取得します私の友人の1人はラップトップでこの同じコードを使用しましたが、彼はもっと古いバージョンのXamppを使用しています。正常に動作しますが、それ以降のバージョンのXamppではこのエラーが発生します。私はXampp v3.2.1を使用しています。

+0

は(http://stackoverflow.com/a/39824665/1028804)[masterFly]として、あなたの問題はそれだけで、 '$のnum1'であると述べています'$ _POST ['sub']'が設定されていると存在するので、if文の前に何らかのデフォルト値として '$ num1'と' $ num2'を設定する必要があります。もし 'isset($ _ POST [ 'sub']) '。試したことのある他のバージョンのXamppでもエラー報告が無効になっている可能性があるため、Xamppのバージョンとは関係ありません.XamppのインスタンスのPHP設定 –

答えて

1

変数が存在するかどうかを確認するためにissetを使用します。

<input type="text" name="t1" value="<?php echo isset($num1)?$num1:""; ?>"><br> 
+0

($ num1)?$ num1: "";作業?あなたは説明していただけますか? –

+0

$ num1がその値をエコーし​​、そうでなければ空白の値をエコーし​​、変数が設定されていないとPHPコードがエラーを返さないことを確認します。入力フィールドで値を渡すときは、常にこのメソッドを使用します。とisset($ num1)?$ num1: "";先行操作者は以前の意味ですか?私たちがチェックする必要がある私たちの条件ですか? conditionがtrueの場合はエコーされる値、そうでない場合はafter:の値がエコーになります。 – shubham715

4

それともそれはそうのように、存在しない場合は、変数を初期化します。

<?php 
if (!isset($num1)) { 
    $num1 = ''; 
} 

次に、あなたのHTMLは変更されませんでした。

このアプローチをお勧めする理由は、クリーンなコードを作成することです.HTMLは常に$ num1の値を表示し、後で別の値に初期化することを選択すると、 PHP。

1

$_POST['sub']は、変数が定義されていないがない場合は、唯一の、だから、

if(isset($_POST['sub'])) 

$num1変数を設定!ここで

0

はあなたを助けるかもしれないコード、次のとおりです。

<?php 
    var $res=""; 
    var $num1=""; 
    var $num2=""; 
    if(isset($_POST['sub'])) 
    { 
     $num1=$_POST['t1']; 
     $num2=$_POST['t2']; 
     if ($_POST['sub']=="+") { 
      $res= $num1 + $num2; 
     } 
     elseif($_POST['sub']=="-"){ 
      $res = $num1-$num2; 
     } 
    } 
?> 

<form action="addsub.php" method="POST"> 
    <input type="text" name="t1" value="<?php echo $num1;?>"><br> 
    <input type="text" name="t2" value="<?php echo $num2;?>"><br> 
    <input type="text" name="res" value="<?php echo $res;?>"><br> 
    <input type="submit" name="sub" value="+"> 
    <input type="submit" name="sub" value="-"> 
</form> 
関連する問題