Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z dodawaniem zmiennych
Forum PHP.pl > Forum > Przedszkole
Adiqus
Witam ... jestem początkującym programistą PHP i mam pewien problem ...

A mianowicie ...

Zrobiłem stronę (index.html) na której są cztery pola tekstowe ... ich wartości (liczby) są przesyłane motodą POST do pliku walka.php ... tam następuje sumowanie (dodawanie) ich wartości liczowych i wyświetlenie tej sumy za pomocą funkcji echo ...

W przeglądarce ... plik index.html wygląda tak jak ma wyglądać ... ale jak wpisze w te cztery pola cyfry i nacisnę przycisk typu submit ... to mi się pokazuje następująca strona (błąd):

http://img220.imageshack.us/my.php?image=screen01ru5.png

Mógłby mi ktoś wytłumaczyć dlaczego tak jest questionmark.gif

Teraz kod:

index.html:

  1. <title>Walka ... </title>
  2. <form action="walka.php" method="post" name="walka">
  3. <font size=7><b>Ilosc punktow do rozdania jest 35 ...</b></font><br><br>
  4. Podaj swoja zrecznosc: <input name="zrecznosc" type="text">
  5. <br><br>
  6. Podaj swoja szybkosc: <input name="szybkosc" type="text">
  7. <br><br>
  8. Podaj swoja sile: <input name="sila" type="text">
  9. <br><br>
  10. Podaj swoja wytrzymalosc: <input name="wytrzymalosc" type="text">
  11. <br><br>
  12. Wybierz bron:<br>
  13. <input type="radio" name="bron" value="sztylety" /><b>Sztylety</b> (2 ataki w jednej kolejce, z 2 razy mniejsza sila,
  14. pierwszy atak z 2x mniejsza szansa trafienie - lub z 2x wieksza szansa uniku przeciwnika) - 10 obr. / sztylet<br>
  15. <input type="radio" name="bron" value="mieczyk" /><b>Krotki miecz + tarcza</b> (atak z 2x mniejsza sila + szansa
  16. zablokowania) - 20 obr.<br>
  17. <input type="radio" name="bron" value="miecz" /><b>Miecz</b> - 45 obr.<br><br>
  18. <input type="submit" value="Walka !" name="start">
  19. </form>
  20. </body>
  21. </html>


walka.php:

http://img218.imageshack.us/my.php?image=phptb8.jpg Z góry dziękuje ...
ziqzaq
Pewnie przez nawiasy okrągłe zamiast kwadratowych:
  1. <?php
  2. $zmienna = $_POST('zmienna'); // Nie
  3. $zmienna = $_POST['zmienna']; // Tak
  4. ?>
erix
Czekam na PW z tytułem wątku opisującym problem.

edit: otwieram
Adiqus
Cytat(ziqzaq @ 27.01.2009, 19:14:06 ) *
Pewnie przez nawiasy okrągłe zamiast kwadratowych:
  1. <?php
  2. $zmienna = $_POST('zmienna'); // Nie
  3. $zmienna = $_POST['zmienna']; // Tak
  4. ?>


dzieki ...

Postanowiłem ulepszyc tą strone ... Najpierw ma ona sprawdzic czy uzytkownik rozdal 35 pkt. statystyk, jesli nie zostanie wyswietlony bląd ... pozniej (jezeli uzytkownik rozdal 35 pkt.) dodaje do kazdej statystyki 1 (zyby sie nie okazalo, ze uzytkownik ma 0 sily np.) i sprawdza czy zostala wybrana bron ... jezeli nie to wyskakuje bląd ... jezeli tak to losuje wartosci statystyk dla gladiatora (za pomoca funkcji rand()) i przedstawia wszystkie statystyki (uzytkownika i gladiatora) w tabeli ...

No i wyskatuje mi strona z bledem programistycznym ... moglby mi ktos wskazac ten bląd questionmark.gif

Kod

walka.php:

  1. <?php
  2.  
  3. $zr=$_POST['zrecznosc'];
  4. $szyb=$_POST['szybkosc'];
  5. $sil=$_POST['sila'];
  6. $wytrz=$_POST['wytrzymalosc'];
  7.  
  8.  
  9.  
  10. $sila=$sil+1;
  11. $zrecznosc=$zr+1;
  12. $szybkosc=$szyb+1;
  13. $wytrzymalosc=$wytrz+1;
  14.  
  15. $suma=$zr+$szyb+$sil+$wytrz;
  16.  
  17. if($suma>35)
  18. {
  19. echo "Rozdales las za duzo statystyk ... <a href='http://www.adiqusphp.w8w.pl'>Powrot</a>";
  20. }
  21.  
  22. if($suma<35)
  23. {
  24. echo "Rozdales las za malo statystyk ... <a href='http://www.adiqusphp.w8w.pl'>Powrot</a>";
  25. }
  26.  
  27. if($suma==35)
  28. {
  29.  
  30. if($_POST['bron']==NULL)
  31. {
  32.  
  33. echo "Nie wybrales las swojej broni ... <a href='http://www.adiqusphp.w8w.pl'>Powrot</a>";
  34. }
  35.  
  36. else
  37. {
  38.  
  39. $sila_gladiatora=rand(25,48);
  40. $wytrzymalosc_gladiatora=rand(11,22);
  41. $zrecznosc_gladiatora=rand(7,12);
  42. $szybkosc_gladiatora=rand(15,21);
  43.  
  44. echo "<table cellspacing='35' border='1'>
  45. <tr>
  46. <td><b>Imie</b></td>
  47. <td><b>Zrecznosc</b></td>
  48. <td><b>Szybkosc</b></td>
  49. <td><b>Wytrzymalosc</b></td>
  50. <td><b>sila</b></td>
  51. </tr>
  52. <tr>
  53. <td>$_POST['imie']</td>
  54. <td>$zrecznosc</td>
  55. <td>$szybkosc</td>
  56. <td>$wytrzymalosc</td>
  57. <td>$sila</td>
  58. </tr>
  59. <tr>
  60. <td>Gladiator</td>
  61. <td>$zrecznosc_gladiatora</td>
  62. <td>$szybkosc_gladiatora</td>
  63. <td>$wytrzymalosc_gladiatora</td>
  64. <td>$sila_gladiatora</td>
  65. </tr>
  66. </table>";
  67.  
  68. }
  69.  
  70. }
  71.  
  72. ?>


index.html

  1. <title>Walka ... </title>
  2. <form action="walka.php" method="post">
  3. Podaj swoje imie: <input type="text" name="imie"><br><br>
  4. <font size=6><b>Masz 35 pkt. statystyk do rozdania ...</b></font><br><br>
  5. Podaj swoja zrecznosc: <input name="zrecznosc" type="text">
  6. <br><br>
  7. Podaj swoja szybkosc: <input name="szybkosc" type="text">
  8. <br><br>
  9. Podaj swoja sile: <input name="sila" type="text">
  10. <br><br>
  11. Podaj swoja wytrzymalosc: <input name="wytrzymalosc" type="text">
  12. <br><br>
  13. Wybierz bron:<br>
  14. <input type="radio" name="bron" value="sztylety" /><b>Sztylety</b> (2 ataki w jednej kolejce, z 2 razy mniejsza sila,
  15. pierwszy atak z 2x mniejsza szansa trafienie - lub z 2x wieksza szansa uniku przeciwnika) - 10 obr. / sztylet<br>
  16. <input type="radio" name="bron" value="mieczyk" /><b>Krotki miecz + tarcza</b> (atak z 2x mniejsza sila + szansa
  17. zablokowania) - 20 obr.<br>
  18. <input type="radio" name="bron" value="miecz" /><b>Miecz</b> - 45 obr.<br><br>
  19. <input type="submit" value="Walka !">
  20. </form>
  21. </body>
  22. </html>


Z gory dzieki ...
wookieb
Wiedziałem, że będzie się sypać syntax error w temacie.
1) Bierzesz się za robienie gry jak nie znasz zupełnych podstaw?
2) A ten ELSE to do którego IF'a? Elsa ma być tuż po ifie albo tuż bo klamrze zamykającej ifa (ZADNYCH PUSTYCH LINII ITD)
3) Nie podałeś komunikatu błędu. A to TRZEBA podawać
4) Nie spodziewaj sie miłego przyjęcia przy kolejnym syntax errorze.
5) Przeczytaj najpierw JESZCE RAZ wszystko co tutaj jest.http://pl.php.net/manual/pl/langref.php
Tak wiem life is brutal ale jak chcesz się nauczyć to musisz to przeczytac.
Adiqus
1) Nie nazwałbym tego tworzeniem gry ... raczej eksperymentalnym tworzeniem generetora raportu z walki (a to różnica) ... a wogóle znam podstawy ... (robiłem kiedyś w C++ - a np. tam IF ma taką samą składnie jak w PHP)

2) Poprawiłem to ... i nic to nie dało ...

3) Jakiego komunikatu o bledzie questionmark.gif ... wyswietliła mi się tylko taka strona ... http://img220.imageshack.us/my.php?image=screen01ru5.png

4) Wcale się nie spodziewam ... chce po prostu rozwiązać problem ...
5) Hmmm ... raczej wątpie, żebym to przeczytał ... nie za bardzo zman angielski ... tongue.gif
wookieb
1) Nie znasz :/
2) Widze ze masz wylaczone raportowanie bledow.
Jeżeli masz mozliwość edycji pliku php.ini to zmien
Kod
display_errors na On
error_reporting na E_ALL^E_NOTICE


Jeżeli nie mozesz to sprobuj w htaccess dodac
Kod
php_value display_errors  On
php_value error_reporting E_ALL^E_NOTICE


5) A to niestety musisz przeczytać choćby polski kurs php który omówi ci podstawową składnie i pare innych rzeczy.

I pokaż jeszcze raz co teraz masz za kod.
Adiqus
co do zmiany w tych plikach to się na tym zupełnie nie znam ... tongue.gif

a jesli chodzi o kod:

  1. <?php
  2.  
  3. $zr=$_POST['zrecznosc'];
  4. $szyb=$_POST['szybkosc'];
  5. $sil=$_POST['sila'];
  6. $wytrz=$_POST['wytrzymalosc'];
  7.  
  8.  
  9.  
  10. $sila=$sil+1;
  11. $zrecznosc=$zr+1;
  12. $szybkosc=$szyb+1;
  13. $wytrzymalosc=$wytrz+1;
  14.  
  15. $suma=$zr+$szyb+$sil+$wytrz;
  16.  
  17. if($suma>35)
  18. {
  19. echo "Rozdales las za duzo statystyk ... <a href='http://www.adiqusphp.w8w.pl'>Powrot</a>";
  20. }
  21.  
  22. if($suma<35)
  23. {
  24. echo "Rozdales las za malo statystyk ... <a href='http://www.adiqusphp.w8w.pl'>Powrot</a>";
  25. }
  26.  
  27. if($suma==35)
  28. {
  29.  
  30. if($_POST['bron']==NULL)
  31. {
  32.  
  33. echo "Nie wybrales las swojej broni ... <a href='http://www.adiqusphp.w8w.pl'>Powrot</a>";
  34. }
  35. else // zmiany dokonalem tylko przy tym else ...
  36. {
  37.  
  38. $sila_gladiatora=rand(25,48);
  39. $wytrzymalosc_gladiatora=rand(11,22);
  40. $zrecznosc_gladiatora=rand(7,12);
  41. $szybkosc_gladiatora=rand(15,21);
  42.  
  43. echo "<table cellspacing='35' border='1'>
  44. <tr>
  45. <td><b>Imie</b></td>
  46. <td><b>Zrecznosc</b></td>
  47. <td><b>Szybkosc</b></td>
  48. <td><b>Wytrzymalosc</b></td>
  49. <td><b>sila</b></td>
  50. </tr>
  51. <tr>
  52. <td>$_POST['imie']</td>
  53. <td>$zrecznosc</td>
  54. <td>$szybkosc</td>
  55. <td>$wytrzymalosc</td>
  56. <td>$sila</td>
  57. </tr>
  58. <tr>
  59. <td>Gladiator</td>
  60. <td>$zrecznosc_gladiatora</td>
  61. <td>$szybkosc_gladiatora</td>
  62. <td>$wytrzymalosc_gladiatora</td>
  63. <td>$sila_gladiatora</td>
  64. </tr>
  65. </table>";
  66.  
  67. }
  68.  
  69. }
  70.  
  71. ?>


Ale chyba masz racje ... porywam sie z motyka na słonce ... chociaż to tylko ze 200 instrukcji warunkowych if() i pare funkcji rand() ... tongue.gif
wookieb
To postaw sobie serwer na localu. Masz sporo opcji, Wamp (nie chodzi o tą gazetę), XAMPP i tam testuj. Bo bez raportowanie błedów pisanie w phpie jest tragiczne. Jak zresztą w każdym innym języku.

Cytat
Ale chyba masz racje ... porywam sie z motyka na słonce ... chociaż to tylko ze 200 instrukcji warunkowych if() i pare funkcji rand() ... tongue.gif

Ironie zachowaj dla siebie.
Adiqus
Cytat(wookieb @ 28.01.2009, 13:44:58 ) *
Ironie zachowaj dla siebie.


Ale to nie była ironia ...
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.