• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Przerzucanie wyniku JS na serwer

VPS Starter Arubacloud
0 głosów
413 wizyt
pytanie zadane 15 marca 2020 w JavaScript przez Layoutowiec Mądrala (5,470 p.)
zmienione kategorie 15 marca 2020 przez Arkadiusz Waluk
Witam!

Mam pewien problem, a mianowicie chciałbym zrobić grę przeglądarkową w JS. Gra polegała by na zdobywaniu punktów np. po dotknięciu jakiegoś przedmiotu. I po zdobyciu np. 100 pkt w tej grze chciałbym żeby zostało przypisane 10 pkt  do konta użytkownika, ale już nie w grze tylko jakby na jego profilu.

Czy coś takiego jest możliwe?

Dzięki za poświęcony czas, miłego dnia!

2 odpowiedzi

+1 głos
odpowiedź 15 marca 2020 przez Michałełe Nałogowiec (25,600 p.)
Witam

Wysyłasz te przykładowe 10 pkt. na serwer (AJAX) i z serwera łączysz się z bazą danych, gdzie aktualizujesz wartość punktów dla danego profilu
+1 głos
odpowiedź 15 marca 2020 przez edwardkraweznik Dyskutant (9,930 p.)

albo w czystym js XMLHttpRequest, przykład:

function findaddr () {
var xmlhttp = new XMLHttpRequest();
	xmlhttp.open("POST","php/ppp.php", true);
        var xmlDoc;
        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            xmlDoc = xmlhttp.responseText;
            console.log(xmlDoc);
            }
        };
        xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
        var xml = "uname=" + document.getElementById('fname').value;
        xmlhttp.send(xml);
}

ppp/ppp.php <--- jakieś operacje na serwerze

komentarz 15 marca 2020 przez adrian17 Ekspert (344,100 p.)
Zamiast onreadystatechange i readyState można użyć prostszego onload ;)

No i jak AJAX, to już można się przestawić na wysyłanie JSONa.
komentarz 15 marca 2020 przez Layoutowiec Mądrala (5,470 p.)
Okej, mam jescze pytanie, no bo js jest jawny i każdy użytkownik mógłby sobie zmienić zdobyta ilość punktów czy jest możliwość np. Zablokowania opcji zmienienia lub że wtedy nie doda tych pkt
komentarz 15 marca 2020 przez edwardkraweznik Dyskutant (9,930 p.)
edycja 15 marca 2020 przez edwardkraweznik
wydaje mi się, że jedyna opcja to jakaś weryfikacja po stronie php...

po stronie jsa nie ma takiej możliwości bo post zawsze można wysłać jaki się chce

PS: nawe na zewnętrznym serwerze można napisać soie cokolwiek w czymkolwiek i bedzie wysyłał zapytanie do pliku php

Te punkty musiałyby być dodawane po stronie php a nie jsa wtedy jest to w miarę bezpieczne... ta gra musiała by wysyłać post że gracz zrobił to i to i php dodaje punkty...
komentarz 15 marca 2020 przez Layoutowiec Mądrala (5,470 p.)
edycja 15 marca 2020 przez Layoutowiec
Czyli nie raczej nie będzie takiej możliwości? Plus dodam że przy serwerze raczej będę korzystał z node.js

Edit: A dałoby się może zrobić tak aby od razu po zdobyciu pkt w grze automatycznie były one przypisywane do serwera i potem po osiągnięciu 100 przerzucane na konto użytkownika?
komentarz 15 marca 2020 przez edwardkraweznik Dyskutant (9,930 p.)
nie wiem co to jest nodejs, wiem natomiast, że w czystym javascript + php jest to do ogarnięcia.. kiedyś robiłem jakąś prostą gierkę i używałem do tego celu canvas.

https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API

Nie dało się kombinować...
komentarz 15 marca 2020 przez Layoutowiec Mądrala (5,470 p.)
Okej a masz może jeszcze kod do tej gry lub jakiś przykład

Ps: używałes do tej gry php plus canvas z js dobrze rozumiem?
komentarz 15 marca 2020 przez edwardkraweznik Dyskutant (9,930 p.)
nie mam już, to były takie testowe badziewia (nic w co dałoby się grać)

w canvas bardzo prosto się to robi (poradzisz sobie na 100%)

w php także nie obiektowo jakoś to robiłem
komentarz 15 marca 2020 przez Layoutowiec Mądrala (5,470 p.)
Ale jakby przy użyciu canvas tego wyniku nie da się zmienić?
komentarz 15 marca 2020 przez edwardkraweznik Dyskutant (9,930 p.)
powiem ci tak: nie jestem wybitnym znawcą javascriptu i nie znam w zasadzie żadnych bibliotek (wszytko staram się robić w czystym jsie). Nie chce mi się tego nawet uczyć bo robię w tym tylko jak mi cos potrzeba albo jak jestem ciekawy jak coś działą...

i wtedy sprawdzałem jak działa canvas

zasada jest taka przy programowaniu sieciowym czegokolwiek (wszystko po stronie serwera, chodzi o jakieś operacje, weryfikacje, itp.. są w miarę bezpieczne) po stronie klienta czyli jsa już można kombinować

czyli jak masz dodać 2+2 to lepiej jest to robić w php i wysłać do przeglądarki (js pobiera wynik zapytaniem)

jak dodasz 2+2 po stronie przeglądarki i wysyłasz go do php to wiadomo, że taki wynik można fałszować.

zapytanie można wysyłać do php dowolne (jakie się chce)

cała filozofia.

tyczy się to nie tylko javascriptu ale wszystkiego co ma być liczone po stronie klienta

EDIT: każda gra czy aplikacja jest inna (nikt nie wie jak działa twoja)
komentarz 15 marca 2020 przez Layoutowiec Mądrala (5,470 p.)
Dobra. Czyli całą grę robię po stronie klienta, ale system punktów po stronie serwera i wszystko będzie okej
komentarz 15 marca 2020 przez edwardkraweznik Dyskutant (9,930 p.)
no tak:

zawsze też miej z tyłu głowy te zapytania, które można sobie wysłać jakie się chce...
komentarz 15 marca 2020 przez Layoutowiec Mądrala (5,470 p.)

zawsze też miej z tyłu głowy te zapytania, które można sobie wysłać jakie się chce...

W sensie po stronie klienta 

komentarz 15 marca 2020 przez edwardkraweznik Dyskutant (9,930 p.)
uważaj co robisz po stronie klienta, uważaj także na to czy dane wysyłane do php nie mogą czegoś namieszać. Przykładowo:

wysyłasz do php dane ze ścieżką do pliku, php otwiera ten plik i odsyła co w nim się znajduje :)

wtedy można sobie napisać jakiś programik, który przegląda pliki po stronie serwera :)

i itp...

taki bugi z nieuwagi można sobie potworzyć...
komentarz 15 marca 2020 przez Layoutowiec Mądrala (5,470 p.)
Dobra będę uważał na wszelkie błędy, wszystko jeszcze potem posprawdzam.

Zrobię ta grę za pomocą js a dodawanie wszystkich pkt będzie z serwera itd.
komentarz 15 marca 2020 przez edwardkraweznik Dyskutant (9,930 p.)

yes

powodzenia

komentarz 15 marca 2020 przez Layoutowiec Mądrala (5,470 p.)
Dzięki

Podobne pytania

0 głosów
1 odpowiedź 507 wizyt
pytanie zadane 4 lipca 2016 w Sieci komputerowe, internet przez niezalogowany
0 głosów
0 odpowiedzi 120 wizyt
pytanie zadane 31 lipca 2020 w JavaScript przez poldeeek Mądrala (5,980 p.)

92,453 zapytań

141,262 odpowiedzi

319,087 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...