Srs, bom dia!
Estou com um problema que eu não sei se é possível soluciona-lo com PHP:
Eu tenho um formulário onde eu executo um post. Para gerenciar as mensagens de erro eu as gravei em um array caso um campo não seja preenchido pelo o usuário eu faço a impressão das mensagens.
Meu problema é, quando eu executo um click no botão de add, as mensagens são impressas mas os campos que estavam preenchidos são apagados. É possível via PHP manter os campos que já foram preenchidos em tela?
FORM
<?php require_once('validation.php') ?>
<section>
<div class="container">
<h2 class="title">Adicionar usuário</h2>
<form action="../../controllers/user/new.php" method="post">
<fieldset>
<label for="name">Nome</label>
<input type="text" class="input-name" name="name" id="input-name" placeholder="digite o seu nome" required>
</fieldset>
<fieldset>
<label for="email">E-mail</label>
<input type="email" class="input-email" name="email" id="input-email" placeholder="digite o seu email" required>
</fieldset>
<fieldset>
<label for="password">Senha</label>
<input type="password" class="input-password" name="password"
id="input-password" placeholder="digite a sua senha" required>
<button type="submit" id="add-user">Adicionar</button>
</fieldset>
</div>
</form>
</div>
</section>
VALIDATION
<?php
session_start();
require_once('../../controllers/global/validation.php');
require_once('../../controllers/global/session.php');
if(array_key_exists('emptyField', $_SESSION)){
$erros = global_validation_set_erro();?>
<table class="alert">
<?php foreach($erros as $erro): ?>
<tr>
<td><?= $erro ?></td>
</tr>
<?php
global_kill_session($erro);
endforeach;
?>
</table>
<?php
}
?>
TRATAMENTO DOS ERROS.
function global_session_new($type){
$_SESSION[$type] = $type;
}
function global_validation_set_erro(){
$erros = Array();
$erros = $_SESSION;
array_shift($erros);
return $erros;
}
function global_kill_session($type){
unset($_SESSION[$type]);
}