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

pobranie zmiennych sesyjnych przy wywołaniu przez xhr

0 głosów
65 wizyt
pytanie zadane 3 dni temu w JavaScript przez Jacek Śmiel Użytkownik (510 p.)

Witajcie,

mój problem polega na tym, że javascript wykonuje żadanie xhr do pliku php, który wykonuje akcje. Wszystko w tej kwestii działa, ale mój plik wykonawczy php, który odbiera dane z javascripta xhr'em nie weryfikował uprawnień zalogowanego użytkownika, uprawnienia użytkownika przy zalogowaniu zapisuje do $_SESSION['rola'], chciałbym aby skrypt wykonawczy php wykonywał się jedynie gdy $_SESSION['rola'] == 'admin', tworząc to rozwiązanie zauważyłem, że skrypt wykonawczy php, który inicjowany jest przez xhr nie posiada sesji php ustanowionej przez zalogowanego użytkownika. 

    $sesjaDecode = json_decode($_SESSION, true);

    var_dump($sesjaDecode); //kod ten zwraca NULL json'em

Teraz proszę Was o podpowiedź, jak mogę rozwiązać mój problem? Czy powinienem wysyłać unikalny API key i API Secreet key, który posiadam w swojej aplikacji, na jego podstawie jestem w stanie sprawdzić czy user, który zlecił wykonanie akcji xhr ma do tego uprawnienie. Czy może powinienem wykonać to w inny sposób?

komentarz 3 dni temu przez Wiciorny Mędrzec (196,460 p.)
cieżko poradzić, bo  nie wiadomo jaka jest przyczyna braku wartości i nulla- zwracanego w zmiennej.
Przydało by się wiecej kodu ... i logiki tego jak to działa
1
komentarz 2 dni temu przez Jacek Śmiel Użytkownik (510 p.)
przeniesione 2 dni temu przez ScriptyChris
skrypt odbierający dane po uruchomieniu xhr:

https://pastebin.com/u21D3Vsc

 

Skrypt javascript wywołujący inicjację xhr:

https://pastebin.com/J3DqFMGW

 

(wstawiam kod tutaj, ponieważ mam błąd przy próbie wstawienia go do bloczków kodu), przepraszam za problem
komentarz 2 dni temu przez mordimer Mądrala (5,640 p.)
daj w 3 lini zaraz po polaczeniu

var_dump($_SESSION);die;

co dostajesz ?
komentarz 2 dni temu przez Jacek Śmiel Użytkownik (510 p.)

to pomogło,

dostaje odpowiedź od serwera ze wszystkimi zmiennymi sesyjnymi.

array(3) { ["nick"]=> string(5) "zihen" ["haslo"]=> string(32) "*********************" ["rolaUzytkownika"]=> string(5) "admin" }

Nie rozumiem, tylko czemu dodanie die; naprawiło sprawę, przecież niżej użyłem takiej logiki:

    $sesjaDecode = json_decode($_SESSION, true);

    var_dump($sesjaDecode);

 

komentarz 2 dni temu przez Jacek Śmiel Użytkownik (510 p.)

czemu mój zapis nie działa?

    $sesjaDecode = json_decode($_SESSION, true);

    var_dump($sesjaDecode);

 

komentarz 2 dni temu przez mordimer Mądrala (5,640 p.)
Zamien na json_encode

Swoja droga ta globalana zmienna jest juz tablica wiec to jest zbedne
komentarz 2 dni temu przez mordimer Mądrala (5,640 p.)
Ta funkcja ktorej uzyles przyjmuje jsona ale jako stringa ty wrzuciles do niej tablice zobacz w manualu

3 odpowiedzi

0 głosów
odpowiedź 2 dni temu przez mordimer Mądrala (5,640 p.)
Dales session_start () na poczatku tego pliku ?
komentarz 2 dni temu przez Jacek Śmiel Użytkownik (510 p.)
tak
0 głosów
odpowiedź 2 dni temu przez VBService VIP (143,170 p.)
edycja 2 dni temu przez VBService

Z kodu, który podałeś

skrypt odbierający dane po uruchomieniu xhr:
https://pastebin.com/u21D3Vsc 

Skrypt javascript wywołujący inicjację xhr:
https://pastebin.com/J3DqFMGW

może wynikać, że chodziło Tobie o

session_start();
require('../connect.php');
  
var_dump(json_decode($_POST, true));
var_dump($_SESSION);

...

linia 4 powyżej, ponieważ 

const jsonString = JSON.stringify(NowaNotyfikacja);
const xhr = new XMLHttpRequest();
 
xhr.open("POST", "../../php-scripts/dodaj-notyfikacje.php");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.send(jsonString);
0 głosów
odpowiedź 2 dni temu przez neo1020 Bywalec (2,290 p.)

to w pliku wykonawczym php odpal sesje i sprawdź if'em jakie uprawnienia ma uzytkownik i według tego zdecyduj co ma dalej zrobić program

jeżeli dobrze rozumiem co chcesz zrobić

<php 

session_start();

if($_SESSION[rola] != 'admin'){
      echo 'Nie możliwe jest wykonanie skryptu';
}else{
       =kod do wykonania=
}

 

Podobne pytania

0 głosów
1 odpowiedź 126 wizyt
pytanie zadane 21 maja 2018 w PHP przez szachovy Początkujący (270 p.)
+1 głos
2 odpowiedzi 266 wizyt
pytanie zadane 14 lutego 2018 w PHP przez hiper007 Stary wyjadacz (11,260 p.)
0 głosów
1 odpowiedź 169 wizyt
pytanie zadane 16 lipca 2017 w PHP przez sapero Gaduła (4,020 p.)

86,403 zapytań

135,161 odpowiedzi

300,251 komentarzy

57,163 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...