Как мне включить массив из другого файла PHP

#php #arrays

#php #массивы

Вопрос:

В handle_signup.php страница, я пытаюсь обработать данные, которые были отправлены со страницы регистрации. Если пустое имя не имеет значения, то появляется сообщение об ошибке «Пожалуйста, введите свой ник». Итак, на странице регистрации я пытаюсь включить массив $errorMsgs из handle_signup.php страница и показать сообщение под вводом псевдонима. Как я могу получить массив из handle_signup.php страница? В настоящее время я использую include_once, но в массиве нет сообщения после передачи в handle_signup.php . Может ли кто-нибудь помочь в этой проблеме? Спасибо.

Обрабатывать значение из signup.php

 <?php
  require_once('./conn.php');
  $errorMsgs = array('nickname'=>'', 'email'=>'', 'password'=>'');


  if(isset($_POST['submit'])) {
    if(empty($_POST['nickname'])) {
      $errorMsgs['nickname'] = "Please enter your nickname";
      header("Location: ./signup.php");
    }
  };
?>
  

Страница регистрации — signup.php

 <?php
  include_once 'handle_signup.php';
  var_dump($errorMsgs);
?>

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="stylesheet" href="style.css" />
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.14.0/css/all.min.css" />
  <title>Message Board - Sign Up</title>
</head>
<body>
  <div class="container_sign">
    <h1 class="title">Create Account</h1>
    <form class="sign" method="POST" action="./handle_signup.php">
      <div>
        <i class="far fa-user"></i>
        <input type="text" placeholder="Nickname" name="nickname">
      </div>
      <p class="warning__msg"></p>
      <div>
        <i class="far fa-envelope"></i>
        <input type="text" placeholder="Email" name="email">
      </div> 
      <p class="warning__msg"></p>
      <div>
        <i class="fas fa-lock"></i>
        <input type="password" placeholder="Password" name="password">
      </div>
      <p class="warning__msg"></p>
      <input type="submit" value="SIGN UP" name="submit">
    </form>
  </div>
</body>
</html>
  

Комментарии:

1. Вы перенаправляете со страницы X на страницу Y, что означает, что все переменные будут потеряны. Сохраните ваши сообщения об ошибках в сеансе, чтобы сделать их постоянными и иметь возможность просматривать их на странице Y

2. Спасибо, DarkBee. Проблема решена!

3. Нет проблем, рад, что вы меня решили

Ответ №1:

Как предложил DarkBee, вы можете использовать $_SESSION для своих сообщений об ошибках или просто не использовать header("Location: ./signup.php") , но включить весь ваш PHP-код на одной странице.