Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Problem z grą
-gierczan-
post
Post #1





Goście







Witam mam problem z kodem w PHP. Robię grę na plikach (*.php) i chodzi o to iż znika mi sesja albo pliki nwm pomóżcie (IMG:style_emoticons/default/ohno-smiley.gif)
  1. <!DOCTYPE html>
  2. <?php
  3. include($_SESSION['user']."/staty_".$_SESSION['user'].".php");
  4. include($_SESSION['user']."/zloto_".$_SESSION['user'].".php");
  5. include("page.php");
  6. ?>
  7. <html>
  8. <head>
  9. <link rel="stylesheet" href="style.css" type="text/css" />
  10. <title><?php echo $title; ?></title>
  11. </head>
  12. <?php
  13. if(isSet($_SESSION['user']))
  14. {
  15. }
  16. else{
  17. header("Location: login.php");
  18. }
  19. ?>
  20. <body>
  21. <?php
  22. $z = $zycie + 1;
  23. $m = $mana;
  24. $zl = $zloto - 150;
  25. file_put_contents($_SESSION['user']."/staty_".$_SESSION['user'].".php", "");
  26. file_put_contents($_SESSION['user']."/zloto_".$_SESSION['user'].".php", "");
  27. $staty = "<"."?"."php"."\n"."$"."zycie"." = ".$z.";"."\n"."$"."mana"." = ".$m.";"."\n"."$"."exp"." = "."0".";"."\n"."?".">";
  28. $file = $_SESSION['user']."/staty_".$SESSION['user'].".php";
  29. $fp = fopen($file, "a+");
  30. flock($fp, 2);
  31. fwrite($fp, $staty);
  32. flock($fp, 3);
  33. fclose($fp);
  34. $zlotos = "<"."?"."php"."\n"."$"."zloto"." = ".$zl."\n"."?".">";
  35. $file = $_SESSION['user']."/zloto_".$SESSION['user'].".php";
  36. $fp = fopen($file, "a+");
  37. flock($fp, 2);
  38. fwrite($fp, $zlotos);
  39. flock($fp, 3);
  40. fclose($fp);
  41. ?>
  42. <h1>Dodano +1 życia dla gracza <?php echo $_SESSION['user']; ?></h1><br>
  43. <small><a href="gra.php">Powrót</a></small>
  44. </body>
  45. </html>
Go to the top of the page
+Quote Post
3 Stron V   1 2 3 >  
Start new topic
Odpowiedzi (1 - 43)
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Cytat
Note:
To use cookie-based sessions, session_start() must be called before outputing anything to the browser.
Go to the top of the page
+Quote Post
Scalak
post
Post #3





Grupa: Zarejestrowani
Postów: 63
Pomógł: 16
Dołączył: 21.03.2009

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


a jeśli sugestia kolegi nie jest zrozumiała to dodaj na początku pliku (przed html):
Kod
<?php ob_start(); ?>


Pozdrawiam
Scalak

Ten post edytował Scalak 22.12.2013, 01:04:02
Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Raczej miałem na myśli żeby DOCTYPE przenieść niżej (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
-gierczan-
post
Post #5





Goście







Chodzi o to, że tworzy pliki staty_.php bez nicku
Go to the top of the page
+Quote Post
rad11
post
Post #6





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


Sprawdz co zawiera zmienna sesyjna

  1. $_SESSION['user']


ponizsza funkcja

(var_dump)



Ten post edytował rad11 23.12.2013, 21:07:11
Go to the top of the page
+Quote Post
-gierczan-
post
Post #7





Goście







Okej juz naprawilem napisalem $SESSION zamiast $_SESSION
Go to the top of the page
+Quote Post
-gierczan-
post
Post #8





Goście







Zapraszam do gry
  1. <a href="http://dbfuries.cba.pl/STRONA/index.php" target="_blank">http://dbfuries.cba.pl/STRONA/index.php</a>
Go to the top of the page
+Quote Post
rad11
post
Post #9





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


To jeszcze popraw kod ktory wstawiles (IMG:style_emoticons/default/smile.gif)

I radził bym poczytać jeszcze troche o walidacji formularzy bo mozna utworzyc konto o pustym nicku i hasle jak i rowniez moze takich kont byc XXXXX reszty nie chcialo mi sie testowac. (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
-gierczan-
post
Post #10





Goście







Okej naprawiłem dobry kod?
  1. if($pole1=="" || $pole2=="" || $pole3=="")
  2. {
  3. header("Location: error.php");
  4. }
  5. else{
  6. //reszta kodu tajemnica (IMG:style_emoticons/default/haha.gif)
  7. }
Go to the top of the page
+Quote Post
-gierczan-
post
Post #11





Goście







Okej dzisiaj dodam potworów kilka i git. Też dodam wymienianie expa na lvl. W razie sugestii piszcie (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
kujol
post
Post #12





Grupa: Zarejestrowani
Postów: 324
Pomógł: 27
Dołączył: 21.07.2013

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


Formularze sprawdzaj za pomocą wyrażeń regularnych i empty()

pl.wikibooks.org/wiki/PHP/Podstawy_wyrażeń_regularnych

edit:
Zarejestrować się chyba nie da (IMG:style_emoticons/default/wink.gif)

Ten post edytował kujol 24.12.2013, 15:20:24
Go to the top of the page
+Quote Post
-gierczan-
post
Post #13





Goście







Okej naprawilem to ten kod przeszkadzal ale nie rozumiem tych regularnych dalbys gotowca?
Go to the top of the page
+Quote Post
kujol
post
Post #14





Grupa: Zarejestrowani
Postów: 324
Pomógł: 27
Dołączył: 21.07.2013

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


Robisz wzór i sprawdzasz czy dane do niego są podobne np.

  1.  
  2. if{
  3. ( preg_match ( '/^[a-zA-
  4. Z0-9\.\-_]+\@[a-zA-
  5. Z0-9\.\-_]+\.[a-z]
  6. {2,4}$/D' , $pole3)) //sprawdza poprawność adresu email
  7. }
  8.  
  9. else{
  10. header( "Location:
  11. error.php" );
  12. }
  13.  
Go to the top of the page
+Quote Post
-gierczan-
post
Post #15





Goście







cos nie dziala dalej konto utworzono pomyslnie
Go to the top of the page
+Quote Post
-gierczan-
post
Post #16





Goście







A i mam pytanie bo zrobilem zabezpieczenie zeby nie robic konto o takich samych nickach:
  1. if(is_dir($pole1))
  2. {
  3. header("Location: error.php?error_number=1");
  4. }

I jak zrobic ze jak jest 1 wyswietla sie ze taki nick istnieje a jak 2 to ze taki email jest w uzyciu?
Go to the top of the page
+Quote Post
-gierczan-
post
Post #17





Goście







Mam hosting na cba wiec opoznienia sa albo kod nie dziala (nie dziala przez te powody). Co robic? Kod wyglada normalnie tak:
  1. <?php
  2. $zloto = 150;
  3. ?>

A po utworzzeniu takiego samego nicku:
  1. <?php
  2. $zloto = 0;
  3. ?><?php
  4. $zloto = 150;
  5. ?>

Go to the top of the page
+Quote Post
-gierczan-
post
Post #18





Goście







Okej poradzilem sobie jak bede potrzebowal pomocy napisze!
Go to the top of the page
+Quote Post
kujol
post
Post #19





Grupa: Zarejestrowani
Postów: 324
Pomógł: 27
Dołączył: 21.07.2013

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


Walczyć też się nie da i dodał byś może jakiś ranking, bo co z tego że mam 100 exp, jeśli nie wiem który jestem (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
-gierczan-
post
Post #20





Goście







Ok dziś dodam wiecej potworow (dziłających) a to z rankingiem to nwm sortowanie bąbelkowe?
Go to the top of the page
+Quote Post
rad11
post
Post #21





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


Np. sortowanie. A jesli chce Ci sie to mozesz napisac od nowa ten algorytm sortowania babelkowego.
Go to the top of the page
+Quote Post
-gierczan-
post
Post #22





Goście







Okej dziala all bo bledy byly juz teraz potworki dodaje. Zapraszam do gry a postacie nie dzialaja bo usunalem. Robcie kont z normalnymi nickami a nie typu "Y" i "a" itp (IMG:style_emoticons/default/thumbsdownsmileyanim.gif)
Go to the top of the page
+Quote Post
com
post
Post #23





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


Cytat
Masz niewystarczającą ilość złota

Dodano +1 many dla gracza kalkulator
Go to the top of the page
+Quote Post
-gierczna-
post
Post #24





Goście







Naprawione
Go to the top of the page
+Quote Post
kamilos809
post
Post #25





Grupa: Zarejestrowani
Postów: 165
Pomógł: 3
Dołączył: 2.04.2010

Ostrzeżenie: (10%)
X----


Ja ze swojej strony dodam, że gierka może być dobra, tylko zrób coś z tym, żeby po walce z wilkiem/misiem mógł być łatwy powrót a nie 100 kliknięć "Wróć" bo to odstrasza (IMG:style_emoticons/default/wink.gif)
Z moich pomysłów(mam nadzieje, że pomogą):
-Ranking
-Widok swojego profilu(Avatar, jakiś swój opis, przedmioty które mógłbyś mieć)
-Sklep z bronią
-Skoro miasto, to jakieś możliwości kupna twojego domu w którym możesz odnawiać życie za przespanie się jakiś czas

Taka mała kosmetyka:
Żeby było górne menu, gdzie będzie to co masz na głównej(Twój nick, Energia, Mana, Złoto), a to menu pokazywało się niezależnie od twojego miejsca przebywania (IMG:style_emoticons/default/smile.gif)

Takich tam pomysłów mam wiele jeszcze, ale nie chcę się narzucać (IMG:style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
-gierczan-
post
Post #26





Goście







Okej naprawiam gre narazie nic nie działa (IMG:style_emoticons/default/haha.gif)
Go to the top of the page
+Quote Post
Nagareteku
post
Post #27





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 6.01.2014

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


Poczytaj też o SMARTY (system szablonów), żeby oddzielić kod PHP od HTML-a, to Ci pomoże w dalszej pracy. Zamiast na plikach, pracuj na bazie danych - MySQL to bardzo prosta, przydatna i, dla gier, priorytetowa sprawa.

Przydatne dla Ciebie będą funkcje i struktury:

isset();
preg_match();
define();
include();
require() ~ require_once();
switch {}
foreach {}

Pamiętaj, że przy tworzeniu gry:

1. Każde dane, wysyłane przez użytkowników, muszą być filtrowane. Brak odpowiednich zapezpieczeń może doprowadzić do katastrofy.

2. Nie tworzy się gier na plikach. Jako początkujący, bez utartych ścieżek, zajmij się bazami danych. To Ci nie zaszkodzi, a już na pewno pomoże w dalszym rozwoju i ćwiczeniach, zarówno samego PHP, jak i tym, jak zarządzasz danymi. Pliki to ostateczność lub przemyślana strategia.

3. Stałe globalne trzyma się w jednym pliku, byś miał do nich bezpośredni dostęp, bez szukania. define(); jest w tym dość pomocne i poręczne.

4. Filtruj i weryfikuj nawet to, co silnik gry robi wewnętrznie. Bez ustalonych wzorów, jakakolwiek zmiana lub nieprzewidziana sytuacja może Ci narobić tylko szkód.

Powodzenia! : )
Go to the top of the page
+Quote Post
-gierczan-
post
Post #28





Goście







Dzięki.
To że na plikach raczej nie szkodzi za bardzo bo:
- z plik korzysta tylko 1 user (pliki sa blokowane do zapisu),
- sa w php (nie widac kodu).
Baza danych tez dobre rozwiazanie. Wątpie by nastąpił atak a nawet jeśli by było $_GET to wystarczy:
  1. <?php
  2. htmlspecialchars($_GET['costam']);
  3. ?>
Go to the top of the page
+Quote Post
-gierczan-
post
Post #29





Goście







Jakis kacper sie zarejestrowal, dalem 1000 zlota za free 1 user (IMG:style_emoticons/default/haha.gif)
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #30





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




I leczenie nie działa (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
--Leszcz--
post
Post #31





Goście







Co do sortowania bąbelkowe jak bd miał dużo graczy się nie sprawdza i jest wolne. Ja polecam qsort, albo sortowań z "dziel i zwycieżaj" raczej bym używał (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
-gierczan-
post
Post #32





Goście







Wiem leczenie nie działa dam wszystkim z 10k zycia na start narazie
Go to the top of the page
+Quote Post
kujol
post
Post #33





Grupa: Zarejestrowani
Postów: 324
Pomógł: 27
Dołączył: 21.07.2013

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


Skończyło mi się już te życie (IMG:style_emoticons/default/smile.gif) zdobyłem 3307 złota, pokonałem bota ze 100 razy i co dalej?
Exp jak był 0 tak jest 0 (IMG:style_emoticons/default/smile.gif)
Te "walcz ludzie" to walka z innymi graczami?
Go to the top of the page
+Quote Post
-gierczan-
post
Post #34





Goście







ok naprawie
Go to the top of the page
+Quote Post
-gierczan-
post
Post #35





Goście







Ok leczenie działa a walka z ludźmi niedługo (gracze premium będą mieli listę graczy).
Go to the top of the page
+Quote Post
kujol
post
Post #36





Grupa: Zarejestrowani
Postów: 324
Pomógł: 27
Dołączył: 21.07.2013

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



Cytat
ok naprawie


Chyba nie do końca, znów straciłem całe życie, mam ponad 6k złota i nadal 0 expa.
Mówisz, że lista graczy będzie tylko dla posiadaczy premium? (IMG:style_emoticons/default/smile.gif) , z tego co zauważyłem ranking jest podstawową funkcją w każdych grach. Zadaj sobie 1 pytanie: po co ludzie grają w takie gry?, a no dla satysfakcji, zabawy itp.

Ja będąc graczem chce widzieć jak moja pozycja w grze wzrasta, będąc tym faktem zadowolony, na grę poświęcam więcej czasu i tak to się kręci.

Premium to mogą być jakieś bronie, większa moc itp. Za listę graczy nikt Ci chyba nie zapłaci prawdziwymi pieniędzmi (IMG:style_emoticons/default/smile.gif) .
Z ciekawości można zapytać ilu masz ma dzień dzisiejszy zarejestrowanych, oraz grających graczy?

Ten post edytował kujol 19.01.2014, 18:46:58
Go to the top of the page
+Quote Post
-gierczan-
post
Post #37





Goście







sprawdze pisze na szybko nie patrze na orto.
Co do expa dziala razem z leczeniem.
Dam Ci 10k expa za rekompensate.
Masz racje ranking słabe ze sie placi moze symulowanie walk za premium?
Go to the top of the page
+Quote Post
-gierczan-
post
Post #38





Goście







na firefoxie nie dziala dobrze bo slashe podwaja z / na // jakies pomysly? (double slashes)
Go to the top of the page
+Quote Post
kujol
post
Post #39





Grupa: Zarejestrowani
Postów: 324
Pomógł: 27
Dołączył: 21.07.2013

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


Ja bym zrobił najpierw grafikę, następnie napisał pod to skrypty i przetestował. Po tym puścił grę w obieg (IMG:style_emoticons/default/wink.gif)

Go to the top of the page
+Quote Post
-gierczan-
post
Post #40





Goście







A tam sie w locie robi wersje beta. Co do rankingu to jak zrobic? (IMG:style_emoticons/default/arrowheadsmiley.png)
sorT?
Go to the top of the page
+Quote Post
Turson
post
Post #41





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


ORDER BY/GROUP BY
Go to the top of the page
+Quote Post
-gierczan-
post
Post #42





Goście







Co do leczenia klikamy:
Wylecz się >> Tak, ulecz mnie
Go to the top of the page
+Quote Post
kujol
post
Post #43





Grupa: Zarejestrowani
Postów: 324
Pomógł: 27
Dołączył: 21.07.2013

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


Zlicz wszystkich graczy i zrób numerki od 1 do tylu ilu jest graczy. Do numerków przypisuj posortowanych graczy. Jeśli gra jest oparta na plikach to musisz użyć jakiejś funkcji sortującej.
Go to the top of the page
+Quote Post
-gierczan-
post
Post #44





Goście







No wiem to chyba bedzie:
  1. $gracz['1']="kujol";
  2. sort($gracz);

Tak?
Go to the top of the page
+Quote Post

3 Stron V   1 2 3 >
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: 23.08.2025 - 21:28