Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Automatyczny start pomijający formularz
Plasot
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 27.05.2015

Ostrzeżenie: (0%)
-----


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ł (IMG:style_emoticons/default/smile.gif)
Liczę na szybką pomoc z waszej strony.
Pozdrawiam serdecznie.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
rad11
post
Post #2





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Bez kodu to nawet salomon nie naleje.
Go to the top of the page
+Quote Post
Raito
post
Post #3





Grupa: Zarejestrowani
Postów: 156
Pomógł: 19
Dołączył: 27.04.2014

Ostrzeżenie: (0%)
-----


To, co ma się wykonać po przesłaniu danych, obejmij w warunek, sprawdzający, czy te dane zostały przesłane.

Ten post edytował Raito 27.05.2015, 19:30:12
Go to the top of the page
+Quote Post
Plasot
post
Post #4





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 27.05.2015

Ostrzeżenie: (0%)
-----


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>
Go to the top of the page
+Quote Post
Comandeer
post
Post #5





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
sazian
post
Post #6





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

Ostrzeżenie: (0%)
-----


  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
Go to the top of the page
+Quote Post
Plasot
post
Post #7





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 27.05.2015

Ostrzeżenie: (0%)
-----


Header'a zapomnialem usunac gdy sprawdzalem cos jeszcze w programie - moj blad
Go to the top of the page
+Quote Post
darek334
post
Post #8





Grupa: Zarejestrowani
Postów: 87
Pomógł: 3
Dołączył: 23.04.2013

Ostrzeżenie: (30%)
XX---


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 (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 14:35