Неустранимая ошибка: допустимый объем памяти 268435456 байт исчерпан - PullRequest
0 голосов
/ 14 января 2020

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();
 }

 }

?>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...