Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] skrypt zadań nie działa jak powinien
Th0e
post
Post #1





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

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


Witam. stworzyłem skrypt zadań, jednak jeśli wykonamy zadanie pierwsze, to złoto nam doda, jednak zawartość kolumny "zadanie" i "wykonanezadania" ustawi na 0, chociaż jest napisane by podało co innego. Przez co gracz może brać dane zadanie bez końca i zgarniać nagrodę. Po wzięciu zadania normalnie wysyła do kolumny "zadanie" informacje o wziętym zadaniu. oto kod:


  1. <strong>PODNIEŚ SWOJE MORALE!</strong>
  2. <br /><a>zadanie 1.</a>
  3. <form method="post">
  4. <input type="hidden" name="zc01" value="zc01" />
  5. <input type="submit" value="rozpocznij zadanie!" />
  6. </form>
  7.  
  8. <strong>DOŁĄCZ DO GILDII!</strong>
  9. <br /><a>zadanie 2</a>
  10. <form method="post">
  11. <input type="hidden" name="zc02" value="zc02" />
  12. <input type="submit" value="rozpocznij zadanie!" />
  13. </form>
  14.  
  15. <strong>ZYSKAJ HONOR!</strong>
  16. <br /><a>zadanie 3</a>
  17. <form method="post">
  18. <input type="hidden" name="zc03" value="zc03" />
  19. <input type="submit" value="rozpocznij zadanie!" />
  20. </form>



  1. <?php
  2.  
  3. $graczyk = mysql_query("SELECT * FROM uzytkownicy WHERE `nick`='$nick'"); // pobranie danych o graczu
  4. $gracz = mysql_fetch_array($graczyk);
  5. $wykonane_zadanka = explode(",", $gracz['wykonanezadania']);
  6.  
  7. if(isset($_POST["zc01"]) && $wykonane_zadanka !== 'zc01'){ //jeśli button kliknięty - zapisze dane o pobraniu zadania.
  8. mysql_query("update uzytkownicy set zadanie= 'zc01' WHERE nick='$nick'")or die(mysql_error());
  9. header("Location: miasto_czlowiek.php?co=wzietozadaniezc01");
  10. }
  11.  
  12. if(isset($_GET["co"]) && $_GET["co"] == "wzietozadaniezc01") { //info że zadanie zostało zaakceptowane
  13. echo "zadanie PODNIEŚ SWOJE MORALE, zostało akceptowane. ";
  14. }
  15.  
  16. //zadanie 02
  17.  
  18. if(isset($_POST["zc02"]) && $wykonane_zadanka !== 'zc01'){ //jeśli button kliknięty - zapisze dane o pobraniu zadania.
  19. mysql_query("update uzytkownicy set zadanie= 'zc02' WHERE nick='$nick'")or die(mysql_error());
  20. header("Location: miasto_czlowiek.php?co=wzietozadaniezc02");
  21. }
  22.  
  23. if(isset($_GET["co"]) && $_GET["co"] == "wzietozadaniezc02") { //info że zadanie zostało zaakceptowane
  24. echo "zadanie DOŁĄCZ DO GILDII, zostało akceptowane. ";
  25. }
  26.  
  27. //zadanie 03
  28.  
  29. if(isset($_POST["zc03"]) && $wykonane_zadanka !== 'zc03'){ //jeśli button kliknięty - zapisze dane o pobraniu zadania.
  30. mysql_query("update uzytkownicy set zadanie= 'zc03' WHERE nick='$nick'")or die(mysql_error());
  31. header("Location: miasto_czlowiek.php?co=wzietozadaniezc03");
  32. }
  33.  
  34. if(isset($_GET["co"]) && $_GET["co"] == "wzietozadaniezc03") { //info że zadanie zostało zaakceptowane
  35. echo "zadanie ZYSKAJ HONOR, zostało akceptowane. ";
  36. }
  37.  
  38. //nagroda za wykonanie zadanie pierwszego
  39. if($gracz['level'] >= '10' && $gracz['zadanie'] == "zc01" && $gracz['wykonanezadania'] !== "zc01" ){
  40. mysql_query("update uzytkownicy set zadanie= "wykonane", wykonanezadania=`wykonanezadania` + "zc01" WHERE nick='$nick'")or die(mysql_error());
  41. header("Location: miasto_czlowiek.php?co=wykonanozadaniezc01");
  42. }
  43.  
  44. if(isset($_GET["co"]) && $_GET["co"] == "wykonanozadaniezc01") {
  45. echo "<br />Gratulacje! wykonałeś zadanie PODNIEŚ SWOJE MORALE!";
  46. }


Ten post edytował Th0e 17.10.2012, 17:05:58
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
--Th0e--
post
Post #2





Goście







zrobilem juz ze dziala:

  1. <strong>PODNIEŒ SWOJE MORALE!</strong>
  2. <br /><a>Czas zdobyć szacunek w tutejszym otoczeniu, pokaż na co Cię stać. ZdobšdŸ 10 poziom doœwiadczenia i otrzymaj nagrodę.</a>
  3. <form method="post">
  4. <input type="hidden" name="zc01" value="zc01" />
  5. <input type="submit" value="rozpocznij zadanie!" />
  6. </form>
  7.  
  8.  
  9. <?php
  10. //pobieranie danych o graczu
  11. $graczyk = mysql_query("SELECT * FROM uzytkownicy WHERE `nick`='$nick'"); // pobranie danych o graczu
  12. $gracz = mysql_fetch_array($graczyk);
  13.  
  14. //zadanie 01
  15. if(isset($_POST["zc01"])){
  16.  
  17. if($gracz['wykonanezadania'] !== 'zc01'){ //jeœli button kliknięty - zapisze dane o pobraniu zadania.
  18. mysql_query("update uzytkownicy set zadanie= 'zc01' WHERE nick='$nick'")or die(mysql_error());
  19. header("Location: miasto_zadania.php?co=wzietozadaniezc01");
  20. }
  21. else {
  22. header("Location: miasto_zadania.php?co=nie_mozna_zaakceptowac_zadania");
  23.  
  24. }
  25. }
  26.  
  27. if(isset($_GET["co"]) && $_GET["co"] == "wzietozadaniezc01") { //info że zadanie zostało zaakceptowane
  28. echo "zadanie PODNIEŒ SWOJE MORALE, zostało akceptowane. ";
  29. }
  30. //nagroda za wykonanie zadanie pierwszego
  31. if($gracz['level'] >= '10' && $gracz['zadanie'] == "zc01" && $gracz['wykonanezadania'] !== "zc01" ){
  32. $zadaneczko01 = 'dupa';
  33. $wykonane01 = 'zc01';
  34. mysql_query("update uzytkownicy set zadanie= '$zadaneczko01', wykonanezadania = +'$wykonane01' WHERE nick='$nick'")or die(mysql_error());
  35. header("Location: miasto_zadania.php?co=wykonanozadaniezc01");
  36. }
  37. if(isset($_GET["co"]) && $_GET["co"] == "wykonanozadaniezc01") {
  38. echo "<br />Gratulacje! wykonałeœ zadanie PODNIEŒ SWOJE MORALE!";
  39. }
  40.  
  41.  
  42. ?>


jednak chcialbym zrobic by w kolumnie wykonanezadania wyszukiwalo czy nie ma tam informacji "zc01", jak na razie dziala bo jest jedno zadanie. ale jak zrobie wiecej to kolumnapewnie bedzie wygladac tak: zc01zc02 - a wtedy bedzie mozna powtorzyc zadanie bo zawartosc juz nie bedzie zc01... probowalem to zrobic z tym: http://kursphp.com/szukanie_podciagu.php

ale po zastosowaniu tego po wykonaniu zadania wysyla mi do kolumny wykonanezadania tylko "0". czy da sie to jakos zrobic z explode?
Go to the top of the page
+Quote Post
viking
post
Post #3





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

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


Cytat(-Th0e- @ 18.10.2012, 13:58:09 ) *
zrobilem juz ze dziala:

[php]html...
header...
header...

Jesteś pewien? Ja tu widzę "headers already sent".
Go to the top of the page
+Quote Post

Posty w temacie


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: 17.10.2025 - 16:32