Прошу взглянуть на мой код и подсказать где я возможно не прав.
В коде пытаюсь загрузить аву пользователя, возможно где-то допустил ошибку или возможность обхода.
index.php
<form method="POST" enctype="multipart/form-data">
<input type="file" name="avatar">
<button type="submit" name="send">Send</button>
</form>
<?php
require_once 'func.php';
if( isset($date['send']))
{
if(isset($file))
{
debug( $file['avatar'] ) ;
img_save( $file['avatar']['name'],$file['avatar']['tmp_name'],$file['avatar']['error'],$file['avatar']['size'] );
}
}
?>
func.php
<?php
$date = $_POST;
$file = $_FILES;
function debug($array)
{
echo "<pre>";
print_r($array);
echo "</pre>";
}
function img_save($name,$path,$error,$size)
{
$error_report = [];
$format = [];
if($size > 250000 )
{
$error_report[] = "Размер файла слишком большой!";
}
if($error >0)
{
$error_report[] = "Файл поврежден!";
}
if( exif_imagetype($path) == IMAGETYPE_JPEG )
{
$format[] = ".jpg";
}
elseif( exif_imagetype($path) == IMAGETYPE_PNG )
{
$format[] = ".png";
}
else
{
$error_report[] = "Формат файла не подходит используйте .png или .jpeg !";
}
if(count($error_report) > 0 )
{
echo "Ошибка: " . array_shift($error_report);
die();
}
else
{
$permitted_chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
move_uploaded_file($path,"files/" . substr(str_shuffle($permitted_chars), 0, 16).array_shift($format));
}
}