Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> formularz w bloku while/for
Karlik_t
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 30.06.2005

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


Mam problem ze skryptem.
  1. <?php
  2. //instrukcje wcześniejsze
  3. while($user['hp']>&& $enemy['hp']>0){
  4. $tymetur=$etury;
  5. $tymutur=$utury;
  6. while($tymutury>&& $user['hp']>&& $enemy['hp']>0){
  7. echo('<form action=\"\" method=\"post\"><input type=\"submit\" value=\"bb\" name=\"Atak bronią białą\">
  8. <input type=\"submit\" value=\"eu\" name=\"Eliksir uzdrawiający\">');
  9.  if($stat['profession'] == 'Czarodziej' || $stat['profession'] == 'Kapłan'){
  10. echo('<input type=\"submit\" value=\"ac\" name=\"Atak magią\">
  11. <input type=\"submit\" value=\"em\" name=\"Eliksir many\">');}
  12. echo('<input type=\"submit\" value=\"escape\" name=\"Ucieczka\">
  13. <input type=\"submit\" value=\"automat\" name=\"Automatyczna walka\"></form>');
  14.  if(isset($_POST['escape'])){
  15.  
  16. //instrukcje obsługujące dane z formularzu
  17.  
  18. ?>


Problem w tym że while powoduje błąd (for też). Czy jest jakaś możliwość, żeby efekt był taki jak powinien, a żeby nie było błędu (np. w C++ można wypisywać w bloku while informacje na ekran i obsługiwać pobierane wartości). Proszę o w miarę szybką odpowiedź i żeby to było w miarę łopatologicznie wytłumaczone

EDIT: dałem orginalny kod bo użytkownik nospor nie zrozumiał o co i chodziło

A co do bloków while/for to przecież mogą być one zamienne o ile mi wiadomo

Fatal error: Maximum execution time of 10 seconds exceeded in *adres* on line 185

w linjce 185 mam:
while($user['hp']>0 && $enemy['hp']>0){
lub użyte zamiennie:
for( ;$user['hp']>0 && $enemy['hp']>0; ){

Ten post edytował Karlik_t 30.06.2005, 10:40:01
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




o pierwsze : jaki wywala blad
po drugie : piszesz cos o for, a ja tam widze dwa while jeden po drugim z tym samym warunkiem.
po trzecie. w petli smazyz znacznik <form ... . to raczej jest zle podejscie. tym bardziej ze ciagle ma takie same wartosci.

ten kod nie trzyma sie kupy

Ten post edytował nospor 30.06.2005, 10:30:51
Go to the top of the page
+Quote Post
Karlik_t
post
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 30.06.2005

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


Cytat(nospor @ 2005-06-30 09:30:11)
po trzecie. w petli smazyz znacznik <form ... . to raczej jest zle podejscie. tym bardziej ze ciagle ma takie same wartosci.

Zauważyłem, bo wywala błąd. Założyłem temat żeby ktoś mi pomógł zastosować coś innego, żeby działało
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Dzięki ze mnie wyrozniles w swoim edicie (zabrzmialo jak bym byl glupi czy cos, ale niech ci będzie (po prostu twoj kod nie trzyma sie kupy))

Co ty chcesz osiagnąć. Mas dwa while. w obu warunki ze jakas zmienna ma byc wieksz od 0. Ale w while ty tej zmiennej nie zmieniasz, wiec on ci ciagle wisi w tym while (zapetla sie).

Wiec napisz co ty chcesz zrobic, po co ci te petle i sie nie denerwuj jak ludzie chca ci pomoc
Go to the top of the page
+Quote Post
Karlik_t
post
Post #5





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 30.06.2005

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


Dalej zależnie od wyboru są instrukcje, które obniżają zmienne używane w warunku. "//instrukcje obsługujące dane z formularzu" tam to jest.
Nie będę tu wszystkiego przytaczał bo nie taka jest idea. Chodzi mi o to, że dopóki użytkownik ma tury to może wybiierać co chce zrobić. Sprawdzane jest co wybrał, odejmowane tury/HP i żeby znów mógł wybrać (o ile obaj gracze żyją i dany gracz ma jeszcze tury).

P.S.
Sorry za tego edita
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Wyskakuje ci blad bo ci while sie zadlugo przetwarza. Oznacza to, ze te twoje zmienjszanie zmiennych źle dziala i sie skrypt zapetla. Czy oby na pewno ty zmniejszasz to w tym samym skrypcie, czy chciales dopiero zmiejszaj jak gosciu cos zrobi. Jesli tak to zle, bo gosciu moze to u siebie zrobic a skrypt jest na serwerze nie u niego.

Moze wiec jednak pokaz caly kod (te zmniejszanie zmiennych)

ps: przeprosiny przyjete (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
Karlik_t
post
Post #7





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 30.06.2005

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


Tego kodu byłoby trochę za dużo, po xza tym chodzi o ogólne:
to co mamy
if(isset($_POST['escape'])){//działania}
if(isser($_POST['eu'])){//działania}

itd. do końca

w tych działaniach jest zmniejszenie zmiennych
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




warunek
if(isset($_POST['escape']))
nie jest nigdy spelniony. Czemu? po ty submitowi nadajesz name="Ucieczka", a to wlasnie name jest indexem tablicy $_POST, a nie value (u ciebie value="escape")

milego poprawiania (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
Karlik_t
post
Post #9





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 30.06.2005

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


To value jest wyświetlane jako link :?: Pogubiłem się. Do tego nawet nie wyświetla formularza, a powinien chyba
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Tu się nie ma co gubić (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

parametr value - to co widzisz na przycisku
parametr name - jest indexem w $_POST.
czyli powinno byc:
<input type="submit" name="escape" value="Ucieczka">

zmien na podobnej zasadzie pozostale przyciski.

formularz ci sie nie wyswietla bo sie skrypt zapetla.

wywal formualrza przed obie petle. Przecież formularz ma bycwyswietlony raz (a nie milion razy)
Go to the top of the page
+Quote Post
Karlik_t
post
Post #11





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 30.06.2005

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


Formularz ma być wyświetlony kiedy możesz wybrać rodzaj wybieranej czynność

P.S.
zaraz poprawię, bo teraz szukam niepotrzebnego zakończenia bloku "}", bo jak zauważyłem że nie zakończyłem jednego to dałem i teraz muszę znaleźć gdzie dałem za dużo :/

EDIT: poprawiłem (zamieniłem name i value) i teraz przetwarza skrypt w nieskończonoś ć, jeszcze dam formularz na początek

EDIT2:
dałem formularz przed pętle i też przetwarza bez końca

Ten post edytował Karlik_t 30.06.2005, 11:35:37
Go to the top of the page
+Quote Post
nospor
post
Post #12





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Formularz ma być wyświetlony kiedy możesz wybrać rodzaj wybieranej czynność
Nie wiem o co chodzi. Wiem jedno.Formularz ma być wyswietlony raz. W twojej obecnej sytuacji jest generowany w nieskonczoność (tak jak petla). Daj formualrz poza petlą, ewnetulnie naloż na niego jakiegoś if jesli ma byc wyswitelany warunkowo
Go to the top of the page
+Quote Post
Karlik_t
post
Post #13





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 30.06.2005

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


Heh teraz nie mogę sprawdzić, bo serwer coś się zepsuł (forum i ftp działa dobrze, a sama stronka (gra) nie)

EDIT: to chyba ten skrypt się zapętlił na moim koncie dlatego nie mogę sprawdzić (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

Ten post edytował Karlik_t 30.06.2005, 11:47:26
Go to the top of the page
+Quote Post
nospor
post
Post #14





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
dałem formularz przed pętle i też przetwarza bez końca
czyli twoje warunki zawsze sa spelnione. źle cos robisz w petli. nie jestem ci juz w stanie pomoc, gdyż nie chcesz pokazac calego kodu (zmniejszanie zmiennych).

Sprawdz ewentualnie czy napewno ci wchodzi w te if ktore zmniejszaja te zmienne. Daj echo w tym if i wyzeruj od razu dana zmienna aby warunek w while nie byl spelniony. jesli wyjdzie i pokaz to co bylo w echo, znaczy ze wchodzi w if co z kolei bedzie oznaczac, ze w tym if zle zmniejszasz zmienne
Go to the top of the page
+Quote Post
Karlik_t
post
Post #15





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 30.06.2005

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


Mogę pokazać skrypt ale nie publicznie, masz jakieś gg lub coś w tym stylu :?:
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: 28.09.2025 - 09:58