0
respostas

Programação, PHP, PHP STRINGS - Iniciando o projeto - Aula 06 Adicionando checagem no formulário

Usuario.php 

<?php

namespace Alura;

Class Usuario
{
   private $nome;
   private $sobrenome;

   public function __construct(string $nome) {

    $nomeSobrenome = explode(" ", $nome, 2);

    if ($nomeSobrenome[0] === "") {
        $this->nome = "Nome inválido";
    } else {
        $this->nome =  $nomeSobrenome[0];
    }

    if ($nomeSobrenome[1] === null) {
        $this->sobrenome = "Sobrenome inválido";
    } else {
        $this->sobrenome = $nomeSobrenome[1];
    }
}

   public function getNome (): string 
   {
       return $this->nome;
   }

   public function getSobrenome (): string
   {
       return $this->sobrenome;
   }
}

Cadastro.php

<?php

use Alura\Usuario;

require 'Usuario.php';

$usuario = new Usuario($_POST['nome']);

?>

<!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>
    <li class="list-group-item">Sobrenome: <?php echo $usuario->getSobrenome() ?></li>
    <li class="list-group-item">Usuário: </li>
    <li class="list-group-item">Senha: </li>
    <li class="list-group-item">Telefone: </li>
    <li class="list-group-item">Email: </li>
    <li class="list-group-item">Endereço: </li>
</ul>
</div>
</body>
</html>

Giovanni então fiz os passos conforme as vídeo aulas, e meu código Usuário.php e Cadastro.php ficaram assim mostrados acima. Porém quando eu executo os testes de quando o usuário digitar somente nome ou deixar em branco está aparecendo uma mensagem um aviso de NOTICE no FORMULÁRIO, aparece acima do Cadastro feito com sucesso:

Notice: Undefined offset: 1 in C:\xampp\htdocs\Projeto\strings\Usuario.php on line 20

Pode me informar por que está aparecendo está mensagem, faltou algo no meu código? eu fiz pelo Visual Studio, não consegui incluir a imagem do navegador.

No servidor fica assim:

preconnection [Fri Nov 27 08:57:41 2020] 127.0.0.1:60594 Closing [Fri Nov 27 08:57:41 2020] 127.0.0.1:60649 Accepted [Fri Nov 27 08:57:41 2020] 127.0.0.1:60650 Accepted [Fri Nov 27 08:57:41 2020] PHP Notice: Undefined offset: 1 in C:\xampp\htdocs\Projeto\strings\Usuario.php on line 20 [Fri Nov 27 08:57:41 2020] 127.0.0.1:60649 [200]: POST /cadastro.php [Fri Nov 27 08:57:41 2020] 127.0.0.1:60649 Closing [Fri Nov 27 08:57:42 2020] 127.0.0.1:60650 [200]: POST /bootstrap.min.css [Fri Nov 27 08:57:42 2020] 127.0.0.1:60650 Closing [Fri Nov 27 08:57:42 2020] 127.0.0.1:60651 Accepted [Fri Nov 27 09:00:05 2020] 127.0.0.1:60651 Closed without sending a request; it was probably just an unused speculative preconnection [Fri Nov 27 09:00:05 2020] 127.0.0.1:60651 Closing