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

Przerzucanie wyniku JS na serwer

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
739 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 Mentor (351,140 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

–1 głos
0 odpowiedzi 296 wizyt
0 głosów
1 odpowiedź 647 wizyt
pytanie zadane 4 lipca 2016 w Sieci komputerowe, internet przez niezalogowany

93,188 zapytań

142,204 odpowiedzi

322,027 komentarzy

62,515 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 2581p. - dia-Chann
  2. 2537p. - Łukasz Piwowar
  3. 2528p. - Łukasz Eckert
  4. 2514p. - CC PL
  5. 2476p. - Tomasz Bielak
  6. 2445p. - Łukasz Siedlecki
  7. 2443p. - rucin93
  8. 2373p. - Marcin Putra
  9. 2367p. - Adrian Wieprzkowicz
  10. 2310p. - Michal Drewniak
  11. 2210p. - Mikbac
  12. 2156p. - Anonim 3619784
  13. 1733p. - rafalszastok
  14. 1701p. - Michał Telesz
  15. 1628p. - Dominik Łempicki (kapitan)
Szczegóły i pełne wyniki

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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...