我不断收到错误消息,因为没有立即设置变量

时间:2017-11-20 13:32:38

标签: php html

好的,所以我正在开展一个学校项目,目前正在开发一个购物计算器",该文本是挪威语,但这并不重要。

我的总和变量是在购物者想要通过邮寄提交的项目之后设置的。一切正常。 但是在代码中我应该添加带有优惠券代码的文本,如果客户购物超过800NOK。它有效,但在点击提交按钮之前我一直收到此错误:Error message

这是我的HTML:

     <form  action="" method="get">
   <p>Velg vare 1: </p>
   <select name="vare1">
     <option value="Medlemskap">Medlemskap, 500 kr</option>
     <option value="Ball">Select Utlimate Håndball, 600 kr</option>
     <option value="Klister">Select Profcare Klister, 500 kr</option>
     <option value="Ingen">Ingen vare</option>
   </select>

   <p>Velg vare 2: </p>
   <select name="vare2">
     <option value="Medlemskap">Medlemskap, 500 kr</option>
     <option value="Ball">Select Utlimate Håndball, 600 kr</option>
     <option value="Klister">Select Profcare Klister, 500 kr</option>
     <option value="Ingen">Ingen vare</option>
   </select>

   <p>Velg vare 3: </p>
   <select name="vare3">
     <option value="Medlemskap">Medlemskap, 500 kr</option>
     <option value="Ball">Select Utlimate Håndball, 600 kr</option>
     <option value="Klister">Select Profcare Klister, 500 kr</option>
     <option value="Ingen">Ingen vare</option>
   </select><br><br>
   <input type="submit" name="beregn_prisen" value="Beregn prisen">
  </form>

这是我的php:

    <?php
    if(isset($_GET["beregn_prisen"])) {
      $vare1 = $_GET["vare1"];
      $vare2 = $_GET["vare2"];
      $vare3 = $_GET["vare3"];




    if ($vare1=="Ball") {
  $pris1=600;
}  else if ($vare1=="Medlemskap") {
    $pris1=500;
}  else if ($vare1=="Klister") {
    $pris1=500;
} else {
    $pris1=0;
}

if ($vare2=="Ball") {
  $pris2=600;
}  else if ($vare2=="Medlemskap") {
    $pris2=500;
}  else if ($vare2=="Klister") {
    $pris2=500;
} else {
    $pris2=0;
}

if ($vare3=="Ball") {
  $pris3=600;
}  else if ($vare3=="Medlemskap") {
    $pris3=500;
}  else if ($vare3=="Klister") {
    $pris3=500;
} else {
    $pris3=0;
}


$sum = $pris1 + $pris2 + $pris3;


echo "<strong>$vare1</strong>:  $pris1 kr <br>
     <strong>$vare2</strong>:  $pris2 kr<br>
     <strong>$vare3</strong>:  $pris3 kr";

echo "<br><br>Prisen er <strong>$sum</strong> kroner";
}


if ($sum >= "800") {
echo "<br><br>Du har fått en rabattkode for å handle for over 800kr! <br>Rabattkoden er: <strong>2HJ4G7S</strong>";
}
     ?>

正如我所说,一切正常,但当用户未提交时,我收到了令人讨厌的错误消息。

3 个答案:

答案 0 :(得分:2)

您的代码的简化版本如下所示:

if(isset($_GET["beregn_prisen"])) {
    # Do stuff that defines $sum
}
if ($sum >= "800") {
    echo "<br><br>Du har fått en rabattkode for å handle for over 800kr! <br>Rabattkoden er: <strong>2HJ4G7S</strong>";
}

只需将使用$sum的代码全部移动到控制其存在与否的if语句中。

if(isset($_GET["beregn_prisen"])) {
    # Do stuff that defines $sum
    if ($sum >= "800") {
        echo "<br><br>Du har fått en rabattkode for å handle for over 800kr! <br>Rabattkoden er: <strong>2HJ4G7S</strong>";
    }
}

答案 1 :(得分:0)

这部分:

if ($sum >= "800") {
echo "<br><br>Du har fått en rabattkode for å handle for over 800kr! <br>Rabattkoden er: <strong>2HJ4G7S</strong>";
}

超出条件:

if(isset($_GET["beregn_prisen"])) {

因此,$ sum未定义。 你应该把这部分放在条件中。

  echo "<br><br>Prisen er <strong>$sum</strong> kroner";
//} <-- removed this one.


  if ($sum >= "800") {
    echo "<br><br>Du har fått en rabattkode for å handle for over 800kr! <br>Rabattkoden er: <strong>2HJ4G7S</strong>";
  }

} //Repositioned it over here.

更好的练习笔记#1: 使用缩进,它可以更容易地找到像这样的错误或问题。 (而且它在视觉上更好)

更好的练习笔记#2: 不要多次使用if()elseif(),而应考虑使用switch()语句。

答案 2 :(得分:-2)

$ sum未定义,如果不是$ _GET [&#34; beregn_prisen&#34;]

<?php
    if(isset($_GET["beregn_prisen"])) {
      $vare1 = $_GET["vare1"];
      $vare2 = $_GET["vare2"];
      $vare3 = $_GET["vare3"];




    if ($vare1=="Ball") {
  $pris1=600;
}  else if ($vare1=="Medlemskap") {
    $pris1=500;
}  else if ($vare1=="Klister") {
    $pris1=500;
} else {
    $pris1=0;
}

if ($vare2=="Ball") {
  $pris2=600;
}  else if ($vare2=="Medlemskap") {
    $pris2=500;
}  else if ($vare2=="Klister") {
    $pris2=500;
} else {
    $pris2=0;
}

if ($vare3=="Ball") {
  $pris3=600;
}  else if ($vare3=="Medlemskap") {
    $pris3=500;
}  else if ($vare3=="Klister") {
    $pris3=500;
} else {
    $pris3=0;
}


$sum = $pris1 + $pris2 + $pris3;


echo "<strong>$vare1</strong>:  $pris1 kr <br>
     <strong>$vare2</strong>:  $pris2 kr<br>
     <strong>$vare3</strong>:  $pris3 kr";

echo "<br><br>Prisen er <strong>$sum</strong> kroner";
} else {
  $sum = 0;
}


if ($sum >= "800") {
echo "<br><br>Du har fått en rabattkode for å handle for over 800kr! <br>Rabattkoden er: <strong>2HJ4G7S</strong>";
}
     ?>