подскажите почему не работает код?
<?php
require "db.php";
$login = $_SESSION['logged_user']->login;
$settings = R::findOne('users', 'WHERE `login`=?', [$login]);
if ($_FILES && $_FILES["file"]["error"] == UPLOAD_ERR_OK){
if($_FILES['file']['size'] < 5242880){
if($_FILES['file']['type'] == ('image/jpeg' || 'image/png') ){
$Image = imagecreatefrompng($_FILES['file']['tmp_name']);
$widthImg = imagesx($Image);
$heightImg = imagesy($Image);
if ($widthImg < $heightImg){
$ReadyImage = imagecrop($Image, ['x' => 0, 'y' => ($heightImg - $widthImg)/2, 'width' => $widthImg, 'height' => $widthImg]);
}else{
$ReadyImage = imagecrop($Image, ['x' => ($widthImg - $heightImg)/2, 'y' => 0, 'width' => $heightImg, 'height' => $heightImg]);
}
$filepath = "ava/" . $settings->id;
move_uploaded_file($ReadyImage, $filepath); /* Загружаем файл по указанному пути */
}else{
/* Учитывая accept в html, скорей всего попытка на инъекцию, начисление штрафных баллов в дальнейшем возможнен бан(ещё не реализована)*/ }
}else{
echo 202; /* big size */
}
}
?>
Перестало работать после добавления вот этого кода:
$Image = imagecreatefrompng($_FILES['file']['tmp_name']);
$widthImg = imagesx($Image);
$heightImg = imagesy($Image);
if ($widthImg < $heightImg){
$ReadyImage = imagecrop($Image, ['x' => 0, 'y' => ($heightImg - $widthImg)/2, 'width' => $widthImg, 'height' => $widthImg]);
}else{
$ReadyImage = imagecrop($Image, ['x' => ($widthImg - $heightImg)/2, 'y' => 0, 'width' => $heightImg, 'height' => $heightImg]);
}</code></pre>
$_FILES['file']['type'] == ('image/jpeg' || 'image/png'). Человек использует синтаксический сахар ещё до его введения в php. Мощно – ArchDemon Oct 17 '21 at 19:14('image/jpeg' || 'image/png')вам вернёт bool (true). Дальше вы сравниваете строку'some text' == trueчто в свою очередь вернёт bool (true). Потому что сравнение на самом деле выглядеть так(bool) 'some text' == trueилиtrue == true– ArchDemon Oct 18 '21 at 15:31image/jpegпри этом делаетеimagecreatefrompng. PNG, Карл! – ArchDemon Oct 18 '21 at 15:33