Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript][PHP]przechowywanie danych o użytkowniku js?
omxd
post
Post #1





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 18.05.2010

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


Witam,
po zalogowaniu użytkownika chciałbym mieć w js pod ręką jakieś informacje o nim.Do tej pory php pobierał te informacje następnie tworzyłem <input type="hidden"/> i tam sobie je magazynowałem (id,ulubione,odwiedzane itd. - bez haseł rzecz jasna).W trakcie pracy użytkownika był one tam na bieżąco aktualizowane.
Jest to bezpieczne czy lepiej za każdym razem wywoływać $.ajax i pobierać te informacje jeszcze raz?

Wpadłem na jeszcze jeden pomysł ,żeby utworzyć globalna tablice:
  1. var $userArray[]= 'pobieram informacje poprzez $.ajax';
  2. $(function() {
  3. ...

Jednak tutaj niestety nie umiem przesłać id użytkownika do argumentu $.ajax( kod wykonywany jest nim strona się wczyta).
Gdy robię to "$(function() {" funkcje nie widzą tej tablicy.

Proszę o jakaś radę.

Ten post edytował omxd 17.09.2014, 09:47:45
Go to the top of the page
+Quote Post
Turson
post
Post #2





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

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


Cytat
Do tej pory php pobierał te informacje następnie tworzyłem <input type="hidden"/> i tam sobie je magazynowałem (id,ulubione,odwiedzane itd. - bez haseł rzecz jasna).

A o sesji to słyszał?
To rozwiąże wszystkie twoje problemy
Go to the top of the page
+Quote Post
by_ikar
post
Post #3





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


A możesz coś konkretniej przybliżyć, o jakiej sesji piszesz @Turson ?
Go to the top of the page
+Quote Post
Daimos
post
Post #4





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


http://php.net/manual/pl/ref.session.php

Ten post edytował Daimos 17.09.2014, 18:17:56
Go to the top of the page
+Quote Post
by_ikar
post
Post #5





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


No spoko, a teraz przeczytaj chociażby tytuł tego tematu i domyśl się jak bardzo to pomaga autorowi tematu.

Co do tematu, najłatwiej ci będzie, jak dane sobie gdzieś w kodzie strony umieścisz jako json. Jeżeli chcesz to zrobić za pomocą ajaxa, to będziesz tworzyć dodatkowy request, który jest ci zbędny, bo i tak, jeżeli ktoś kto te dane będzie chciał podejrzeć, to i tak je podejrzy. Więc po zalogowaniu gdzieś w body mógłbyś wykonać to tak:

  1. <script type="text/javascript">
  2. var userData = <?php echo json_encode($user) ?>;
  3. </script>


Zakładając że twoja tablica wyglądała by mniej więcej tak:

  1. <?php
  2.  
  3. $user = array(
  4. 'id' => 123,
  5. 'name' => 'admin',
  6. 'email' => 'admin@example.com',
  7. 'avatar' => 'someimage.jpg'
  8. );


to twój kod javascript wyglądał by tak:

  1. <script type="text/javascript">
  2. var userData = {id: 123, name: "admin", email: "admin@example.com", avatar: "someimage.jpg"};


Użyć mógłbyś gdzieś w kodzie tego tak:

  1. <script type="text/javascript">
  2. console.log(userData.id, userData.name, userData.email, userData.avatar);


Ten post edytował by_ikar 17.09.2014, 20:48:49
Go to the top of the page
+Quote Post
omxd
post
Post #6





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 18.05.2010

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


by_ikar - o coś takiego właśnie mi chodziło obawiałem się tylko czy jest to bezpieczne,ale w sumie to te dane będą dostępne tylko dla poszczególnego użytkownika który wcześniej się zalogował.
dzięki wszystkim za odpowiedzi
pozdrawiam
Go to the top of the page
+Quote Post
Turson
post
Post #7





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

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


@by_ikar
Skoro autor tematu informacje o użytkowniku takie jak id przechowuje w ukrytych inputach, to chyba sesja jest lekarstwem na taki wynalazek
Go to the top of the page
+Quote Post
in5ane
post
Post #8





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

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


Sesje i tak mu się przydadzą. Przy każdym reloadzie będzie pobierał z dane z bazy? Po co? Wystarczy, że istnieje sesja i będzie miał w niej zapisane dane.
Go to the top of the page
+Quote Post
phpion
post
Post #9





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(omxd @ 18.09.2014, 08:13:25 ) *
by_ikar - o coś takiego właśnie mi chodziło obawiałem się tylko czy jest to bezpieczne,ale w sumie to te dane będą dostępne tylko dla poszczególnego użytkownika który wcześniej się zalogował.

Nie, nie jest to bezpieczne. Te dane wykorzystuj tylko w tych miejscach, które nie są newralgiczne, nie możesz na nich polegać w 100%. Możesz ich użyć np. do wyświetlania informacji, ale gdy już będziesz potrzebował wykorzystać je np. do zapisu danych do bazy pobierz je z sesji (i tak zapisujesz w PHP).
Go to the top of the page
+Quote Post
by_ikar
post
Post #10





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


Cytat(Turson @ 18.09.2014, 08:41:13 ) *
@by_ikar
Skoro autor tematu informacje o użytkowniku takie jak id przechowuje w ukrytych inputach, to chyba sesja jest lekarstwem na taki wynalazek

Cytat(in5ane @ 18.09.2014, 08:49:08 ) *
Sesje i tak mu się przydadzą. Przy każdym reloadzie będzie pobierał z dane z bazy? Po co? Wystarczy, że istnieje sesja i będzie miał w niej zapisane dane.


Spoko, tyle że może autor już używa sesji? Pytał się o rozwiązanie po stronie JS. a wy mu daliście rozwiązanie po stronie php, stąd moje pytanie, w jaki sposób ma to w ogóle pomóc autorowi..

@omxd - taki sposób trzymania danych jest niebezpieczny, jeżeli wyświetlasz nieodpowiednie dane (hasło, tokeny, klucze, cokolwiek związanego z bezpieczeństwem). Dane takie jak avatar, nick etc i tak wyświetlasz w jakiś sposób użytkownikowi, więc to jest bez znaczenia czy trzymasz to jawnie w js, czy pobierasz ajaxem, bo i tak te dane można podejrzeć - z drugiej strony i tak te dane raczej się do niczego potencjalnemu włamywaczowi nie przydadzą. Ewentualnie tylko mogą go naprowadzić na nazwy kolumn w jakiejś tabeli, jeżeli takich sam nazw użyjesz jako klucze w jsonie.

Domyślam się że chcesz w ten sposób jakieś informacje typu ustawienia (np zmiana wyglądu) trzymać, więc właśnie ten sposób będzie idealny.
Go to the top of the page
+Quote Post
omxd
post
Post #11





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 18.05.2010

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


dziękuję wszystkim za odpowiedzi.
Dane które będę tam przechowywał to id,nick,avatar itd. ,ale jest też string który może być modyfikowany i uaktualniany w bazie danych stąd moje obawy. Potrzebuję tych danych do manipulowania ulubionymi.
Go to the top of the page
+Quote Post

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: 25.08.2025 - 06:45