Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP] Problem z $action = $_POST['action']
Forum PHP.pl > Forum > Przedszkole
plakyra
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.  
Daiquiri
Sprawdzić np. za pomocą isset czy $_POST['action'] został uprzednio ustawiony (przed przypisaniem).
plakyra
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.
Daiquiri
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.
plakyra
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.  
ano
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. ?>
plakyra
Bardzo dziękuje.
Działa prawidłowo.

Temat do zamknięcia.
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.