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
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
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.

Tylko ze male dziecko, z racji faktu ze nie ma wybory, to musi tak robic. Ty zdaje sie umiesz czytac i jakies podstawy wpierw bys mogl ogarnac sam, nie sadzisz?

Skoro to $order gdzies tam przeciez masz, to nie mozesz go przekazac do funkcji delete() jako parametr? Ewentualnie jako wlasciwosc klasy na podobnej zasadzie co $this->order_id
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:38