Zmienna z nazwą pliku przekazywana do file.php

Forum przeznaczone na rozmowy między autorami modyfikacji i inne pytania związane z poważniejszą ingerencją w kod phpBB 3.0.x.
rrouterr
Posty: 5
Rejestracja: 16 maja 2013, 12:02

Zmienna z nazwą pliku przekazywana do file.php

Post autor: rrouterr » 16 maja 2013, 12:06

Witam

Muszę zrobić weryfikację czy ściągany plik jest obrazem czy czymś innym (na potrzeby poboru opłaty za plik)

Jeśli pobierany plik jest obrazkiem (jpeg,gif,png,itp) opłata nie ma być pobierana
Potrzebuję do tego wrzucić do warunku nazwę lub rozszerzenie pliku, ale nie wiem w jakiej zmienne jest to przekazywane do file.php.


Pozdrawiam Michał

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

Re: Zmienna z nazwą pliku przekazywana do file.php

Post autor: jaroslw » 16 maja 2013, 19:51

Metodą GET do skryptu podawane jest ID pliku. Na podstawie tego ID ustalane jest rozszerzenie (pobierane z bazy). Dwa fragmenty z download/file.php:

Kod: Zaznacz cały

$download_id = request_var('id', 0);

Kod: Zaznacz cały

$sql = 'SELECT attach_id, in_message, post_msg_id, extension, is_orphan, poster_id, filetime
	FROM ' . ATTACHMENTS_TABLE . "
	WHERE attach_id = $download_id";
Pobierz styl: we_universalwe_clearblue
Nowości i aktualizacje: FacebookGoogle+Twitter

rrouterr
Posty: 5
Rejestracja: 16 maja 2013, 12:02

Re: Zmienna z nazwą pliku przekazywana do file.php

Post autor: rrouterr » 19 maja 2013, 10:52

Tak działa...

Kod: Zaznacz cały

		$sql = 'SELECT attach_id, is_orphan, in_message, post_msg_id, extension, physical_filename, real_filename, mimetype, filetime, extension
			FROM ' . ATTACHMENTS_TABLE . "
			WHERE attach_id = $download_id";
		$result = $db->sql_query_limit($sql, 1);
		$attachment = $db->sql_fetchrow($result);
		$db->sql_freeresult($result);

		if (!$attachment)
		{
			send_status_line(404, 'Not Found');
			trigger_error('ERROR_NO_ATTACHMENT');
			
			
		}
		
		$attachment['extension'] = utf8_basename($attachment['extension']);
		if (
			($attachment['extension'] != 'jpg')&&
			($attachment['extension'] != 'png') &&
			($attachment['extension'] != 'gif') 
			)
		{

Zablokowany