Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Код, сохраняющий информацию о новом аватаре в БД и выполняющий всю работу по проверке загружаемого файла на корректность и его уменьшению





приведен ниже:

<?php

session_start();

if (!isset($_SESSION['user_id']))

{

header('Location: /soc/index.php?page='.$_SERVER["PHP_SELF"]);

//die('Доступ закрыт, даём ссылку на авторизацию. — <a href="login.php">Авторизоваться</a>');

}

$id = $_SESSION['user_id'];

function GenerateName($n=10)

{

$key = '';

$pattern = '1234567890abcdefghijklmnopqrstuvwxyz';

$counter = strlen($pattern)-1;

for($i=0; $i<$n; $i++)

{

$key.= $pattern{rand(0,$counter)};

}

return $key;

}

function resize_image($max_w, $max_h, $img, $fname)

{

$size = GetImageSize($img);

$w = $size[0];

$h = $size[1];

$x_ratio = $max_w / $w;

$y_ratio = $max_h / $h;

if (($w <= $max_w) && ($h <= $max_h))

{

$dstw = $w;

$dsth = $h;

}

else if (($x_ratio * $h) < $max_h)

{

$dstw = $max_w;

$dsth = ceil($x_ratio * $h);

}

else

{

$dsth = $max_h;

$dstw = ceil($y_ratio * $w);

}

$src = ImageCreateFromJpeg($img);

$dst = imagecreatetruecolor($dstw, $dsth);

ImageCopyResampled($dst, $src, 0, 0, 0, 0, $dstw, $dsth, $w, $h);

//$fname = substr($img, 0, strpos($img, '.')).'-thumb.jpg';

/*print nl2br("$img:

Width: $w,

Height: $h,

Сжатие по x: $x_ratio,

Сжатие по у: $y_ratio

Новое имя: $fname,

Новая ширина: $dstw,

Новая высота: $dsth

"); */

ImageJpeg($dst, $fname, 100);

}

include '../mysql.php';

$error = false;

$ert = '';

if ($_FILES['userfile']['error'] > 0)

{

$error = true;

switch ($_FILES['userfile']['error'])

{

case 1: $ert.='размер файла больше upload_max_filesize\n'; break;

case 2: $ert.='размер файла больше max_file_size\n'; break;

case 3: $ert.='загружена только часть файла\n'; break;

case 4: $ert.='файл не загружен\n'; break;

}

}

// Проверка, имеет ли файл правильный MIME-тип

$blacklist = array(".php", ".phtml", ".php3", ".php4", "pl");

foreach ($blacklist as $item) {

if(preg_match("/$item\$/i", $_FILES['userfile']['name'])) {

$ert.="Вы попытались загрузить вредоносный файл.\n";

$error = true;

}

}

$imageinfo = getimagesize($_FILES['userfile']['tmp_name']);

if($imageinfo['mime']!= 'image/jpeg') {

$ert.="Можно загружать только изображения формата JPEG\n";

$error = true;

}

// помещаем файл туда, куда нужно

$upfile = 'uploads/'.$_FILES['userfile']['name'];

if ($_FILES['userfile']['tmp_name'])

{

$z = $_FILES['userfile']['tmp_name'];

if (!move_uploaded_file("$z", $upfile))

{

$ert.='Проблема: невозможно переместить файл в каталог назначения\n';

$error = true;

}

if (!$error)

{

$fn = '../avatars/'.GenerateName().'.jpg';

resize_image(240, 320, $upfile, $fn);

$fn = substr($fn,3);

$q = "insert into avatars values(NULL, '$fn')";

mysql_query($q);

$avid = mysql_insert_id();

$q = "update user_details set avatar_id=$avid where id={$id}";

mysql_query($q);

unlink($upfile);

}

}

else

{

$ert.='Проблема: возможна атака через загрузку файла.\n';

$error = true;

}

include '../head.php';

$no_user = false;

$same_user = true;

include '../menu.php';

echo '<div id="rightCol">';

if ($error)

{

echo nl2br('<div class="errMessage">Возникли следующие проблемы:<br>'.$ert.'</div>');

}

else

{

echo '<div class="OKMessage">Файл успешно загружен</div>';

}

echo '</div>';

echo '<div id="bottom"></div></div>';

include '../foot.php';

?>

 

Date: 2015-09-02; view: 362; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию