• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed [PHP] Prosty kalkulator - prośba o sprawdzenie zadania

VPS Starter Arubacloud
0 głosów
6,129 wizyt
pytanie zadane 16 stycznia 2017 w PHP przez Krzysztof Trybuś Mądrala (5,280 p.)
zamknięte 17 stycznia 2017 przez Krzysztof Trybuś

Cześć! Proszę Was o sprawdzenie moich błędów w tym kalkulatorze napisanym w PHP. Do tej pory wykonywałem obliczenia w PHP i C++, ale nie wiem jak takie coś powinno poprawnie wyglądać przy użyciu formularza. 

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Kalkulator</title>
</head>

<body>

<p>Kalkulator</p>


<form method="POST" action="kalkulator.php">
    <input type="text" name="liczba1" size="10">
    <select name="znak">
        <option>+</option>
        <option>-</option>
        <option>*</option>
        <option>/</option>
    </select>
    <input type="text" name="liczba2" size="10">
    <input type="submit" value="Oblicz">
</form>

</body>
</html>
<?php
$liczba1 = $_POST['liczba1'];
$liczba2 = $_POST['liczba2'];
$znak = $_POST['znak'];
$wynik = "";
switch ($znak)
{
    case "+":
        $wynik = $liczba1+$liczba2;
        break;
    case "-":
        $wynik = $liczba1-$liczba2;
        break;
    case "*":
        $wynik = $liczba1*$liczba2;
        break;
    case "/":
        $wynik = $liczba1/$liczba2;
        break;
}
echo "Wynik działania: ".$wynik;
?>

Komunikaty o błędach:


Notice: Undefined index: liczba1 in C:\xampp\htdocs\krzys\kalkulator.php on line 2

Notice: Undefined index: liczba2 in C:\xampp\htdocs\krzys\kalkulator.php on line 3

Notice: Undefined index: znak in C:\xampp\htdocs\krzys\kalkulator.php on line 4
Wynik działania:

 

komentarz zamknięcia: PROBLEM ROZWIĄZANY

2 odpowiedzi

0 głosów
odpowiedź 16 stycznia 2017 przez HaKIM Szeryf (87,590 p.)
wybrane 17 stycznia 2017 przez Krzysztof Trybuś
 
Najlepsza
Skrypt działa poprawnie.

Musiałeś coś spierdzielić w pliku .html. Może błędna nazwa/ścieżka do pliku z rozszerzeniem .php?
komentarz 16 stycznia 2017 przez Krzysztof Trybuś Mądrala (5,280 p.)

A muszę się w html'u odwoływać do ścieżki pliku PHP, tak jak do arkusza CSS? Pytam, bo nie wiem, a jedynym miejscem w którym się niejako odwołuje jest

<form method="POST" action="kalkulator.php">

Taka jest moja ścieżka katalogowa

C:\xampp\htdocs\projekty

i w niej tworze skrypty PHP

SCREEN z katalogu:

Żeby połączyć skrypt php i html muszę tworzyć plik z rozszerzeniem .php i wrzucić php i html do jednego pliku, czy mogę to też połączyć razem w pliku z rozszerzeniem .html?

Wiem, że problem pewnie banalny, ale uczę się dopiero :) Jeszcze z takim czymś nie miałem styczności.

 

komentarz 16 stycznia 2017 przez HaKIM Szeryf (87,590 p.)

Wydaje się być poprawna.

Możesz zrobić w jednym pliku z rozszerzeniem .php - CZEGO NIE POLECAM JAK I ODRADZAM. Również możesz oddzielić te dwie warstwy od siebie, co jest dobrym rozwiązaniem.

Spróbuj czegoś takiego:

kalkulator.html

...

<form action="kalkulator.php" method="post">
    <input type="number" name="liczba">
    <input type="submit" value="Oblicz">
</form>

...

kalkulator.php

<?php

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $liczba = $_POST['liczba'];
    print $liczba;
} else {
    print 'Dane nie zostały pomyślnie wysłane.';
}

Daj znać co zwróciło.

Warstwy:

https://4programmers.net/In%C5%BCynieria_oprogramowania/Architektura_warstwowa

$_SERVER['REQUEST_METHOD']

http://php.net/manual/en/reserved.variables.server.php

komentarz 16 stycznia 2017 przez Krzysztof Trybuś Mądrala (5,280 p.)

To co mi podałeś wkleiłem do czystych plików html i php, dobrze?


Notice: Undefined index: liczba in C:\xampp\htdocs\krzys\kalkulator.php on line 4

 

komentarz 16 stycznia 2017 przez HaKIM Szeryf (87,590 p.)

Dziwne.

Srpóbuj z:

<form action="kalkulator.php" method="get">

    <input type="number" name="liczba">

    <input type="submit" value="Oblicz">

</form>
<?php
 
if ($_SERVER['REQUEST_METHOD'] == 'GET') {
    $liczba = $_GET['liczba'];
    print $liczba;
} else {
    print 'Dane nie zostały pomyślnie wysłane.';
}

I wpisz w adresie url:

localhost/nazwa_projketu/sciezka/do/kalkulator.php?liczba=1

Jak będzie ten sam błąd... Cóż... Zobaczymy. :D

komentarz 17 stycznia 2017 przez Krzysztof Trybuś Mądrala (5,280 p.)
Korzystam z PHPStorm i  jego wtyczki serwerowej i z tego co widzę coś jej się musiało pomieszać :)

Uruchomiłem skrypt na XAMP'ie i wszystko działa.

Dzięki za pomoc.
0 głosów
odpowiedź 16 stycznia 2017 przez Bosswell Nałogowiec (36,470 p.)
Plik z html, to ten sam co z php ?

Notice: Undefined index: liczba1 in C:\xampp\htdocs\krzys\kalkulator.php on line 2

Notice: Undefined index: liczba2 in C:\xampp\htdocs\krzys\kalkulator.php on line 3

Notice: Undefined index: znak in C:\xampp\htdocs\krzys\kalkulator.php on line 4

Chodzi o to, że te zmienne nie są ustawione. Daj warunek, w którym sprawdzisz czy są one puste. Jeśli nie, to wykonaj skrypt.

if((!empty($_POST['liczba1'])) && (!empty($_POST['liczba2'])) && (!empty($_POST['znak'])))

Podobne pytania

+1 głos
1 odpowiedź 4,313 wizyt
0 głosów
1 odpowiedź 209 wizyt
pytanie zadane 21 marca 2018 w JavaScript przez Apper97 Obywatel (1,380 p.)
0 głosów
1 odpowiedź 192 wizyt

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...