Skocz do zawartości

Problemy z modyfikacjami w phpBB2 by Przemo 1.12.8


CzareK
 Udostępnij

Rekomendowane odpowiedzi

Opublikowano
Opublikowano

W wersji phpBB2 modified by Przemo 1.12.8 wprowadzono obsługę mysqli, domyślnie włączoną. W związku z tym niektóre modyfikacje nie działają, ponieważ wykorzystują nadal funkcje służące do operowania na połączeniu mysql.

Gdyby modyfikacje były pisane wg. standardu - tzn. wykorzystywały klasę "db" to problemu by nie było, ponieważ działałyby praktycznie niezależnie od tego, z jakiego silnika bazy danych korzysta pozostała część skryptu (problem może ewentualnie wystąpić z zapytaniami ale w przypadku mysqli to nadal jest taki sam standard jak mysql, to tylko sposób połączenia).

Charakterystyczne komunikaty o błędach zaczynają się na Warning: mysql**** wskazujące na linię z funkcją dokonującą operacji w bazie danych(np. wywołanie zapytania).

W takim przypadku, w zmodyfikowanych plikach, jak i dołączonych do modyfikacji należy zmienić te funkcje na odpowiedniki z klasy "db".

  • mysql_query na $db->sql_query
  • mysql_fetch_array na $db->sql_fetchrow
  • mysql_num_rows na $db->sql_numrows

Problem z Cache w 1.12.8

 W związku ze zmianą sposobu działania cache, mogą pojawić się komunikaty o błędach zaczynające się od "Warning: include(Array)"

Nowy sposób od razu zwraca zawartość cache a czy coś tam jest sprawdzamy czy zmienna jest pusta a nie jak dotychczas - funkcja zwracała informację o tym, że coś jest w cache i jeżeli zwróciła prawdę to includowaliśmy ten plik.

Nowy wzór:

$nazwa = sql_cache('check', 'nazwa');

if(empty($nazwa)
{
//Nie ma nic w cache. Pobieramy z bazy
}
//dalsze operacje
 
Dla kompatybilności "nazwa" powinna być taka sama w nazwie zmiennej i drugiego parametru funkcji, tak jak we wcześniejszym fragmencie.

Problemy z funkcją htmlspecialchars

Od wersji PHP 5.4 zmieniona została zawartość parametru "kodowanie" tej funkcji na nie używane na razie UTF co powodowało problemy m.in przy wysyłaniu postów.
 
Najłatwiej będzie zamienić wszystkie htmlspecialchars w plikach modyfikacji i fragmentach do wyszukania na xhtmlspecialchars - w 1.12.8 stworzyliśmy tę funkcję aby podawała prawidłowy trzeci parametr.
 
Poradnik dodany za zgodą Woytec z przemo.org.
Odnośnik do komentarza
Udostępnij na innych stronach

  • 8 lat później...
Opublikowano
Opublikowano

Użycie funkcji get_vars.

Zamiast:

if( isset($HTTP_GET_VARS['mark']) || isset($HTTP_POST_VARS['mark']) )
{
    $mark_read = ( isset($HTTP_POST_VARS['mark']) ) ? $HTTP_POST_VARS['mark'] : $HTTP_GET_VARS['mark'];
}
else
{
    $mark_read = '';
}

Można tak:

$mark_read = get_vars('mark', false, 'POST,GET');
Odnośnik do komentarza
Udostępnij na innych stronach

Problem wciąż nierozwiązany? Dodaj swoją odpowiedź

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ę
 Udostępnij

×