Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][PHP] Problem z $action = $_POST['action']
plakyra
post 3.10.2011, 19:34:29
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 3.10.2011

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


Witam.
Moj pierwszy post jest tutaj odrazu z pytanie, wkoncu po to zalozylem konto.
Otoz gdy otwieram strone z tym scryptem otrzymuje:


Notice: Undefined index: action in C:\xampp\htdocs\calculator.php on line 108

108 linijka to :
  1. $action = $_POST['action']

Co zrobic aby nie bylo tego komunikatu oraz aby scrypt dzialal ?

  1. <?php
  2. $action = $_POST['action'];
  3. if($action==''){
  4. $plik = $_SERVER["PHP_SELF"];
  5. $plik = str_replacE("/","",$plik);
  6. echo('<form action="'.$plik.'" method="post">
  7. <input type="text" name="obliczenie1" size="5"> <span style="font-size: 12pt"> <strong>k</strong> </span>
  8. <select name="akcja">
  9. <option>Hardcore PvP</option>
  10. <option>Open PvP</option>
  11. <option>Optional PvP</option>
  12. </select>
  13. <input type="hidden" name="action" value="1">
  14. <input type="submit" value="Oblicz"></form>');
  15. }else{
  16. if(is_numeric($_POST['obliczenie1'])){
  17. echo "<span style=\"font-size: 12pt\"> <strong>Otrzymasz: </strong> </span><br/> ";
  18.  
  19.  
  20.  
  21. if($_POST['akcja']=='Hardcore PvP'){
  22. echo($_POST['obliczenie1']*0.9);
  23. echo('k na serwerach Hardcore PvP<br/>');
  24. echo($_POST['obliczenie1']*1.1);
  25. echo('k na serwerach Open PvP<br/>');
  26. echo($_POST['obliczenie1']*1.3);
  27. echo('k na serwerach Optional PvP<br/>');
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34. }elseif($_POST['akcja']=='Open PvP'){
  35. echo($_POST['obliczenie1']*0.5);
  36. echo('k na serwerach Hardcore PvP<br/>');
  37. echo($_POST['obliczenie1']*0.9);
  38. echo('k na serwerach Open PvP<br/>');
  39. echo($_POST['obliczenie1']*1.0);
  40. echo('k na serwerach Optional PvP<br/>');
  41.  
  42.  
  43. }elseif($_POST['akcja']=='Optional PvP'){
  44. echo($_POST['obliczenie1']*0.4);
  45. echo('k na serwerach Hardcore PvP<br/>');
  46. echo($_POST['obliczenie1']*0.7);
  47. echo('k na serwerach Open PvP<br/>');
  48. echo($_POST['obliczenie1']*0.9);
  49. echo('k na serwerach Optional PvP<br/>');
  50. }
  51.  
  52. }else{
  53. echo('Do pola zostala wpisane inna wartosc niz liczba! Prosze to poprawic. ');
  54. }
  55.  
  56. }
  57.  
  58. ?>
  59.  
  60.  
Go to the top of the page
+Quote Post
Daiquiri
post 3.10.2011, 19:41:26
Post #2





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Sprawdzić np. za pomocą isset czy $_POST['action'] został uprzednio ustawiony (przed przypisaniem).
Go to the top of the page
+Quote Post
plakyra
post 3.10.2011, 20:08:29
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 3.10.2011

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


Niestety na php sie kompletnie nie znam, wyczytalem co nieco o tej funkcji ale nie umiem jej uzyc lub poprostu nie dziala.

Prosilbym o krotka instrukcje jak zmienic scrypt, co wpisac lub na co zamienic.
Go to the top of the page
+Quote Post
Daiquiri
post 3.10.2011, 20:12:36
Post #4





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Przecież masz przykład w manualu (podlinkowany isset).
  1. if (isset($var)) {
  2. echo "This var is set so I will print.";
  3. }

Zamiast $var wstawiasz swoją zmienną, czyli $_POST['action'], a zamiast echo przypisanie wartości do $action smile.gif, czyli tę nieszczęsną linijkę 108.
Go to the top of the page
+Quote Post
plakyra
post 3.10.2011, 20:59:41
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 3.10.2011

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


Na ta linijke pomoglo, lecz teraz wyskakuje 112.
Zrobilem tak, mam nadzieje ze o to chodzilo.

112 linijka to :

  1. if($action==''){


  1. <?php
  2. if (isset($_POST['action'])) {
  3. $action = $_POST['action'];
  4. }
  5.  
  6. if($action==''){
  7. $plik = $_SERVER["PHP_SELF"];
  8. $plik = str_replacE("/","",$plik);
  9. echo('<form action="'.$plik.'" method="post">
  10. <input type="text" name="obliczenie1" size="5"> <span style="font-size: 12pt"> <strong>k</strong> </span>
  11. <select name="akcja">
  12. <option>Hardcore PvP</option>
  13. <option>Open PvP</option>
  14. <option>Optional PvP</option>
  15. </select>
  16. <input type="hidden" name="action" value="1">
  17. <input type="submit" value="Oblicz"></form>');
  18. }else{
  19. if(is_numeric($_POST['obliczenie1'])){
  20. echo "<span style=\"font-size: 12pt\"> <strong>Otrzymasz: </strong> </span><br/> ";
  21.  
  22.  
  23. reszta w poprzednim poscie
  24.  
Go to the top of the page
+Quote Post
ano
post 3.10.2011, 21:10:47
Post #6





Grupa: Zarejestrowani
Postów: 435
Pomógł: 40
Dołączył: 16.02.2003
Skąd: Wrocław

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


Zamień 3 linijkę na tą:

  1. if(!isset($_POST['action']) || !isset($_POST['akcja']) || !isset($_POST['obliczenie1']) || ($action = $_POST['action'])==''){


Pełny kod:

  1. <?php
  2. if(!isset($_POST['action']) || !isset($_POST['akcja']) || !isset($_POST['obliczenie1']) || ($action = $_POST['action'])==''){
  3. $plik = $_SERVER["PHP_SELF"];
  4. $plik = str_replacE("/","",$plik);
  5. echo('<form action="'.$plik.'" method="post">
  6. <input type="text" name="obliczenie1" size="5"> <span style="font-size: 12pt"> <strong>k</strong> </span>
  7. <select name="akcja">
  8. <option>Hardcore PvP</option>
  9. <option>Open PvP</option>
  10. <option>Optional PvP</option>
  11. </select>
  12. <input type="hidden" name="action" value="1">
  13. <input type="submit" value="Oblicz"></form>');
  14. }else{
  15. if(is_numeric($_POST['obliczenie1'])){
  16. echo "<span style=\"font-size: 12pt\"> <strong>Otrzymasz: </strong> </span><br/> ";
  17.  
  18.  
  19.  
  20. if($_POST['akcja']=='Hardcore PvP'){
  21. echo($_POST['obliczenie1']*0.9);
  22. echo('k na serwerach Hardcore PvP<br/>');
  23. echo($_POST['obliczenie1']*1.1);
  24. echo('k na serwerach Open PvP<br/>');
  25. echo($_POST['obliczenie1']*1.3);
  26. echo('k na serwerach Optional PvP<br/>');
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33. }elseif($_POST['akcja']=='Open PvP'){
  34. echo($_POST['obliczenie1']*0.5);
  35. echo('k na serwerach Hardcore PvP<br/>');
  36. echo($_POST['obliczenie1']*0.9);
  37. echo('k na serwerach Open PvP<br/>');
  38. echo($_POST['obliczenie1']*1.0);
  39. echo('k na serwerach Optional PvP<br/>');
  40.  
  41.  
  42. }elseif($_POST['akcja']=='Optional PvP'){
  43. echo($_POST['obliczenie1']*0.4);
  44. echo('k na serwerach Hardcore PvP<br/>');
  45. echo($_POST['obliczenie1']*0.7);
  46. echo('k na serwerach Open PvP<br/>');
  47. echo($_POST['obliczenie1']*0.9);
  48. echo('k na serwerach Optional PvP<br/>');
  49. }
  50.  
  51. }else{
  52. echo('Do pola zostala wpisane inna wartosc niz liczba! Prosze to poprawic. ');
  53. }
  54.  
  55. }
  56.  
  57. ?>


Ten post edytował ano 3.10.2011, 21:11:21


--------------------
Linkedin | ...
Go to the top of the page
+Quote Post
plakyra
post 3.10.2011, 22:01:15
Post #7





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 3.10.2011

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


Bardzo dziękuje.
Działa prawidłowo.

Temat do zamknięcia.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 7.07.2025 - 00:30