Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Automatyczny start pomijający formularz
Forum PHP.pl > Forum > PHP
Plasot
Witam. Postaram się to opisać nalepiej jak umiem. Korzystam w serwera apache 2.2. Mam problem z programami w php, a oto i on: Po uruchomieniu programu w php dajy na to np. cos.php, który ma formularz z podaniem liczby np. a i b i przycisk "wykonaj" po którego wcisnięciu obliczana jest suma a i b i jest ona wyświetlana , ale dajmy na to jeśli pola a i b są puste zwraca nam wiadomość "null". I chodzi o to gdy już uruchomie program(localhost/cos.php) mam wszystko ok, ale na dole wyświetla mi null co oznacza, że program się wykonał po jego uruchomieniu mimo iż nie wypełniłem formularza i nie wcisnołem "wykonaj". I zapewniam, że to nie błąd w kodzie. Program od mojego nauczyciela działał u niego bez problemu(program ten to prosty kalkulator) i u mnie też działał, ale na dole po jego uruchomieniu wyświetla się komunikat adekawtny do jego wykonania pozostawiając wszystkie pola puste. Krótko mówiąc po prostu wykonuje się z "automatu". Problem zauważyłem od dziś i nie będę w stanie stwierdzić co mogłem pozmieniać w kompie, bo ostatnio coś w php robiłem z tydzień temu. Ale nie sądzę by Mount & Blade coś pozmieniał smile.gif
Liczę na szybką pomoc z waszej strony.
Pozdrawiam serdecznie.
rad11
Bez kodu to nawet salomon nie naleje.
Raito
To, co ma się wykonać po przesłaniu danych, obejmij w warunek, sprawdzający, czy te dane zostały przesłane.
Plasot
Mówisz i masz przykładowy program, który dziś robiłem - miał wyliczyć pole koła:
  1. <html>
  2. <head>
  3. Aby obliczyć pole koła podaj promień.<br>
  4. Pamiętaj, że PI wynosi tutaj 3.1415.<br>
  5. <title>Ćw 1.01</title>
  6. </head>
  7. <body>
  8. <form action='101.php' method='post'>
  9. <input type='text' name='promien'>
  10. <input type='submit' value='Oblicz'><br>
  11. </form>
  12. <?php
  13. $x=$_POST[promien];
  14. define('PI','3.1415');
  15. $p=PI*$x*$x;
  16. echo "Pole koła wyonsi: ".$p;
  17. header('Location:glowna.php');
  18. ?>
  19. </body>
  20. </html>
Comandeer
Jak już zostało wspomniane, warto sprawdzać dwie rzeczy: czy formularz został wgl przesłany (np. przy pomocy $_SERVER['REQUEST_METHOD'] i czy konkretne pola zostały uzupełnione
sazian
  1. if(isset($_POST['promien']))
  2. {
  3. ...
  4. }

a tak poza tym polecam lekturę
http://php.net/manual/en/function.pi.php
http://php.net/manual/en/function.pow.php

ten header jest w tym miejscu całkowicie bezsensu
Plasot
Header'a zapomnialem usunac gdy sprawdzalem cos jeszcze w programie - moj blad
darek334
W ogóle układ kodu i kolejność tragiczna. Dziwisz się że skrypt wykonuje się na dzień dobry. Tak więc prześledźmy go przy wywołaniu pierwszy raz :
mamy na początku html php go wrzuci do zwrotu, potem natrafia na skrypt i co tu mamy:
$x=$_POST[promien]; przypisuje zmiennej $x wartośc $_POST[promien] która jest null, bo jest nie zainicjowana i dalej to wiadomo, w ogóle na początku powinieneś sprawdzać czy formularz został wywołany procedurą isset jeśli tak to wykonać na przekazanych danych dalsze działanie jeśli nie to przywitać nowego odwiedzającego miłym dzień dobry wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.