Często zadawane pytania¶
To FAQ podsumowuje pytania powtarzające się w otwartych i zamkniętych zgłoszeniach pomocy dotyczących MRBS. Odpowiedzi zweryfikowano dla MRBS 1.12.2; starego obejścia nie uwzględniono tylko dlatego, że kiedyś pojawiło się w jednym zgłoszeniu.
Jak wybrano to FAQ¶
Przeglądem objęto zgłoszenia opatrzone co najmniej jedną z następujących etykiet: Help, Help from scratch, LDAP help need, Problems with room's capacity, support, spanish help, support request, help wanted, i custom view help.
26 lipca 2026 r. sama etykieta support request obejmowała 3076 zgłoszeń: 1590 otwartych i 1486 zamkniętych. Wiele z nich to zaimportowane zgłoszenia historyczne, jednorazowe dostosowania, prośby o nowe funkcje albo pytania bez potwierdzonej odpowiedzi. Poniżej zamieszczono tylko powtarzające się pytania, na które odpowiedź pozostaje przydatna w wersji 1.12.2. Łącza do zgłoszeń wskazują źródło informacji, lecz nie zastępują bieżącej dokumentacji konfiguracji.
Instalacja i diagnostyka¶
Dlaczego widzę pustą stronę lub HTTP 500?¶
Najpierw przeczytaj dzienniki błędów serwera WWW i PHP. Pusta strona jest jedynie widocznym objawem; przydatny błąd zwykle znajduje się w dzienniku. Następnie sprawdź:
- obsługiwana wersja PHP i wymagane rozszerzenia;
config.inc.phpzphp -l config.inc.php;- łączność z bazą danych i pasujący sterownik PDO;
- uprawnienia do plików i aktywna konfiguracja PHP; i
- czy nieudane żądanie dotrze do zamierzonej instalacji MRBS.
Nie włączaj publicznego wyświetlania błędów PHP w systemie produkcyjnym i nie wklejaj poświadczeń w zgłoszeniu. Zobacz Rozwiązywanie problemów. Oryginalny sprawa wsparcia nr 1007 nie zawierał potwierdzonej poprawki specyficznej dla produktu, dlatego ta odpowiedź zaczyna się od dowodów z lokalnych dzienników.
Dlaczego logowanie do bazy danych nie udaje się na cPanel lub hostingu współdzielonym?¶
Użyj dokładnej bazy danych i nazwy użytkownika utworzonej przez panel sterowania hostingu. cPanel często poprzedza oba nazwami konta hostingowego. Sprawdź także, czy użytkownik ma uprawnienia do tej bazy danych. SQLSTATE[28000] lub „Odmowa dostępu użytkownikowi” to błąd uwierzytelnienia bazy danych lub przyznania, a nie błąd tabeli MRBS.
Zachowaj zgodność $db_database, $db_login i $db_password z wartościami w panelu sterowania. Utwórz schemat dopiero po pomyślnym nawiązaniu połączenia. Zobacz zgłoszenie #3801 i Instalacja.
Dlaczego zmiana konfiguracji nie przynosi efektu?¶
Sprawdź, czy edytowałeś plik config.inc.php załadowany przez to wdrożenie i witrynę. Wartości przypisane później zastępują wcześniejsze. Ustawienia zapisane dla istniejących obszarów znajdują się w bazie danych; zmiana areadefaults.inc.php zmienia wartości domyślne tylko dla nowych obszarów. W trybie wielu lokalizacji potwierdź wybraną witrynę i jej konfigurację. Na koniec wyczyść lub uruchom ponownie pamięć podręczną opcode PHP, jeśli ma to zastosowanie.
Zobacz config.inc.php szczegółowo i Rozwiązywanie problemów.
Logowanie i LDAP¶
Jak mogę wymagać od użytkowników zalogowania się, zanim zobaczą kalendarz?¶
Ustawić:
Przetestuj widok bez logowania w prywatnym oknie przeglądarki. To ustawienie blokuje dostęp do kalendarza publicznego; nie wybiera ani nie konfiguruje metody uwierzytelniania. Zobacz zgłoszenie #3979 i Użytkownicy i uprawnienia.
Dlaczego MRBS mówi, że brakuje rozszerzenia PHP LDAP?¶
Zainstaluj lub włącz rozszerzenie LDAP w środowisku PHP używanym przez serwer WWW, a następnie uruchom ponownie odpowiednią usługę. PHP w wierszu poleceń i PHP serwera WWW mogą wczytywać różne pliki php.ini, dlatego sprawdź środowisko WWW i nie polegaj wyłącznie na php -m. Nazwa pakietu i polecenie restartu zależą od systemu operacyjnego oraz sposobu instalacji PHP.
Zobacz zgłoszenie #1022 i Uwierzytelnianie LDAP.
Jak znaleźć poprawną bazową nazwę DN i nazwę DN użytkownika LDAP?¶
Nie wnioskuj o drzewie katalogów na podstawie nazwy organizacji. Zapytaj o to za pomocą klienta LDAP, takiego jak ldapsearch, używając tego samego serwera, trybu TLS, podstawowej nazwy wyróżniającej, tożsamości wyszukiwania i atrybutu nazwy użytkownika, którego będzie używać MRBS. Active Directory powszechnie używa sAMAccountName; OpenLDAP powszechnie używa uid, ale schemat katalogu jest miarodajny.
Testuj tożsamość wyszukiwania oddzielnie od powiązania użytkownika końcowego i nigdy nie publikuj haseł powiązań. Główną przyczyną zgłoszenie #1083 była niewłaściwa nazwa wyróżniająca.
Jak można ograniczyć dostęp LDAP do grupy?¶
Użyj $ldap_filter, aby zdecydować, do którego katalogu użytkownicy mogą uzyskać dostęp MRBS. W przypadku układu Active Directory, w którym członkostwo jest przechowywane w obiekcie użytkownika, filtr może odpowiadać wartości memberof. W przypadku układu w stylu OpenLDAP, w którym członkostwo jest przechowywane w obiektach grupowych, skonfiguruj $ldap_filter_base_dn, $ldap_filter_user_attr i odpowiednie $ldap_filter.
Użyj dokładnych nazw wyróżniających i atrybutów z katalogu, przetestuj dozwolone i odrzucone konta oraz potwierdź zachowanie zagnieżdżonych grup. Te filtry dostępu są odrębne od $ldap_admin_group_dn, który identyfikuje administratorów MRBS. Zobacz zgłoszenie #2033 i Uwierzytelnianie LDAP.
Logowanie LDAP działa — dlaczego użytkownik nie jest administratorem MRBS?¶
Gdy ustawiono $ldap_admin_group_dn, MRBS używa tej grupy zamiast $auth['admin']. Potwierdzać:
- pełna nazwa DN grupy;
$ldap_group_member_attrib—memberofdomyślnie;- że tożsamość wyszukiwania LDAP może odczytać atrybuty członkostwa użytkownika; i
- czy katalog zwraca członkostwo bezpośrednie czy zagnieżdżone.
Tymczasowo włącz diagnostykę LDAP tylko w chronionym środowisku testowym, a następnie usuń ją. W zgłoszenie #3943 tożsamość wyszukiwania nie mogła początkowo odczytać wymaganych informacji o grupie.
Dlaczego LDAP może zakończyć się niepowodzeniem po aktualizacji MRBS, chociaż wiązanie hasłem działa?¶
W bieżącym numerze MRBS może być konieczne wyszukanie nazwy wyróżniającej użytkownika i atrybutów, takich jak wyświetlana nazwa lub adres e-mail. Jeśli wyszukiwanie anonimowe jest niedostępne, skonfiguruj:
$ldap_dn_search_attrib = 'sAMAccountName'; // use the directory's real attribute
$ldap_dn_search_dn = 'search-account@example.org';
$ldap_dn_search_password = 'read-from-a-protected-secret';
Nadaj tożsamości wyszukiwania tylko potrzebne uprawnienia do odczytu. Trzymaj hasło poza katalogiem głównym dokumentu i dołącz je z chronionego pliku konfiguracyjnego. Zobacz zgłoszenie #3895.
Czy MRBS można przeszukać więcej niż jeden katalog LDAP?¶
Tak. Wiele ustawień LDAP, w tym $ldap_host, $ldap_port, $ldap_base_dn i atrybuty wyszukiwania, może być tablicami. Jeśli jeden parametr obsługujący tablicę LDAP jest tablicą, każdy parametr obsługujący tablicę musi mieć tę samą liczbę elementów, po jednym na katalog.
Przetestuj logowanie, wyszukiwanie atrybutów, filtry dostępu i mapowanie administratora dla każdego katalogu. Zobacz zgłoszenie #3981 i sekcję LDAP w systemdefaults.inc.php.
Rezerwacje, pokoje i pozwolenia¶
Dlaczego niestandardowe pole rezerwacji działa w przypadku jednej rezerwacji, ale nie w przypadku serii?¶
Każda niestandardowa kolumna rezerwacji musi istnieć zarówno w tabelach entry, jak i repeat, mając tę samą nazwę, typ, długość, dopuszczalność wartości null i wartość domyślną. Traktuj obie kolumny jako jedną zmianę schematu.
Zobacz zgłoszenie #3986 i Pola niestandardowe.
Czy pojemność sali uniemożliwia rezerwację ze zbyt dużą liczbą uczestników?¶
Nie. Wartość pokoju capacity to metadane pokoju wyświetlane przez MRBS; nie jest ona automatycznie porównywana z liczbą uczestników rezerwacji. Jeśli witryna musi egzekwować tę regułę, dodaj identyczne pole niestandardowe dotyczące liczby uczestników do entry i repeat, a następnie zaimplementuj i utrzymuj weryfikację po stronie serwera. Sama weryfikacja po stronie klienta jest niewystarczająca.
Jeśli rejestracja jest włączona, pojemność wydarzenia kontroluje rejestrację na to wydarzenie; nie wybiera automatycznie pomieszczenia o odpowiedniej wielkości. Zobacz zgłoszenie #1055, Obszary i pokoje i Pola niestandardowe.
Czy w jednym obszarze można wykorzystać 30-minutowe przedziały rano i 15-minutowe później?¶
Nie za pomocą standardowej konfiguracji obszaru. Każdy obszar ma jedną rozdzielczość czasową. Użyj najmniejszej rozdzielczości potrzebnej w ciągu całego dnia albo utwórz osobne obszary, jeśli pozwalają na to zasoby i sposób pracy. Rozdzielczość zależna od pory dnia wymaga własnej modyfikacji kodu i jej stałego utrzymywania.
Zobacz zgłoszenie #4011.
Dlaczego twórca rezerwacji nie widzi opcji Edytuj ani Usuń?¶
Sprawdź politykę rezerwacji istniejącego obszaru pod adresem Pokoje. Wcześniejsze/przyszłe limity edycji i zasady dotyczące wcześniejszych rezerwacji mogą uniemożliwić te działania nawet twórcy. Potwierdź także tożsamość zalogowanego użytkownika, własność, status administratora oraz to, czy element jest pojedynczym wystąpieniem czy serią.
Zmiana areadefaults.inc.php nie powoduje aktualizacji istniejącego obszaru. Zobacz zgłoszenie #3994 i Zasady rezerwacji.
Czy pokoje wybrane w rezerwacji multiroom są trwale połączone?¶
Nr MRBS tworzy osobne wpisy rezerwacji. Jeśli jedna z nich zostanie później edytowana lub usunięta, pozostałe nie stanowią trwałej połączonej grupy. Nie kopiuj wygenerowanej listy wszystkich wybranych pokoi do każdego opisu, chyba że witryna przechowuje tę listę również podczas operacji tworzenia, edytowania i usuwania.
Zobacz zgłoszenie #2223.
Czy mogę dodać więcej poziomów dostępu lub przyznać dostęp tylko do raportów w ramach niestandardowej roli?¶
Standard MRBS wykorzystuje poziomy dostępu 0, 1 i 2. Dodatkowe role numeryczne i uprawnienia specyficzne dla strony wymagają lokalnego dostosowania autoryzacji, testów i przeglądu po każdej aktualizacji. Łatka ze starego zgłoszenia nie jest obsługiwaną opcją konfiguracji.
Preferuj standardowe delegowanie obszarów/pokojów i raporty publiczne z wąskimi listami dozwolonych, jeśli spełniają wymagania. Zobacz zgłoszenie #3999 i Użytkownicy i uprawnienia.
E-mail, język i czas¶
Dlaczego debugowanie poczty e-mail zgłasza „Brak odbiorców”?¶
Włącz co najmniej jedną zamierzoną rolę odbiorcy:
$mail_settings['admin_on_bookings'] = true;
$mail_settings['area_admin_on_bookings'] = true;
$mail_settings['room_admin_on_bookings'] = true;
$mail_settings['booker'] = true;
Dla pierwszej opcji ustaw $mail_settings['recipients']. Dbaj o aktualność adresów e-mail administratorów obszarów i pokoi w MRBS. Jeżeli powiadamiana jest osoba rezerwująca, użytkownik LDAP musi mieć dostępny i poprawnie zmapowany atrybut adresu e-mail. Następnie osobno przetestuj tworzenie, zmianę i usuwanie rezerwacji.
Zobacz zgłoszenie #3795 i Powiadomienia e-mailowe.
Jakiej wartości powinienem użyć dla $override_locale?¶
Użyj znacznika języka BCP 47, takiego jak en, en-GB, de, fr lub es, a nie ciągu znaków ustawień regionalnych systemu operacyjnego. Serwer musi nadal mieć odpowiednie dane regionalne. W systemach uniksowych locale -a pokazuje zainstalowane ustawienia regionalne.
Pozostaw $override_locale puste, aby użyć automatycznego wyboru MRBS. Zobacz zgłoszenie #3984 i Tekst i tłumaczenia.
Dlaczego wyświetlane czasy są błędne?¶
Sprawdź w kolejności:
- strefa czasowa pokoju i obszaru;
- globalny
$timezone; - Strefa czasowa i pakiet danych strefy czasowej PHP;
- przejście na czas letni w danej dacie; i
- czy zapisany znacznik czasu, czy tylko jego wyświetlanie jest nieprawidłowy.
Użyj strefy czasowej IANA, takiej jak Europe/Berlin, a nie stałego przesunięcia UTC. Stare problemy wspominają o obejściach formatowania specyficznych dla wersji; $force_strftime nie jest ustawieniem w MRBS 1.12.2 i nie można go kopiować z zgłoszenie #3967. Zobacz Rozwiązywanie problemów.
Jak dostosować lub przetłumaczyć stronę pomocy i tekst interfejsu?¶
Strona pomocy w aplikacji jest ładowana z web/site_faq/. Na przykład w języku hiszpańskim używa się site_faq_es.html; ustaw $faqfilelang = 'es', gdy język musi zostać wybrany jawnie. Zachowaj kompletny przetłumaczony plik dla każdego obsługiwanego języka.
W przypadku krótkich zmian w interfejsie użyj $vocab_override[LANG][TOKEN] w config.inc.php zamiast edytować web/lang/lang.*. Niestandardowe pola bazy danych korzystają z tokenów, takich jak entry.catering.
Zobacz zgłoszenie #2432 i Tekst i tłumaczenia.
Raporty, wiele lokalizacji i dostosowywanie¶
W jaki sposób zaplanowane zadanie może wyeksportować raport lub dane iCalendar?¶
Nieuwierzytelnione raporty GET są domyślnie wyłączone. Jeżeli informacje mogą zostać ujawnione w ten sposób, należy je świadomie umożliwić i ograniczyć poprzez:
$report_unauthenticated_get_enabled = true;
$report_keys_enabled = true;
$report_keys = ['a-long-random-secret'];
$report_open_areas = [1];
$report_open_rooms = [];
Użyj trudnego do odgadnięcia klucza, ograniczonej listy dozwolonych obszarów i pokoi, HTTPS oraz zabezpieczonego harmonogramu. Po wylogowaniu sprawdź rzeczywistą zawartość raportu. Jego adres URL pełni funkcję poświadczenia i może wyciec przez dzienniki lub historię przeglądarki.
Zobacz zgłoszenie #3742 i Wyszukiwanie i raporty.
Czy wiele witryn MRBS może współdzielić jeden zestaw tabel?¶
Nie, jeśli ich rezerwacje i ustawienia muszą być oddzielne. Każda witryna potrzebuje własnych tabel MRBS, albo w osobnej bazie danych, albo z unikalną tabelą $db_tbl_prefix we wspólnej bazie danych. Kod można udostępniać, ale zestawy tabel nie mogą na siebie nachodzić.
Twórz tabele każdej witryny za pomocą skryptów schematu MRBS i konsekwentnie stosuj ich przedrostek. Zobacz zgłoszenie #3917 i Wiele witryn.
Czy każdy żądany widok lub motyw jest dostępny poprzez konfigurację?¶
Nie. Żądania takie jak wstawienie dodatkowego tekstu pokoju do określonego układu kalendarza, połączenie niezależnych rezerwacji, dodanie poziomów dostępu lub zmiana architektury motywu mogą wymagać zmian w kodzie. Przed zastosowaniem łatki wynikającej z problemu ze wsparciem:
- sprawdź, czy wersja 1.12.2 ma już punkt ustawienia lub rozszerzenia;
- przechowuj zmiany poza plikami wygenerowanymi i plikami dostawcy;
- dodaj testy dotyczące tworzenia, edytowania, usuwania, prywatności i uprawnień; i
- zapisz dostosowanie do następnej aktualizacji.
Przykłady obejmują problem z widokiem niestandardowym nr 2223 i prośba tematyczna nr 22.