Aviso : Variável indefinida $__POST em C:\php\strings-inicial\cadastro.php na linha 5
Aviso : Tentando acessar o deslocamento do array no valor do tipo null em C:\php\strings-inicial\cadastro.php na linha 5
Aviso : Variável indefinida $__POST em C:\php\strings-inicial\cadastro.php na linha 5
Aviso : Tentando acessar o deslocamento do array no valor do tipo null em C:\php\strings-inicial\cadastro.php na linha 5
Erro fatal: Uncaught TypeError: App\Alura\Usuario::construct(): Argument #1 ($nome) deve ser do tipo string, null dado, chamado em C:\php\strings-inicial\cadastro.php na linha 5 e definido em C:\php\strings-inicial\src\Alura\Usuario.php:11 Stack trace: #0 C:\php\strings-inicial\cadastro.php(5): App\Alura\Usuario->construct(NULL , NULL) #1 {main} lançado em C:\php\strings-inicial\src\Alura\Usuario.php na linha 11
o meu codigo no arquivo Usuario ao meu ver tudo aparenta estar correto não estou conseguindo achar o erro em si:
namespace App\Alura;
class Usuario
{
private string $nome;
private string $sobrenome;
private string $senha;
public function __construct (string $nome,string $senha)
{
$this->setNomeSobrenome($nome);
$this->validaSenha($senha);
}
private function setNomeSobrenome(string $nome)
{
$nomeSobrenome = explode(" ",$nome, 2 );
if ($nomeSobrenome[0] === "") {
$this->nome = 'Nome invalido';
} else {
$this->nome = $nomeSobrenome[0];
}
if ($nomeSobrenome[1] === null) {
$this->sobrenome = 'Sobrenome invalido';
} else {
$this->sobrenome = $nomeSobrenome[1];
}
}
public function getNome(): string
{
return $this->nome;
}
public function getsobrenome(): string
{
return $this->sobrenome;
}
public function getSenha(): string
{
return $this->senha;
}
private function validaSenha(string $senha): void
{
$tamanhoSenha = strlen(trim($senha));
if ($tamanhoSenha > 6) {
$this->senha = $senha;
} else {
$this->senha = "Senha invalida";
}
}
}
a seguir o codigo do arquivo Cadastro.php
<?php
require 'autoload.php';
$usuario = new App\Alura\Usuario($__POST['nome'], $__POST['senha']);
$contato = new App\Alura\Contato($__POST['email'], $__POST['endereco'], $__POST['cep'], $__POST['telefone']);
?>
<!DOCTYPE html>
<html lang="pt-br">;
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="bootstrap.min.css">
<title>Curso Strings</title>
</head>
<body>
<div class="mx-5 my-5">
<h1>Cadastro feito com sucesso.</h1>
<p>Seguem os dados de sua conta:</p>
<ul class="list-group">
<li class="list-group-item">Primeiro nome:<?php echo $usuario-> getNome(); ?></li class="list-group-item">
<li class="list-group-item">Sobrenome:<?php echo $usuario-> getSobrenome(); ?></li class="list-group-item" >
<li class="list-group-item">Usuário:<?php echo $contato-> getUsuario(); ?> </li class="list-group-item">
<li class="list-group-item">Senha:<?php echo $usuario-> getSenha(); ?> </li class="list-group-item">
<li class="list-group-item">Telefone: <?php echo $contato-> getTelefone(); ?> </li class="list-group-item">
<li class="list-group-item">Email: <?php echo $contato-> getEmail(); ?> </li class="list-group-item">
<li class="list-group-item">Endereço: <?php echo $contato-> getEndereco(); ?> </li class="list-group-item">
</ul>
</div>
</body>
</html>