![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 150 Pomógł: 6 Dołączył: 3.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Załóżmy, że mam taki kod:
Ale ja chciałbym bardziej uelastycznić ten warunek głownie mi chodzi o to:
chciałbym zrobić taki config który mam wypisany w jednym pliku, i z poziomu strony mógłbym go zmieniać, np z 1 na 2, albo jest mniejszy od 3 itp. Myślałem o tablicach:
No i właśnie i tutaj problem, bo jak zamienić 'wartosc' => ">=" tak aby php wiedział, że to ma być >= 1? Zmienie zdanie i w configu przedstawiam na <=, a kod php sam już to rozpoznaje. Ogólnie mówiąc "warunki" konfiguracji chce zebrać w jednym pliku (lub w bazie), i mogę zmieniać to na jednej stronie przez formularz, a nie edytować każdy plik (jeśli to by było w kilku plikach). Mam nadzieje, że jakoś to jasno wytłumaczyłem. Macie na to jakiś pomysł? Dzięki za odpowiedź (IMG:style_emoticons/default/smile.gif) Ten post edytował Van Pytel 16.12.2011, 00:30:53 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Na początek powinny wystarczyć pliki .ini zainteresuj się nimi
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 486 Pomógł: 101 Dołączył: 27.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
a może eval?
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 085 Pomógł: 231 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nie, nie, nie.
Eval jest zły (http://php.webtutor.pl/pl/2011/04/19/zastepcy-eval-w-php-czyli-jak-szybciej-zrobic-sobie-cos-zlego/) i nie powinno się go używać tam, gdzie możliwe są alternatywy. .ini czy zwykłe pliki .php są o wiele lepszym rozwiązaniem. @Van Pytel Natomiast dodatkowa uwaga do kodu: Niepoprawnie:
Poprawnie:
chyba że zdefiniowałeś sobie stałą pkt oczywiście (IMG:style_emoticons/default/smile.gif) Ten post edytował Shili 16.12.2011, 00:05:20 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 150 Pomógł: 6 Dołączył: 3.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
@Shili, fakt błąd, to tylko przkład, ale takich błędów nie robie (IMG:style_emoticons/default/smile.gif)
Plik .ini lub .php. No właśnie chciałbym w php, bo bardziej bezpieczniej niż w ini (IMG:style_emoticons/default/smile.gif) Ale jak zrobić takowy kod? Bo nie mam pomysłu, jakbym wiedział jak to zaczepić może być coś wymyślił. eval na dzień dobry odpada. Ten post edytował Van Pytel 16.12.2011, 00:33:41 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 085 Pomógł: 231 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Zazwyczaj pliki .ini przez serwery są traktowane w taki sam sposób jak .php, więc powinny być równie bezpieczne. A jak nazwa wskazuje są specjalnymi plikami konfiguracyjnymi.
Możesz zawsze sprawdzić na swoim serwerze, czy wyświetli się ich treść (IMG:style_emoticons/default/smile.gif) Zapoznaj się z tematem - jest miły i przyjemny, w dodatku właśnie do tego, czego szukasz. Natomiast na .php będą to zapewne zbiory stałych. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 2 Dołączył: 29.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 150 Pomógł: 6 Dołączył: 3.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Ok czytałem, ale to nie zmienia mojej sytuacji (IMG:style_emoticons/default/sad.gif)
Szukałem w google i są przykłady, ale połączenia z bazą lub ftp. Po ini jest przekształcane do tablicy, ale jak wykonać wartość z tablicy aby php potraktował dosłownie. Wiem jak to wykonać na stringach, ale nie wiem jak zastosować ">=". |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
parse_ini_file gotowa funkcja do parsowania
Co do zabezpieczenia, wrzuć nad public_html (IMG:style_emoticons/default/wink.gif) ew. htaccess |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Utwórz sobie funkcję sprawdzającą wybraną (nie)równość dla dwóch wartości:
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 150 Pomógł: 6 Dołączył: 3.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
@Fifi209 samo parsowanie mi nie daje.
@Crozin dzięki fajny sposób, też o tym myślałem, ale miałem nadzieje, że istnieje jakaś funkcja lub sztuczka która pozwala to zrobić bez własnych funkcji. A macie może jakiś pomysł, jak zrobić kilka warunków?
Chodzi też o to, że tak naprawdę w kodzie nie wiadomo jakie wymagania będą. Te wymagania będą ustalone w configu. Bo raz może to pojawić się (wiek), a albo tylko (xyz i pkt) itd. Dzięki za odpowiedź. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli warunki logiczne są stałe wystarczy całość zapisać jako:
Jeżeli zaś całość ma być w pełni konfigurowalna z poziomu jakiegoś panelu administracyjnego (tworzenie całej konstrukcji IF-a) rozważyłbym tu stworzenie jakiejś fabryki, gdzie na podstawie danych z bazy danych dodawałbyś kolejne elementy konstrukcji IF-a. |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 150 Pomógł: 6 Dołączył: 3.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
No właśnie się zastanawiam czy to zrobić każdą funkcję dla danego dodatku strony (np, rejestracji, wyglądu strony itp) - ale zbyt dużo funkcji. Dlatego ten pomysł odpada.
Wszystko znowu się rozchodzi o te warunki logiczne (&&) - następny warunek. Bo myślałem też tak jak Ty piszesz, że funkcja + warunki. Albo opcja trzecia, zrobić jedną funkcję + if, dane wejściowe do funkcji podaje np całą tablice z configiem. Ale tu mam problem z warunkiem AND, bo nie ma problemu z OR bo jeśli if natrafi na true to zwraca wartość i kończy funkcję. Ale co jeśli muszą być spełnione dwa warunki. Co jeśli będę miał miał AND X2 i OR jednocześnie. I tutaj nie mam na to pomysłu. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 19:45 |