PHP версия 7.1 Я пытаюсь создать страницу, где любой пользователь может загрузить изображение, свое имя, комментарий и свою электронную почту. На веб-странице только имя пользователя, комментарий и загруженное ими изображение будут отображаться на веб-странице. Я не уверен, поможет ли это с чем-либо, но я использую базу данных Hostgator MySQL для хранения всех данных. Я получаю предупреждение:
Неустранимая ошибка: допустимый объем памяти 268435456 байт исчерпан (попытка выделить 4294967296 байт) в строке 49
Я сделал еще один пост на этом сайте относительно этой же проблемы, и я пытался следовать другим аналогичным ответам, а также шагам, но он не работает, и я не получил правильного ответа на свой последний пост. Я был бы признателен, если бы кто-нибудь смог мне помочь с этим вопросом. Заранее спасибо.
Я включу весь свой код PHP для этого проекта. У меня нет файла php .ini, но я могу создать его при необходимости. В одном посте на этом сайте говорится, что нужно просто поставить строку "ini_set ('memory_limit', '256M'); до или после указанной строки ошибки c, поэтому вместо создания файла php .ini, который я только что поместил строка в моем фактическом коде. "
Коды, на которые ссылается ошибка:
$sql = "SELECT imgFullNameGallery, titleGallery, descGallery FROM gallery ORDER BY orderGallery
DESC;";
$stmt = mysqli_stmt_init($conn);
if (!mysqli_stmt_prepare($stmt, $sql)) {
echo "SQL statement failed!";
} else {
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $imgFullNameGallery, $titleGallery, $descGallery);
ini_set('memory_limit', '256M');
while (mysqli_stmt_fetch($stmt)) {
echo '<a href="#">
<div style="background-image: url(img/gallery/'.$imgFullNameGallery.');"></div>
<h3>'.$titleGallery.'</h3>
<p>'.$descGallery.'</p>
</a>';
}
}
mysqli_stmt_close($stmt);
mysqli_close($link);
?>
Весь код, который загружает и получает данные из базы данных для отображения на веб-странице, приведен ниже:
<?php
if (isset($_POST['submit'])) {
$newFileName = $_POST['filename'];
if (empty($newFileName)) {
$newFileName = "gallery";
} else {
$newFileName = strtolower(str_replace(" ", "-", $newFileName));
}
$imageTitle = $_POST['filetitle'];
$imageDesc = $_POST['filedesc'];
$file = $_FILES['file'];
$fileName = $file["name"];
$fileType = $file["type"];
$fileTempName = $file["tmp_name"];
$fileError = $file["error"];
$fileSize = $file["size"];
$fileExt = explode(".", $fileName);
$fileActualExt = strtolower(end($fileExt));
$allowed = array("jpg", "jpeg", "png");
if (in_array($fileActualExt, $allowed)) {
if ($fileError === 0) {
if ($fileSize < 5000000) {
$imageFullName = $newFileName . "." . uniqid("", true) . "." . $fileActualExt;
$fileDestination = "../img/gallery/" . $imageFullName;
include_once "dbh.inc.php";
if (empty($imageTitle) || empty($imageDesc)) {
header("Location: ../gallery.php?upload=empty");
exit();
} else {
$sql = "SELECT * FROM gallery;";
$stmt = mysqli_stmt_init($conn);
if (!mysqli_stmt_prepare($stmt, $sql)) {
echo "SQL statement failed!";
} else {
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
$rowCount = mysqli_num_rows($result);
$setImageOrder = $rowCount + 1;
$sql = "INSERT INTO gallery (titleGallery, descGallery, imgFullNameGallery, orderGallery)
VALUES (?, ?, ?, ?);";
if (!mysqli_stmt_prepare($stmt, $sql)) {
echo "SQL statement failed!";
} else {
mysqli_stmt_bind_param($stmt, "ssss", $imageTitle, $imageDesc, $imageFullName,
$setImageOrder);
mysqli_stmt_execute($stmt);
move_uploaded_file($fileTempName, $fileDestination);
header("Location: ../gallery.php?upload=success");
}
}
}
} else {
echo "File size is too big!";
exit();
}
} else {
echo "You had an error!";
exit();
}
} else {
echo "You need to upload a proper file type!";
exit();
}
}
?>