Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Usuwanie/dodawanie wybranego fragmentu w stringu
Bateria
post 30.12.2011, 14:57:37
Post #1





Grupa: Zarejestrowani
Postów: 129
Pomógł: 13
Dołączył: 23.11.2011

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


Witam!
Piszę właśnie system który służył by do zarządzania uprawnień użytkowników. Działać będzie on na następującej zasadzie:
Z mysql pobieram uprawnienia użytkownika do postaci stringu
  1. <?php
  2. $uprawnienia = 'dodaj, usun, modyfikuj, zmien';
  3. ?>

Funkcjom strpos sprawdzam, czy użytkownik posiada dane uprawnienie, jeżeli zwraca true wtedy otwiera się odpowiedni panel.

Pozostał mi tylko problem jak zrobić usuwanie i dodawanie uprawnień.
Poszukuję jakiejś funkcji która mogła by mi do stringu:
  1. <?php
  2. $uprawnienia = 'dodaj, usun, modyfikuj,zmien';
  3. ?>

Dokleić jeszcze np: uzytkownicy
I funkcji która może jeszcze usunąć ze stringu np: zmien
Z góry dziękuję za pomoc!


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
buliq
post 30.12.2011, 15:01:44
Post #2





Grupa: Zarejestrowani
Postów: 559
Pomógł: 93
Dołączył: 4.03.2008
Skąd: Olsztyn

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


explode i implode


--------------------
KTOŚ TU PACZY???

Kompedium wiedzy
Go to the top of the page
+Quote Post
Bateria
post 30.12.2011, 15:13:12
Post #3





Grupa: Zarejestrowani
Postów: 129
Pomógł: 13
Dołączył: 23.11.2011

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


Ale explode o ile usunie to robi mi ze stringu tablice.


--------------------
Go to the top of the page
+Quote Post
buliq
post 30.12.2011, 15:16:51
Post #4





Grupa: Zarejestrowani
Postów: 559
Pomógł: 93
Dołączył: 4.03.2008
Skąd: Olsztyn

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


Nie usunie. Dzielisz string na tablice, podział przez ", " następnie usuwasz/dodajesz element i ponownie scalasz przez implode ", "


--------------------
KTOŚ TU PACZY???

Kompedium wiedzy
Go to the top of the page
+Quote Post
modern-web
post 30.12.2011, 15:25:28
Post #5





Grupa: Zarejestrowani
Postów: 763
Pomógł: 117
Dołączył: 15.03.2010
Skąd: void

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


Na to masz tysiące sposobów, zaczynając od podmiany części stringu na inną, a kończąc na explode i implode. Równie dobrze możesz `dokleić` do stringu jakąś wartość - pod warunkiem, że jest to na początku/końcu ciągu za pomocą '.' ale to sprawdzi się tylko przy (jak sam wspomniałeś) dodawaniu uprawnień.


--------------------
Pomogłem? Kliknij `Pomógł`. To nic nie kosztuje, a mnie usatysfakcjonuje! ;)
Go to the top of the page
+Quote Post
nospor
post 30.12.2011, 15:28:16
Post #6





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




Skoro dopiero zaczynasz to lepiej zmień sposób przechowywania uprawnień. Żeby za dużo nie mieszać już w Twoim systemie to proponuje ci jedno pole tak jak masz teraz ale nie pole tekstowe a pole liczbowe, a uprawnienia to będą poprostu bity:
http://nospor.pl/opcje-dwuwartosciowe-przechowywanie.html


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Bateria
post 30.12.2011, 15:37:10
Post #7





Grupa: Zarejestrowani
Postów: 129
Pomógł: 13
Dołączył: 23.11.2011

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


Ale mimo wszystko zależy mi żeby rozgryźć już to czego się podjąłem, niestety tak nie działa:
  1. <?php
  2. $uprawnienia = 'dodaj,usun,zmien,edytuj,podmien';
  3. $pokaz = explode(',',$uprawnienia);
  4.  
  5. if(in_array('zmien', $pokaz)){
  6. unset($pokaz['zmien']);
  7. }
  8.  
  9. $pokaz = implode($uprawnienia);
  10. echo($pokaz);
  11. ?>


--------------------
Go to the top of the page
+Quote Post
nospor
post 30.12.2011, 15:40:45
Post #8





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




implode() wymaga dwóch argumentów. Wypadałoby zaglądać do manuala a nie strzelać.

unset($pokaz['zmien']);
to też nie zadziała bo po explode indekasami są liczby a nie wartosci


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Bateria
post 30.12.2011, 15:41:36
Post #9





Grupa: Zarejestrowani
Postów: 129
Pomógł: 13
Dołączył: 23.11.2011

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


Już lepiej, ale parametr 'zmien' nadal pozostał:
  1. <?php
  2. $uprawnienia = 'dodaj,usun,zmien,edytuj,podmien';
  3. $pokaz = explode(',',$uprawnienia);
  4.  
  5. if(in_array('zmien', $pokaz)){
  6. unset($pokaz['zmien']);
  7. }
  8.  
  9. $pokaz = implode(',',$pokaz);
  10. echo($pokaz);
  11. ?>


--------------------
Go to the top of the page
+Quote Post
nospor
post 30.12.2011, 15:42:24
Post #10





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




Cytat
ale parametr 'zmien' nadal pozostał:
w poprzednim poście napisałem dla czego smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Bateria
post 30.12.2011, 15:42:34
Post #11





Grupa: Zarejestrowani
Postów: 129
Pomógł: 13
Dołączył: 23.11.2011

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


A da się jakąś funkcją sprawdzić jaka liczba odpowiada wartości 'zmien'?


--------------------
Go to the top of the page
+Quote Post
nospor
post 30.12.2011, 15:43:38
Post #12





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




zagladaj do manuala. FUnkcja której szukasz jest obok in_array() w see also. Po to został stworzony.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Bateria
post 30.12.2011, 15:50:07
Post #13





Grupa: Zarejestrowani
Postów: 129
Pomógł: 13
Dołączył: 23.11.2011

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


Niby działa, ale wolę się upewnić czy wszystko ok:
  1. <?php
  2. $uprawnienia = 'dodaj,usun,zmien,edytuj,podmien';
  3. $pokaz = explode(',',$uprawnienia);
  4.  
  5. $lp = array_search('zmien',$pokaz);
  6.  
  7. if(in_array('zmien', $pokaz)){
  8. unset($pokaz[$lp]);
  9. }
  10.  
  11. $pokaz = implode(',',$pokaz);
  12. echo($pokaz);
  13. ?>


--------------------
Go to the top of the page
+Quote Post
nospor
post 30.12.2011, 15:51:26
Post #14





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




Pomijająć in_array, które jest niepotrzebne bo robisz już array_search, to jest ok.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 08:25