#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-код на одной странице.