View file upload.php

File size: 7.38Kb
<?php
   session_start();

   require('includes/db.php');
   require('includes/config.php');

   $message = '';
   $error = '';

   if(($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['login']) && isset($_POST['pass'])) || (isset($_SESSION['login']) && isset($_SESSION['pass'])))
   {
      if($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['login']) && isset($_POST['pass']))
         $users = mysql_query('SELECT id, login FROM users WHERE login = "' . addslashes($_POST['login']) . '" AND password = "' . md5($_POST['pass']) . '"');
      else
         $users = mysql_query('SELECT id, login FROM users WHERE login = "' . addslashes($_SESSION['login']) . '" AND password = "' . md5($_SESSION['pass']) . '"');

      if(mysql_num_rows($users) > 0)
      {
         if(!(isset($_SESSION['login']) && isset($_SESSION['pass'])))
         {
            $_SESSION['login'] = addslashes($_POST['login']);
            $_SESSION['pass'] = addslashes($_POST['pass']);
         }
         $user = mysql_fetch_array($users, MYSQL_ASSOC);
         $id = $user['id'];
         $login = $user['login'];

         if(isset($_GET['del']))
         {
            // deleting file
            if(!strstr($_GET['del'], '..'))
               unlink("$login/files/$_GET[del]");
         }

         $n = 0;
         $files = '';
         $total_size = 0;
         if ($handle = opendir("$login/files/"))
         {
            while (false !== ($file = readdir($handle)))
            {
               if($file != '.' && $file != '..')
               {
                  $filesize = filesize("$login/files/$file");
                  $total_size += $filesize;
                  $files .= <<<FILEDATA
<TR>
<TD ALIGN="left"><b><a href="http://$server_name/wb/$login/files/$file">$file</a></b></TD><TD ALIGN="left"><b>$filesize байт</b></TD><TD ALIGN="left"><b><a href="upload.php?del=$file">Удалить</a></b></TD>
</TR>
FILEDATA;
                  $n++;
               }
            }
            closedir($handle);
         }
         $free_space = $files_size - $total_size;

         if(isset($_FILES['filename']) && is_uploaded_file($_FILES['filename']['tmp_name']))
         {
            if(!file_exists($_FILES['filename']['name']))
            {
               preg_match('/\.(.*?)$/', $_FILES['filename']['name'], $res);
               $file_ext = $res[1];
               if(!in_array($file_ext, $file_extensions))
               {
                  $message = 'Недопустимое расширение файла';
               }
               else if(filesize($_FILES['filename']['tmp_name']) > $free_space)
               {
                  $message = 'Файл превышает допустимый размер';
               }
               else
               {
                  copy($_FILES['filename']['tmp_name'], $login . '/files/' . $_FILES['filename']['name']);
                  $filename = $_FILES['filename']['name'];
                  $message = 'Файл загружен';
               }
            }
            else
            {
               $message = 'Ошибка загрузки файла';
            }
         }
         echo <<<UPLOADPAGE
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
<TITLE>Контент-менеджер</TITLE>
<style TYPE="text/css"><!--
.body{ text-align: center; font-family: Arial; font-size: 12pt;}
A:Link{ Color: #B30000; text-decoration: none;}
A:Visited{ Color: #B30000; text-decoration: none;}
A:Active{ Color: #05FA30;}
A:hover{ Color: #05FA30}
BODY{Margin-Left: 0; Margin-Right:0; Margin-Top: 0; Margin-Bottom: 10;}
--></style>
</HEAD>
<BODY TEXT="BLACK" BGCOLOR="#F7EDCE" BACKGROUND="07000000.gif">
<div class="body">
<font color="#346767" size="7"><b><i>WAP-BUILDER</i></b></font><br>
<font color="#000000" size="4"><b>Контент менеджер</b></font><br>
<font color="#CA0000" size="4"><a href="http://$server_name/wb/$login">"http://$server_name/wb/$login"</a></font><br>
<font color="#000000" size="3"><b>Для закачки и хранения файлов вам выделяется 2мб свободного места,<br>так же разрешено закачивать только некоторые типы файлов, со следующими расширениями:<br>mmf, mid, jpf, gif, png, mp3, sis, mpn, jar, jad, wml.<br>Делать ссылки на ваши файлы надо так:<br>http://$server_name/wb/$login/files/ваш_файл или просто(в панели редактора) files/ваш_файл</b></font><br>
<font color="#007900" size="5"><b>$message</b></font><br>
<font color="#346767" size="5"><b>Ваши файлы:</b></font><br>
UPLOADPAGE;

         $n = 0;
         $files = '';
         $total_size = 0;
         if ($handle = opendir("$login/files/"))
         {
            while (false !== ($file = readdir($handle)))
            {
               if($file != '.' && $file != '..')
               {
                  $filesize = filesize("$login/files/$file");
                  $total_size += $filesize;
                  $files .= <<<FILEDATA
<TR>
<TD ALIGN="left"><b><a href="http://$server_name/wb/$login/files/$file">$file</a></b></TD><TD ALIGN="left"><b>$filesize байт</b></TD><TD ALIGN="left"><b><a href="upload.php?del=$file">Удалить</a></b></TD>
</TR>
FILEDATA;
                  $n++;
               }
            }
            closedir($handle);
         }
         $free_space = $files_size - $total_size;
if($n > 0)
{
   echo <<<FILETABLE
<TABLE WIDTH="100%" BORDER=2 BGCOLOR="#C0C0C0" CELLSPACING=1 CELLPADDING=1>
<TR>
<TD ALIGN="left"><font color="#D7006B" size="4"><b>Файл</b></font></TD><TD ALIGN="left"><font color="#D7006B" size="4"><b>Размер(байт)</b></font></TD><TD ALIGN="left"><font color="#D7006B" size="4"><b>Удаление</b></font></TD>
</TR>
$files
</TABLE>
FILETABLE;
}

echo <<<UPLOADPAGE
<b>Всего в директории http://$server_name/wb/$login/files $n файлов<br>Свободно $free_space байт<br>Занято $total_size байт</b><br>
<br><form ENCTYPE="multipart/form-data" action="upload.php" method="post">
<b>Загрузить файл:</b><br>
<b>(Максимальный размер: $free_space байт):</b><br>
<INPUT NAME="filename" TYPE="file" SIZE="20"><br>
<input type="submit" name="go" value="Отправить" onMouseOver="style.color='#00FF40'" onMouseOut="style.color='black'">
</form>
</BODY>
</HTML>
UPLOADPAGE;
         exit;
      }
      else
      {
         $error = 'Неправильный логин/пароль';
      }
   }
?>
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
<TITLE>Контент-менеджер</TITLE>
<style TYPE="text/css"><!--
.body{ text-align: center; font-family: Arial; font-size: 12pt;}
A:Link{ Color: #FF4A4A; text-decoration: none;}
A:Visited{ Color: #FF4A4A;; text-decoration: none;}
A:Active{ Color: #05FA30;}
A:hover{ Color: #05FA30}
BODY{Margin-Left: 0; Margin-Right:0; Margin-Top: 0; Margin-Bottom: 10;}
--></style>
</HEAD>
<BODY TEXT="BLACK" BGCOLOR="#F7EDCE" BACKGROUND="07000000.gif">
<div class="body">
<font color="#346767" size="7"><b><i>WAP-BUILDER</i></b></font><br>
<font color="#000000" size="4"><b>Контент менеджер</b></font><br>
<?php
   if($error != '')
      echo '<font color="#D7006B" size="5"><b>' . $error . '</b></font><br><font color="#B31C7D" size="5">Авторизация:</font>';
   ?>
<b><form method="POST" action="upload.php" name="auth">
Логин:<br>
<input type="text" name="login" maxlength="15"  size="15"><br>
Пароль:<br>
<input type="password" name="pass" maxlength="15"  size="15"><br>
<input type="submit" value="Вход" name="enter" onMouseOver="style.color='#00FF40'" onMouseOut="style.color='black'"></b>
</BODY>
</HTML>