Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]ciągłe wykonywanie się if
Th0e
post
Post #1





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 16.09.2012

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


Witam. oto mój kod:


  1. <h3>Uzdrowiciel</h3>
  2.  
  3.  
  4. <form method="post">
  5. <input type="hidden" name="uzdrowiciel" value="uzdrowiciel" />
  6. <input type="submit" name="uzdrowiciel" value="uzdrów" />
  7. </form>
  8. <?php
  9.  
  10.  
  11. $level = mysql_query("SELECT `level` FROM uzytkownicy WHERE `nick`='$nick'");
  12. $lvl = mysql_fetch_array($level);
  13.  
  14. $zycie = mysql_query("SELECT `zycie` FROM uzytkownicy WHERE `nick`='$nick'");
  15. $hp = mysql_fetch_array($zycie);
  16.  
  17.  
  18. $_SESSION['uzdrawianie'] = $_POST['uzdrowiciel'];
  19.  
  20. if ($_SESSION['uzdrawianie'] ="uzdrowiciel"){
  21. if ($lvl['level'] == 1){
  22. echo "uzdrowiono za 50 złota. Twoje życie teraz wynosi 100.";
  23. mysql_query("update uzytkownicy set zycie =100, zloto=`zloto`-50 WHERE nick='$nick'")or die(mysql_error());
  24.  
  25. }
  26. }
  27.  
  28.  
  29. ?>

w tym problem że gdy raz się kliknie uzdrów i wyśle te dane do zmiennej, to potem ciągle jak będziemy wchodzić na tę podstronę z tym - będzie się wykonywać warunek if. Ktoś wie jak to naprawić, że będzie się wykonywało tylko po kliknięciu uzdrów?

ktoś napisał mi już kod:

  1. <?php
  2. $gracz = mysql_fetch_array(mysql_query("SELECT * FROM uzytkownicy WHERE `nick`='$nick'"));
  3. if (!empty($_POST) && $gracz['level'] == 1 && $_POST['uzdrowiciel'] == "uzdrowiciel" && isset($_GET['uzdrow'])){
  4. echo "uzdrowiono za 50 złota. Twoje życie teraz wynosi 100.";
  5. mysql_query("update uzytkownicy set zycie =100, zloto=`zloto`-50 WHERE nick='$nick'")or die(mysql_error());
  6. }
  7. ?>
  8. <h3>Uzdrowiciel</h3>
  9. <form action="?uzdrow" method="POST">
  10. <input type="hidden" name="uzdrowiciel" value="uzdrowiciel" />
  11. <input type="submit" name="uzdrowiciel" value="uzdrów" />
  12. </form>


ale on w ogóle nie działa - nie wysyła danych do bazy, nie pokazuje tekstu.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
RiE
post
Post #2





Grupa: Zarejestrowani
Postów: 97
Pomógł: 45
Dołączył: 5.05.2010

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


  1. if ($_SESSION['uzdrawianie'] ="uzdrowiciel")


Przypisujesz tutaj zmienną, a powinieneś porównywać (==)
Go to the top of the page
+Quote Post
Th0e
post
Post #3





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 16.09.2012

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


Cytat(RiE @ 8.10.2012, 22:23:45 ) *
  1. if ($_SESSION['uzdrawianie'] ="uzdrowiciel")


Przypisujesz tutaj zmienną, a powinieneś porównywać (==)



faktycznie błąd, ale jak poprawie to kod w ogóle nie działa, myślę że warto skoncentrować się na tym drugim kodzie.
Go to the top of the page
+Quote Post
mindspeo
post
Post #4





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 5.10.2012

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


Jak odświeżasz stronę to przesyłasz dane przez $_POST więc przesyłasz ciągle te same dane. $_GET jest ustawione, więc je wyczyść i nie odświeżaj strony F5, tylko poruszaj się niezależnie.

I zrób coś takiego:

  1. $gracz = mysql_fetch_array(mysql_query("SELECT * FROM uzytkownicy WHERE nick ={$nick}"));
  2. echo "<pre>".print_r($gracz,true)."</pre>";


i wklej wynik

Ten post edytował mindspeo 8.10.2012, 21:48:36
Go to the top of the page
+Quote Post
RiE
post
Post #5





Grupa: Zarejestrowani
Postów: 97
Pomógł: 45
Dołączył: 5.05.2010

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


Nie działą bo cały skrypt jest źle napisany.
Zapisujesz do sesji, aby uzdrowił podczas wejścia na strone i sesja to zapamiętuje. W formularzu oba pola mają taką samą nazwę.
Spróbuj tak:
  1. <h3>Uzdrowiciel</h3>
  2.  
  3.  
  4. <form method="post">
  5. <input type="hidden" name="uzdrow" value="uzdrowiciel" />
  6. <input type="submit" name="uzdrowiciel" value="uzdrów" />
  7. </form>
  8. <?php
  9.  
  10.  
  11. $level = mysql_query("SELECT `level` FROM uzytkownicy WHERE `nick`='$nick'");
  12. $lvl = mysql_fetch_array($level);
  13.  
  14. $zycie = mysql_query("SELECT `zycie` FROM uzytkownicy WHERE `nick`='$nick'");
  15. $hp = mysql_fetch_array($zycie);
  16.  
  17.  
  18.  
  19. if ($_POST['uzdrow'] == "uzdrowiciel"){
  20. if ($lvl['level'] == 1){
  21. echo "uzdrowiono za 50 złota. Twoje życie teraz wynosi 100.";
  22. mysql_query("update uzytkownicy set zycie =100, zloto=`zloto`-50 WHERE nick='$nick'")or die(mysql_error());
  23.  
  24. }
  25. }
  26.  
  27.  
  28. ?>


Ten post edytował RiE 8.10.2012, 21:49:59
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 Aktualny czas: 21.08.2025 - 09:06