Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

Login Logs a PHP 8.2


Rekomendowane odpowiedzi

Opublikowano

Muszę podnieść wersje php na serwerze, ale po włączeniu 8.2 większość pluginów powoduje fatal error

 

Cytat

Fatal error: Declaration of IPS\loginlogs_hook_logs::authenticate() must be compatible with IPS\_Login::authenticate(?IPS\Login\Handler $onlyCheck = null) in D:\Apache\htdocs\sites\forum469\init.php(903) : eval()'d code on line 5

 

Po zmianie w pliku hooka 

 

było:

class loginlogs_hook_logs extends _HOOK_CLASS_
{
    public function authenticate()

 

na:

 

class loginlogs_hook_logs extends _HOOK_CLASS_
{
    public function authenticate(IPS\Login\Handler)

 

błędu nie ma, forum odpala, ale aplikacja nie działa i tak

 

Prosiłbym o podpowiedz jak ugryźć dostosowanie hookow do php.8.2

Opublikowano
Godzinę temu, DawPi napisał(a):

Innych błędów w narzędziu sprawdzającym kompatybilność nie ma? Na 8.1 działa?

 

Nie działa na 8.0 - 8.2. Działa na 7.x

 

Na bank jest to związane z odmiennymi wymaganiami php8.x co do argumentów funkcji, ale nie rozkminiłem o co chodzi, zwłaszcza w połączeniu z IPS.

 

 

Godzinę temu, DawPi napisał(a):

Jeszcze inna kwestia - ta apka ma jakieś extensions/?

 

Ma, ale tam nic nie ma. (\extensions\core\MemberSync) Jest tylko usuniecie logów dla usuniętego użytkownika i dla połączonych uzytkowników

    public function onMerge( $member, $member2 )
    {
        \IPS\Db::i()->update( 'loginlogs_logs', array( 'mid' => $member->member_id ), array( 'mid=?', $member2->member_id ) );
    }

    /**
     * Member is deleted
     *
     * @param    $member    \IPS\Member    The member
     * @return    void
     */
    public function onDelete( $member )
....

 

 

Opublikowano
public function authenticate( \IPS\Login\Handler $onlyCheck = NULL )

 

Bo potem jest odwołanie:

if ( !$onlyCheck or $method->id == $onlyCheck->id )

 

Zresztą, jak masz ten błąd, to Twoja wtyczka/aplikacja nie jest kompatybilna z obecną wersją IPS'u ;)

Opublikowano
58 minut temu, Weak. napisał(a):

Twoja wtyczka/aplikacja nie jest kompatybilna z obecną wersją IPS'u

 

pewnie masz racje, ale do tej pory, może i niekompatybilna ale działała (i nadal działa na 7.x) :)

Opublikowano (edytowane)

Hmm.. Aż sprawdziłem. W oryginalnym pliku tar, pobranym z IPS nie ma tego jsona

 

Co zmieni wgranie tego pliku?

Edytowane przez kodif
Opublikowano

Inne wtyczki są powyłączane.

 

7 godzin temu, DawPi napisał(a):

Wrzuć i zobacz czy działa.

 

Wrzuciłem i nie działa, ani na 8.0 ani na 8.2

 

Pewnie mamy inne ustawienia w php.ini bo nic innego mi do głowy nie przychodzi

 

Opublikowano (edytowane)

hmm,.. tak mi przyszło do głowy że 4.7 lepiej obsługuje wtyczki na 8.+

 

licencję mam nieaktywną, wiec i tak nie sprawdzę.

Edytowane przez kodif
  • Manager
Opublikowano
13 godzin temu, kodif napisał(a):

Wrzuciłem i nie działa,

Ale tam nie ma cudów - musi to działać. Nie działa w sensie nie dodaje nowych logów? Jak się logujesz? Normalnie czy poprzez jakieś FB czy coś?

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

  • Manager
Opublikowano
13 godzin temu, kodif napisał(a):

hmm,.. tak mi przyszło do głowy że 4.7 lepiej obsługuje wtyczki na 8.+

 

licencję mam nieaktywną, wiec i tak nie sprawdzę.

Wiadomo, że to generalnie idzie w miarę w parze, a na pewno blisko siebie.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Opublikowano
W dniu 26.08.2023 o 06:36, DawPi napisał(a):

Nie działa w sensie nie dodaje nowych logów? Jak się logujesz?

 

Loguję sie normalnie. 

Podsumowując:

 

jeśli w w pliku hooka jest tak jak w oryginale:

class loginlogs_hook_logs extends _HOOK_CLASS_
{
    public function authenticate()
    {
        try
        {
            try
            {
                try
                {
                    $login = parent::authenticate(  );

 

 

to wywala fatal error

Cytat

Fatal error: Declaration of IPS\loginlogs_hook_logs::authenticate() must be compatible with IPS\_Login::authenticate(?IPS\Login\Handler $onlyCheck = null) in D:\Apache\htdocs\sites\forum469\init.php(903) : eval()'d code on line 5

 

jeśli wpiszę np 

 

class loginlogs_hook_logs extends _HOOK_CLASS_
{
    public function authenticate(IPS\Login\Handler)

 

błędu nie ma, forum odpala, ale aplikacja nie działa i tak - nie dodaje logów

 

natomiast po wpisaniu

 

class loginlogs_hook_logs extends _HOOK_CLASS_
{
    public function authenticate($dowolna_nazwa_zmiennej = null)

 

błędu nie ma, forum odpala, aplikacja działa i dodaje logi

 

 

 

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.