<?
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
FixMobileRU_WAPShare v1.00
( "WAP Обменник" )
Наличие обратной прямой ссылки на проект FixMobile.ru обязательно.
Убирая ссылку, Вы нарушаете лицензионное соглашение на использование данного продукта.
С нарушителями впредь больше никакого сотрудничества не будет.
Если по каким-либо причинам Вы не можете позволить себе размещение на Вашем ресурсе ПРЯМУЮ ОБРАТНУЮ
ссылку на Мобильный Портал FixMobile.ru -- обязательно свяжитесь с Разработчиков проекта, в противном
случае откажитесь от использования данного программного продукта.
( Если ссылку захотите поставить самостоятельно, ссылаться нужно на:
http://fixmobile.ru, а не www.fixmobile.ru ( это разные сайты! ) )
--
(C) Денис Владимирович, FixMobile.ru (2004-2005).
mailto: [email protected]
Мобильный Портал: FixMobile.ru
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
include ( "wap_share_config.php" );
/***[ НАСТРОЙКИ ПРОЕКТА ]***/
// == Основные настройки проекта ==
# Максимальные размер каждого файла ( в байтах )
$file_max_size = 100000;
# разрешенные к загрузке файлы:
$file_allowed_types = "*.gif, *.jpg, *.bmp, *.png, *.wbmp, *.mid, *.mp3, *.amr, *.3gp";
# [ ПРАВИТЬ НЕЛЬЗЯ ] Автоматическое определение месторасположения скрипта
$auto_folder = substr ( $_SERVER["PHP_SELF"], 0, (-1) * strrpos ( $_SERVER["PHP_SELF"], "/" ) + 2 );
# папка, в которую будем сбрасывать файлы ( относительный путь, на конце строки слэш )
$file_upload_dir = "wap_share/";
# http-адрес папки $file_upload_dir
$file_wap_link = "http://" . $_SERVER["HTTP_HOST"] . "/" . substr ( $auto_folder, 1 );
// == Дополнительные возможности и настройки ==
# Разрешена ли перезапись файлов при загрузке последних с одинаковыми именами ( возможные значения: "yes", "no" )
$allow_rewrite_files = "no";
/***[ НАСТРОЙКИ ПРОЕКТА /]***/
function ConnectToDB() {
GLOBAL $SETTINGS;
$link = mysql_connect ( $SETTINGS["mysql_host"], $SETTINGS["mysql_login"], $SETTINGS["mysql_password"] ) or die ( mysql_error () );
mysql_select_db ( $SETTINGS["mysql_db"], $link ) or die ( mysql_error () );
return $link;
}
function CheckFileExtOK ( $file_name, $file_allowed_types ) { // проверка файловых расширений
$result = false;
$arr = array();
$arr = preg_split ( "/\,/", ereg_replace ( "[\*\.\ ]", "", $file_allowed_types ) );
for ( $i=0; $i<count( $arr ); $i++ ) {
if ( preg_match ( "/" . $arr[$i] . "$/", $file_name ) ) {
$result = true;
}
}
return $result;
}
function PrintWAPPage ( $body ) {
GLOBAL $hash_secure_confirm_str, $hash_crc;
if(crc32($hash_secure_confirm_str)!=$hash_crc){exit;}
return '<?xml version="1.0" encoding="Windows-1251"?><!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="java" title="wap.FixMobile.ru">
<p align="center">
' . $body . '<br /><br />
<small>
<a href="http://fixmobile.ru">(c) FixMobile.ru (2004-2005)</a></small>
</p>
</card>
</wml>';
}
# строка обеспечивает безопасность работы проекта ( НЕ ИЗМЕНЯТЬ! - нарушит работоспособность проекта )
$hash_secure_confirm_str = 'PGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IHZlcmRhbmE7IGZvbnQtc2l6ZTogMTBweDsiPg0KPGJyPg0KPGI+PGEgaHJlZj0iaHR0cDovL2ZpeG1vYmlsZS5ydS93YXBfc2hhcmUucGhwIj48c3Ryb25nPldBUCDO4ezl7e3o6jwvc3Ryb25nPjwvYT4g7/Dl5O7x8uDi6+XtIMzu4ejr/O377CDP7vDy4Ovu7CA8Yj48YSBocmVmPSJodHRwOi8vZml4bW9iaWxlLnJ1L2ZpeG1vYmlsZV9ydV9wcm9qZWN0cy5waHAiPkZpeE1vYmlsZS5ydTwvYT48L2I+PC9iPiw8YnI+DQo8YSBocmVmPSJodHRwOi8vZml4bW9iaWxlLnJ1L2ltYWdlcy5waHAiPjxzdHJvbmc+zO7h6Ov87fvlIMrg8PLo7eroPC9zdHJvbmc+PC9hPiwgPGEgaHJlZj0iaHR0cDovL2ZpeG1vYmlsZS5ydS9wb2x5LnBocCI+PHN0cm9uZz7B5fHv6+Dy7eD/IM/u6+j07u3o/zwvc3Ryb25nPjwvYT4sIDxhIGhyZWY9Imh0dHA6Ly9maXhtb2JpbGUucnUvamF2YV9nYW1lcy5waHAiPjxzdHJvbmc+SmF2YSDI4/D7IMHl8e/r4PLt7jwvc3Ryb25nPjwvYT4sIDxhIGhyZWY9Imh0dHA6Ly9maXhtb2JpbGUucnUvc21zX3ByaWtvbHMucGhwIj48c3Ryb25nPtHM0SDP8Ojq7uv7PC9zdHJvbmc+PC9hPiwgPGEgaHJlZj0iaHR0cDovL2ZpeG1vYmlsZS5ydS9zZW5kX3Ntcy5waHAiPjxzdHJvbmc+zvLv8ODi6uAg0czRPC9zdHJvbmc+PC9hPg0KPC9kaXY+';
$hash_crc = -164915530;
$body = "";
if ( isset ( $_GET["key"] ) ) { // определён номер файла, ссылку на который нужно отобразить
header ( "Content-type: text/vnd.wap.wml" );
$link = ConnectToDB ();
$_GET["key"] = intval ( $_GET["key"] ); // на всякий случай проверка
$result = mysql_query ( "SELECT * FROM fixmobile_wap_share WHERE `p_id`=" . $_GET["key"] ) or die ( mysql_error() );
if ( mysql_num_rows ( $result ) > 0 ) {
$result = mysql_fetch_assoc ( $result );
$result["p_filename"] = $file_wap_link . $file_upload_dir . $result["p_filename"];
$body .= 'Your file: <a href="' . $result["p_filename"] . '"><br/><b>' . $result["p_filename"] . '</b></a><br/>(' . sprintf ( "%01.2f", $result["p_filesize"] / 1024 ) . ' kb)';
} else {
$body .= "File not found, sorry.";
}
exit( PrintWAPPage ( $body ) );
} else { // нет "key" - либо отобразить форму, либо сохранить загруженный файл
if(crc32($hash_secure_confirm_str)!=$hash_crc){exit;}
if ( isset ( $_FILES["form_file"] ) ) {
if ( $_FILES["form_file"]["size"] < $file_max_size ) {
if ( CheckFileExtOK ( $_FILES["form_file"]["name"], $file_allowed_types ) ) {
$target_file = $file_upload_dir . $_FILES["form_file"]["name"];
$error_message = "";
if ( $allow_rewrite_files == "yes" ) {
if ( file_exists ( $target_file ) ) {
$error_message = "Файл с таким именем уже существует в нашем обменнике. Переименуйте свой файл и повторите попытку.<br>";
}
}
if ( $error_message == "" ) {
copy ( $form_file, $target_file );
$link = ConnectToDB ();
$filesize = filesize( $target_file );
mysql_query ( "INSERT INTO fixmobile_wap_share VALUES ( '', '". $_FILES["form_file"]["name"] ."', '".$filesize."', '".time()."' )" ) or die ( mysql_error() );
$file_id = mysql_insert_id();
$FIXMOBILE_RU_SETTINGS = array();
$result = mysql_query ( "SELECT * FROM fixmobile_config" ) or die ( mysql_error() );
if ( mysql_num_rows ( $result ) > 0 ) {
while ( $result_row = mysql_fetch_assoc ( $result ) ) {
$FIXMOBILE_RU_SETTINGS[$result_row["p_key"]] = $result_row["p_value"];
}
} else {
exit ( "Проект установлен некорректно. Обратитесь к разработчику." );
}
$new_free_volume = (int)$FIXMOBILE_RU_SETTINGS["wap_share_free_volume"] + $filesize;
mysql_query ( "UPDATE fixmobile_config SET `p_value`='$new_free_volume' WHERE `p_key`='wap_share_free_volume'" ) or die ( mysql_error() );
$body .= '<b>Файл загружен успешно!</b><br>Ваша WAP Ссылка на загруженный файл:<br><br>
<a href="' . $file_wap_link . $file_id .'"><b>' . $file_wap_link . $file_id . '</b></a><br><br>
Свободно на WAP обменнике: <b>' . sprintf ( "%01.2f mb", $new_free_volume / 1024 / 1024 ) . ' / ' . sprintf ( "%01.2f mb", $FIXMOBILE_RU_SETTINGS["wap_share_full_volume"] / 1024 / 1024 ) . '</b>'; //*** 48.3mb не должно быть статическим
} else {
$body .= '<font color="red">' . $error_message . '</font>';
}
} else {
$body .= "<b>Файл недопустимого формата.</b><br>Если Вы считаете, что этот формат файла вполне уместен для загрузки сообщите об этом Администратору.<br>Сегодня же(!) Я включу эту возможность, если посчитаю действительно нужным.<br>Список допустимых форматов:<br><b>$file_allowed_types</b><br>";
}
} else {
$body .= "<b>Файл первышает максимально допустимый размер: $file_max_size байт.</b>";
}
} else {
$body = file_get_contents ( "wap_share.htm" );
$link = ConnectToDB ();
$result = mysql_query ( "SELECT * FROM fixmobile_config" ) or die ( mysql_error() );
$CONFIG_OPTIONS = array();
if ( mysql_num_rows ( $result ) > 0 ) {
while ( $result_row = mysql_fetch_assoc ( $result ) ) {
$CONFIG_OPTIONS[$result_row["p_key"]] = $result_row["p_value"];
}
}
$body = preg_replace ( array( "/%WAP_SHARE_FREE_VOLUME%/", "/%WAP_SHARE_FULL_VOLUME%/" ), array( sprintf ( "%01.2f mb", $CONFIG_OPTIONS["wap_share_free_volume"] / 1024 / 1024 ), sprintf ( "%01.2f mb", $CONFIG_OPTIONS["wap_share_full_volume"] / 1024 / 1024 ) ), $body );
}
}
if(crc32($hash_secure_confirm_str)!=$hash_crc){exit;}
$body .= base64_decode ( $hash_secure_confirm_str );
echo '<table cellspacing="0" cellpadding="0" width="100%">
<tr><td>
<h1>WAP Обменник</h1>
<p align="justify">' . $body . '</p>
<br>
</td></tr>
</table>';
?>