Ao tentar enviar dois formulários em um site que tenho em PHP eles funcionavam perfeitamente. Mas ao mudar para a verão 8.0.6 do PHP aparece os seguintes erros:
Fatal error: Uncaught Error: Attempt to assign property "name" on null in D:\wamp64\www\01siteOne\src\core\Route.php on line 40
( ! ) Error: Attempt to assign property "name" on null in D:\wamp64\www\01siteOne\src\core\Route.php on line 40
Segue parte do conteúdo de Route.php: (que funciona perfeitamente em versões anteriores a 8 do PHP.
private function getRequest() {
$obj = new \stdClass();
foreach ($_GET as $key => $value) {
@$obj->get->$key = $value;
}
foreach ($_POST as $key => $value) {
40 @$obj->post->$key = $value;
}
return $obj;
}
E parte dos formulários que uso:
<form role="form" method="post" action="/newsletter" id="news">
<div class="input-group mb-3">
<span class="input-group-text" id="user"><i class="fa fa-user icon" aria-hidden="true"></i></span>
<input type="text" class="form-control" name="name" id="name" placeholder="Digite seu nome" aria-describedby="user">
</div>
(...)
</form>
E:
<form action="/send" id="contactForm" method="post">
<div class="form-floating mb-2">
<input type="text" class="form-control" id="contactName" name="name" placeholder="John Smith">
</div>
(...)
</form>
Se há campos em branco ou errados são tratados no servidor. Mas o problema é que mesmo que preencha todos os campos eles não são reconhecidos pelo PHP 8.