Gå til innhold

[Løst] "Unexpected error" i PHP-kalkulator


Anbefalte innlegg

Hei.

Jeg prøver å lage en enkel kalkulator, men jeg får feilmelding etter "else", da programmet ikke forventer at det skal komme { etterpå.

 

Er det noen som ser løsningen?

Takker for all hjelp!

 

Her er koden:

<?php

$page = $_GET['page'];

class calc

{
 var $number1;
 var $number2;
 var $a="1";
}
{
 if($number1==$a)
 {
	  function beregn1($number1)
	  {
		   $result =$number1 * 500;
		   echo "Beregnet sum er:1 $result .";
	  }

 }
 else if($number1>$a)
 {
	  function beregn2($number1)
	  {
		   $result2 =$number1 * 425;
		   echo("Beregnet sum er:2 $result2 .");
		   exit;
	  }

 }
}
$calc = new calc();
?>

<form name="calc" action="?page=calc" method="POST">
Number 1: <input type="text" name="value1" value="0"><br>
Number 2: <input type="text" name="value2" value="0"><br>
<input type=submit name=oper value="beregn">
<input type=reset value="Nullstill skjema">
</form>

<?php
if($page == "calc")
{
 $number1 = $_POST['value1'];
 $number2 = $_POST['value2'];
 $oper = $_POST['oper'];
 if(!eregi("[0-9]", $number1))
 {
	  echo("Nummer 1 MÅ være nummer");
	  exit;
 }
 if(!eregi("[0-9]", $number2))
 {
	  echo("Nummer 2 MÅ være nummer");
	  exit;
 }
 if($oper == "beregn")
 {
	  $calc->beregn1($number1,$a);
 }
}
?>

Endret av Egron91
Lenke til kommentar
Videoannonse
Annonse

Takk for hjelpen!

Nå får jeg feilmelding på linje 67, slutten av scriptet.. det fungerte før da jeg hadde kun 1 function betingelse.. Har jeg skrevet noe feil her?

 

65   if($oper == "beregn")
66       {
67          $calc->beregn1($number1,$a);
68       }

Lenke til kommentar

Rar kode, kan forenkles til dette

class calc
{
   function beregn1($number1)
   {
       $result = $number1 * 500;
       echo "Beregnet sum er: {$result} .";
   }

   function beregn2($number1)
   {
       $result2 = $number1 * 425;
       echo "Beregnet sum er:2 {$result2} .";
   }                
}

// html

if($page == "calc")
{
   $number1 = $_POST['value1'];
   $number2 = $_POST['value2'];
   $oper = $_POST['oper'];
   $a=1;

   if(!eregi("[0-9]", $number1))
   {
       echo("Nummer 1 MÅ være nummer");
       exit;
   }
   // $number2 er ikke i bruk
   if(!eregi("[0-9]", $number2)) 
   {
       echo("Nummer 2 MÅ være nummer");
       exit;
   }

   if($oper == "beregn")
   {
       $calc = new calc();
       if ($number1==$a)
           $calc->beregn1($number1);
       elseif ($number1>$a)
           $calc->beregn2($number1);
   }
}

 

Noen kommentarer til din kode

 

 

class calc
{
// ingen av disse variablene blir brukt.
        var $number1; 
        var $number2; 
        var $a="1"; 
} // fjern denne, ellers avsluttes klassen her
{ // fjern denne
        if($number1==$a) // ??? dette skal vel ligge inne i en funksjon, ikke utenfor
        {
                 function beregn1($number1)
                 {
                          $result =$number1 * 500;
                          // bruk { } rundt variabler i en streng, slik at php helt sikkert hvor variabelen begynner og slutter
                          echo "Beregnet sum er:1 $result ."; 
                          // alternativt gjør slik:
                          echo 'Beregnet sum er:1 ' . $result . '.';
                 }

        }
        else if($number1>$a) // ???
        {
                 function beregn2($number1)
                 {
                          $result2 =$number1 * 425;
                          echo("Beregnet sum er:2 $result2 .");
                          exit; // ???
                 }

        }
}

 

Lenke til kommentar

Jeg begynte helt på nytt og fra bunnen av... fikk det til nå, med god hjelp fra dere! Takk for hjelpen!

 

koden ble definitivt mye enklere og...

 

<?php
$number1 = $_POST['barn'];
$number2 = $_POST['voksen'];
$num1 = "500"; //Full pris Barn og ungdom
$num2 = "375"; //Halv pris Barn og ungdom + forsikring
$num3 = "1000"; //Full pris Voksen
$num4 = "675"; //Halv pris Voksen + forsikring
$num5 = "1";
$num6 = "0";

if($number2==$num6)
{
   $sum_total = (($number1-$num5)*($num2))+($num1);
}
elseif($number2==$num5)
{
   $sum_total = (($number2-$num5)*($num4))+($num3)+($number1*$num2);
}
elseif($number2>$num5)
{
   $sum_total = (($number2-$num5)*($num4))+($num3)+($number1*$num2);
}
echo "Det blir: $sum_total ";
?>

<form name="calc" action="?page=calc" method="POST">
Barn: <input type="text" name="barn" maxlength="1" size="1"><br>
Voksen: <input type="text" name="voksen" maxlength="1" size="1"><br>
<input type=submit value="beregn">
<input type=reset value="Nullstill skjema">
</form>

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...