AdiM
Guest
Upload определенных файлов на сервер
есть код, он должен загрузкть только картинки и ничего более, к сожаленю php ip файлы свободно загружаются как можно исправить ситуацию, помогите пожалуйста..
<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
// standard session management
$userdata = session_pagestart($user_ip, PAGE_TEMPLATE);
init_userprefs($userdata);
// set page title
$page_title = 'Закачка файлов';
// standard page header
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
// assign template
$template->set_filenames(array(
'body' => 'up.tpl')
);
$site_name = $_SERVER['HTTP_HOST'];
$url_dir = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']);
$url_this = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
$upload_dir = "./pic/";
$upload_url = $url_dir."./pic/";
$message ="";
//create upload_files directory if not exist
//If it does not work, create on your own and change permission.
if (!is_dir("../pic")) {
die ("дериктория для закачек не существует");
}
if ($_FILES['userfile']) {
$message = do_upload($upload_dir, $upload_url);
}
else {
$message = "";
}
function do_upload($upload_dir, $upload_url) {
$temp_name = $_FILES['userfile']['tmp_name'];
$file_name = $_FILES['userfile']['name'];
$file_type = $_FILES['userfile']['type'];
$file_size = $_FILES['userfile']['size'];
$result = $_FILES['userfile']['error'];
$file_url = $upload_url.$file_name;
$file_path = $upload_dir.$file_name;
//File Name Check
if ( $file_name =="") {
$message = "Не подходящее имя файла";
return $message;
}
//File Size Check
else if ( $file_size > 1000000) {
$message = "Размер файла превышает 1 Mb.";
return $message;
}
//File Type Check
else if ( $file_type == "text/plain" ) {
$message = "Извните, но тектовые файлы закачивать запрещено!" ;
return $message;
}
$result = move_uploaded_file($temp_name, $file_path);
$message = ($result)?"Адрес к файлу: <a href=$file_url>$file_url</a>" :
"Чтот случилось с закачаным файлом.";
return $message;
}
// get file list and create output
$tehfilelist = '';
$the_array = Array();
$handle = opendir('../pic/.');
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
$the_array[] = $file;
}
}
closedir($handle);
sort ($the_array);
reset ($the_array);
while (list ($key, $val) = each ($the_array)) {
$tehoutput .= "<a href=../cool/$val>$val</a><br>
http://localhost/pic/$val<br><br>";
}
// variables (Ed 31/12/2004)
$template->assign_vars(array(
'PTITLE' => 'Закачака файлов',
'OUTPUT' => $tehoutput,
'MESSAGE' => $message,
) );
$template->pparse('body');
// standard page footer
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>
есть код, он должен загрузкть только картинки и ничего более, к сожаленю php ip файлы свободно загружаются как можно исправить ситуацию, помогите пожалуйста..
<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
// standard session management
$userdata = session_pagestart($user_ip, PAGE_TEMPLATE);
init_userprefs($userdata);
// set page title
$page_title = 'Закачка файлов';
// standard page header
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
// assign template
$template->set_filenames(array(
'body' => 'up.tpl')
);
$site_name = $_SERVER['HTTP_HOST'];
$url_dir = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']);
$url_this = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
$upload_dir = "./pic/";
$upload_url = $url_dir."./pic/";
$message ="";
//create upload_files directory if not exist
//If it does not work, create on your own and change permission.
if (!is_dir("../pic")) {
die ("дериктория для закачек не существует");
}
if ($_FILES['userfile']) {
$message = do_upload($upload_dir, $upload_url);
}
else {
$message = "";
}
function do_upload($upload_dir, $upload_url) {
$temp_name = $_FILES['userfile']['tmp_name'];
$file_name = $_FILES['userfile']['name'];
$file_type = $_FILES['userfile']['type'];
$file_size = $_FILES['userfile']['size'];
$result = $_FILES['userfile']['error'];
$file_url = $upload_url.$file_name;
$file_path = $upload_dir.$file_name;
//File Name Check
if ( $file_name =="") {
$message = "Не подходящее имя файла";
return $message;
}
//File Size Check
else if ( $file_size > 1000000) {
$message = "Размер файла превышает 1 Mb.";
return $message;
}
//File Type Check
else if ( $file_type == "text/plain" ) {
$message = "Извните, но тектовые файлы закачивать запрещено!" ;
return $message;
}
$result = move_uploaded_file($temp_name, $file_path);
$message = ($result)?"Адрес к файлу: <a href=$file_url>$file_url</a>" :
"Чтот случилось с закачаным файлом.";
return $message;
}
// get file list and create output
$tehfilelist = '';
$the_array = Array();
$handle = opendir('../pic/.');
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
$the_array[] = $file;
}
}
closedir($handle);
sort ($the_array);
reset ($the_array);
while (list ($key, $val) = each ($the_array)) {
$tehoutput .= "<a href=../cool/$val>$val</a><br>
http://localhost/pic/$val<br><br>";
}
// variables (Ed 31/12/2004)
$template->assign_vars(array(
'PTITLE' => 'Закачака файлов',
'OUTPUT' => $tehoutput,
'MESSAGE' => $message,
) );
$template->pparse('body');
// standard page footer
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>