Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MSSQL][PHP]Niedziałający warunek sprawdzania uprawnień użytkownika
Adym
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 16.12.2020

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


Cześć,

Mam problem z warunkiem spawdzającym uprawnienia użytkownika do wykonania funkcji usunięcia zamówienia, który ma realizować poniższy kod:

  1. public function delete(){
  2. if($this->order_id) {
  3. if($_SESSION['user_type'] == 1 || $_SESSION['userid'] == $order['user_id']) {
  4. $stmt_A = $this->conn->prepare("
  5. DELETE FROM ".$this->orderTable."
  6. WHERE order_id = ?");
  7.  
  8. $order_id = htmlspecialchars(strip_tags($this->order_id));
  9.  
  10. $stmt_A->bind_param("i", $order_id);
  11.  
  12. if ($stmt_A->execute()) {
  13. $stmt_B = $this->conn->prepare("
  14. DELETE FROM ".$this->orderProductsTable."
  15. WHERE order_id = ?");
  16.  
  17. $stmt_B->bind_param("i", $order_id);
  18.  
  19. if ($stmt_B->execute()) {
  20. $stmt_C = $this->conn->prepare("
  21. DELETE FROM ".$this->orderRelationsTable."
  22. WHERE relation_order_id = ?");
  23.  
  24. $stmt_C->bind_param("i", $order_id);
  25. }
  26. if ($stmt_C->execute()) {
  27. return true;
  28. }
  29. }
  30. }
  31. }
  32. else {return false;}
  33. }

Na początku sprawdzam czy funkcja została "nakarmiona" numerem id zamówienia (order_id) a później czy zalogowany użytkownik jest adminem ($_SESSION['user_type'] == 1) albo czy jest autorem kasowanego zamówienia ($_SESSION['userid'] == $order['user_id']). Jeżeli któryś z tych warunków jest prawdziwy funkcja powinna przejść dalej. W moim przypadku mimo tego warunku użytkownik albo kasuje wszystko albo admin nie może kasować. Nie wiem co jest przyczyną takiego działania. Czy ktoś może mi wytłumaczyć co robię źle?

Pozdrawiam

Ten post edytował Adym 8.02.2021, 10:25:58
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Adym
post
Post #2





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 16.12.2020

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


Tak jak małe dziecko uczy sie mówić naśladując zasłyszane słowa od rodziców tak ja uczę się php wykorzystując fragmenty kodu bardziej doświadczonych kolegów.

Rzeczywiście nie mam z czym porównywać drugiego warunku. Pytanie czy lepiej zrobić teraz zapytanie do bazy i przez SELECTa pobrać user_id autora danego zapotrzebowania (mając order_id) i porównać czy jest on taki sam jak zalogowanego użytkownika czy też jest jakieś inne prostsze rozwiązanie?
Go to the top of the page
+Quote Post

Posty w temacie


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: 11.10.2025 - 10:40