Zacząłem niedawno studiować podręczniki do php. W jednym z podrozdziałów znalazłem skrypt, który obliczał wartości funkcji kwadratowej. Analizując go postanowiłem napisać własny, ale odnośnie funkcji liniowej - nie ma właściwie tam za dużo liczenia, ale nie w tym rzecz.
utowrzyłem formularz w formie $_POST, który pobiera parametry a i b. Następnie napisałem skrypt, który podstawia parametry a i b pod wzór y = ax + b
w zależności od tego jakie wartości przyjmują dane parametry. I tutaj nachodzą mnie wątpliwości, ponieważ mocno wydaje mi się, że troszkę oszukiwałem. Nie potrafiłem jeszcze innej metody zastosować
Rzeczą której nie rozumiem to skrypt sprawdzający czy obie wartości a i b są liczbami. Dlaczego skrypt nie uznaje liczb ujemnych? -2, -3 etc. ? Przez znak "-" ?
Wadą skryptu jest napewno to, że można mu sprzedać każdą ciemnotę - podstawić jakieś literki i inne wyrażenia z kosmosu i przyjmie je jako swoje.
Skrypt sprawdzający czy są liczbami jest - wydaje mi się, że wystarczyło by dodać odpowiednią instrukcję, żeby nie przepuszczał żadnych innych znaków poza literami, ale z kolei gdybym tak zrobił, to nie akceptowałby mi liczb ujemnych.
Prosze o wskazanie ewentualnych błędów w kodzie, albo nieprawidłowych sformułowań. Proszę o wskazówki i naprowadzenia, jak poprawić moje oszustwo, albo utwierdzić mnie w tym, że to "dobre oszustwo" i było to całkiem logiczne posunięcie : )
Dzięki i pozdrawiam
PS. niżej zamieszczam cały kod i link gdzie można zobaczyć jak skrypt działa w rzeczywistości.
http://dhost.info/mampatent/xyz/index.php
CODE
y=ax+b
<html>
<body>
<form method="POST" action="index.php">
<p><label>Podaj parametr "a": <input type="text" name="a"/></label></p>
<p><label>Podaj parametr "b": <input type="text" name="b"/></label></p>
<p><input type="submit" value="wyślij"/><input type="reset" value="wyczyść"/></p>
</form>
<?php
//1 - parametry a,b
if (is_numeric($_POST['a'] & $_POST['b']))
{
echo 'oba parametry są liczbami<br/><br/>';
}
else
{
echo 'jeden z parametrów nie jest liczbą <br/><br/>';
}
$a = $_POST['a']; // parametr a
$b = $_POST['b']; // parametr b
$x = 'x';
$znak = '+';
// Założenia parametru b i zmiany zmiennych
if ($_POST['b'] > 0) // jeżeli b > 0 - znakiem we wzorze będzie '+'
{
$znak = '+';
}
elseif ($_POST['b'] == 0) // jeśli b == 0 nie wyświetli się ani znak, ani wartość parametru b = 0
{
$znak = ' ';
$b = ' ';
}
elseif ($_POST['b'] < 0) // jeśli b < 0 nie wyświetli się żaden znak
{
$znak ='';
}
else
{
$znak = '-';
}
// Założenia parametru a i zmiany zmiennych
if($a > 1)
{
$x = 'x'; //jeśli a > 1 - x wyswietlany obok parametru
}
elseif($a < 0) // jeśli a < 0 - x wyswietlany
{
$x = 'x';
}
elseif($a == 1) // jeśli a == 1 - nie wyswietlamy 'x'
{
$a = '';
}
else
{
$a = '';
$x = '';
$znak = '';
}
if($a == 0 && $b == 0)
{
$a = 0;
$b = 0;
$x = '';
$znak = '';
$funkcja = $a + $b;
}
else
{
$funkcja = $a. $x. $znak. $b;
}
echo 'wzór twojej funkcji to: <font color="red">y = ' .$funkcja.'</font>';
<html>
<body>
<form method="POST" action="index.php">
<p><label>Podaj parametr "a": <input type="text" name="a"/></label></p>
<p><label>Podaj parametr "b": <input type="text" name="b"/></label></p>
<p><input type="submit" value="wyślij"/><input type="reset" value="wyczyść"/></p>
</form>
<?php
//1 - parametry a,b
if (is_numeric($_POST['a'] & $_POST['b']))
{
echo 'oba parametry są liczbami<br/><br/>';
}
else
{
echo 'jeden z parametrów nie jest liczbą <br/><br/>';
}
$a = $_POST['a']; // parametr a
$b = $_POST['b']; // parametr b
$x = 'x';
$znak = '+';
// Założenia parametru b i zmiany zmiennych
if ($_POST['b'] > 0) // jeżeli b > 0 - znakiem we wzorze będzie '+'
{
$znak = '+';
}
elseif ($_POST['b'] == 0) // jeśli b == 0 nie wyświetli się ani znak, ani wartość parametru b = 0
{
$znak = ' ';
$b = ' ';
}
elseif ($_POST['b'] < 0) // jeśli b < 0 nie wyświetli się żaden znak
{
$znak ='';
}
else
{
$znak = '-';
}
// Założenia parametru a i zmiany zmiennych
if($a > 1)
{
$x = 'x'; //jeśli a > 1 - x wyswietlany obok parametru
}
elseif($a < 0) // jeśli a < 0 - x wyswietlany
{
$x = 'x';
}
elseif($a == 1) // jeśli a == 1 - nie wyswietlamy 'x'
{
$a = '';
}
else
{
$a = '';
$x = '';
$znak = '';
}
if($a == 0 && $b == 0)
{
$a = 0;
$b = 0;
$x = '';
$znak = '';
$funkcja = $a + $b;
}
else
{
$funkcja = $a. $x. $znak. $b;
}
echo 'wzór twojej funkcji to: <font color="red">y = ' .$funkcja.'</font>';