1
resposta

Erro para lançar e-mail com e sem '@'.

Aparentemente, o erro está no strpos, mas está exatamente como descrito na videoaula. Aonde está o erro, que não consigo entender?

Uso o Eclipse para PHP.

Fatal error: Uncaught Error: Call to undefined function srtpos() in C:\Users\Rômulo\Documents\Projetos-PHP\strings-inicial\Contato.php:12 Stack trace: #0 C:\Users\Rômulo\Documents\Projetos-PHP\strings-inicial\cadastro.php(28): Contato->getUsuario() #1 {main} thrown in C:\Users\Rômulo\Documents\Projetos-PHP\strings-inicial\Contato.php on line 12

meu código Contato.php:

<?php

class Contato{
    private $email;

    public function __construct(string $email){
        $this->email = $email;
    }

    public function getUsuario(): string {
        //Faz a leitura da posição do caractere arroba.
        $posicaoArroba = srtpos($this->email, "@");

        if($posicaoArroba === false){
            return "Usuário inválido";
        }
        //Pega a primeira parte do e-mail e usa como usuário;
        return substr($this->email, 0, $posicaoArroba);
    }
}

Meu código cadastro.php:

<?php
require 'Usuario.php';
require 'Contato.php';

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

?>

<!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: <?php echo $contato->getUsuario(); ?></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>
1 resposta

Oi Rômulo, tudo bem?

Você escreveu srtpos ao invés de strpos.

Bons estudos.