UWAGA: W PHP wykryto krytyczne podatności, przez które Wasze strony/fora mogą zostać zhakowane! Dzisiaj mają być udostępnione poprawione wersje, warto monitorować i ustawić odpowiendie wersje PHP na swom serwerze.

Poprawki będę zawarte w wersjach PHP: 8.5.12, 8.4.27, 8.3.36 oraz 8.2.35! Jeśli używacie jeszcze wersje PHP 7.x lub 8.0.x lub 8.1.x, należy, jak najszybciej podnieść wersje PHP i/lub zaktualizować swoje fora!

Do momentu wdrożenia oficjalnej łatki, ryzyko ataku można drastycznie zmniejszyć poprzez zmianę konfiguracji w pliku php.ini:
Ustaw: session.upload_progress.enabled = Off

Albo np., można zrobić: https://ma.ttias.be/php-cve-2026-109618 ... itigation/

Dla serwera Apache ustaw w pliku .htaccess

Kod: Zaznacz cały

RewriteEngine On
RewriteCond %{HTTP:Content-Type} multipart/form-data [NC]
RewriteRule ^ - [F]
i/lub - nie testowałem

Kod: Zaznacz cały

<If "req('Content-Type') =~ /multipart/i">
    Require all denied
</If>

Dla nginx

Kod: Zaznacz cały

# http {} context, e.g. /etc/nginx/conf.d/block-multipart.conf
map $http_content_type $block_multipart {
    default       0;
    "~*multipart" 1;
}

# inside every server {} that passes requests to PHP, including default/catch-all servers
if ($block_multipart) {
    return 403;
}
_____________________________________________________

Pojawiła się nowa wersja systemu - phpBB 3.3.19. Ostatnie wydania (od wersji 3.3.17 do najnowszej) przynoszą kluczowe poprawki, które chronią Twoje forum przed zagrożeniami i dbają o spokój Twojej społeczności. Polecam nie odkładać tego na później, tyllko zaktualizować fora!

Polski pakiet językowy dla phpBB 3.3.19

assing vars a petla while

Forum przeznaczone na rozmowy między autorami modyfikacji i inne pytania związane z poważniejszą ingerencją w kod phpBB 3.0.x.
begin_skrypter
Posty: 4
Rejestracja: 25 stycznia 2014, 11:46

assing vars a petla while

Post autor: begin_skrypter » 25 stycznia 2014, 11:56

witam, pisząc modyfikacje pod bb3 natknąłem się na mały problem, oto mój kod..

//news
$sql = 'SELECT *
FROM ' . NEWS_TABLE .'
ORDER BY time DESC';
$result = $db->sql_query($sql);
while($r = $db->sql_fetchrow($result))
{
$news = $r['tytul'];
$message = $r['news'];
$flags = (($config['allow_bbcode']) ? 1 : 0) + (($config['allow_smilies']) ? 2 : 0) + ((true) ? 4 : 0);
$message = generate_text_for_display($message, $r['bbcode_uid'], $r['bbcode_bitfield'], $flags);

echo $news.'<br> .'.$message.'<br><br>';
}
$db->sql_freeresult($resultn);


no i w assing vars przypisuje sobie tytul i tresc newsa. żeby użyć w html.
teraz taki problem w pętli echo wypisuje wszystkie rekordy. natomiast do assing vars przypisuje ostatni.. :(
Jakieś propozycje? chciałbym wypisać na stronie wszystkie newsy z bazy:)
jak widać po nicku jestem początkującym więc proszę o wyrozumiałość jeżeli to jakiś "błachy" błąd lub nie dopatrzenie.

Pozdrawiam.

jaroslw
Zasłużony
Posty: 4524
Rejestracja: 10 grudnia 2005, 18:48
Kontakt:

Re: assing vars a petla while

Post autor: jaroslw » 27 stycznia 2014, 12:48

Rzuć okiem na poniższy przykład. Myślę, że stanie się to jasne :)

Kod: Zaznacz cały

$sql = '...';
$result = $db->sql_query($sql);

while ($row = $db->sql_fetchrow($result))
{
	$template->assign_block_vars('nazwa_petli', array(
		'ZMIENNA_SZABLONOWA1' => $row['jakas_zmienna1'],
		'ZMIENNA_SZABLONOWA2' => $row['jakas_zmienna2'],
	));
}

$db->sql_freeresult($result);
W szablonie używasz tego w następujący sposób:

Kod: Zaznacz cały

<!-- BEGIN nazwa_petli -->
	{nazwa_petli.ZMIENNA_SZABLONOWA1}<br />
	{nazwa_petli.ZMIENNA_SZABLONOWA2}<br />
<!-- END se_recent_topics -->
Pobierz styl: we_universal • we_clearblue
Nowości i aktualizacje: Facebook • Google+ • Twitter

begin_skrypter
Posty: 4
Rejestracja: 25 stycznia 2014, 11:46

Re: assing vars a petla while

Post autor: begin_skrypter » 27 stycznia 2014, 12:58

Wielkie dzięki. Oczywiście wszystko ładnie działa ;) piątka dla Ciebie, temat można zamknąć.

Zablokowany

Wróć do „Dla deweloperów”