Duvida? Pode ter 2 pag ("<title>")html no mesmo script php?

Ola. Sou iniciante em Html/php e fique muito confuso com um exemplo de verificação de campos do form. Nesse exemplo há 2 titulos html no"slide_p22.php":

  • O primeiro no começo (para preencher o cadastro):
    <head><title>Informações para Cadastro</title></head>

  • O segundo no final (amostra caso tenha erro):
    <head><title>Erro no cadastramento</title></head>

Pode isso?

Outra duvida:
Eu não entendi essa linha abaixo. procurei na internet e nada.
<?=$errorString?>

Código completo:

<?php
  if (!(isset($_POST["nome"]))) {
?>
<html>
<head><title>Informações para Cadastro</title></head>
<body bgcolor="white">  
<form method="post" action="slide_p22.php">
<h1> Informações para Cadastro </h1>
<h3>Por favor, entre com a informação solicitada para se cadastrar. Campos mostrados em <font color="red"> vermelho </font> são obrigatórios.</h3>
<table>
<col span="1" align="right">
<tr> <td><font color="red">Sobrenome:</font></td>
   <td><input type="text" name="sobrenome" size=50></td></tr>
<tr> <td><font color="red">Nome:</font></td>
   <td><input type="text" name="nome" size=50></td></tr>
<tr> <td><font color="red">Endereço:</font></td>
   <td><input type="text" name="endereco" size=50></td></tr>
<tr> <td><font color="red">Cidade:</font></td>
   <td><input type="text" name="cidade" size=50></td></tr>
<tr> <td><font color="red">Data de nascimento (dd/mm/yyyy):</font> </td>
   <td><input type="text" name="ddn" size=10></td></tr>
<tr> <td><font color="red">Email/username:</font></td>
   <td><input type="text" name="email" size=50></td></tr>
<tr> <td><input type="submit" value="Submit"></td></tr>
</table></form></body>
</html>
<?php
  } // fecha if
  else {
    include 'error.inc';
    include 'clean.inc';

    $errorString = "";  
    foreach($_POST as $varname => $value)
        $formVars[$varname] = clean($value, 50);  
    if (empty($formVars["nome"])) 
        $errorString .= "\n<br>O campo nome deve ser digitado.";    
    if (empty($formVars["sobrenome"]))
        $errorString .= "\n<br>O campo sobrenome deve ser digitado.";  
    if (empty($formVars["endereco"]))
        $errorString .= "\n<br>Você deve digitar pelo menos uma linha de endereço.";  
    if (empty($formVars["cidade"]))
        $errorString .= "\n<br>O campo cidade é obrigatório.";  
    if (empty($formVars["ddn"]))
        $errorString .= "\n<br>Você deve prencher sua data de nascimento.";  
    elseif (!ereg("^([0-9]{2})/([0-9]{2})/([0-9]{4})$", $formVars["ddn"], $partes))
        $errorString .= "\n<br>A data não está no formato correto: DD/MM/YYYY";  
    if (empty($formVars["email"])) 
        $errorString .= "\n<br>O campo email é obrigatório.";  
    if (!empty($errorString))
    {
      // Há erros. Mostrar e sair.
?>
     <html>
     <head><title>Erro no cadastramento</title></head>
     <body bgcolor="white">  
     <h1>Erro no Cadastramento</h1>
     <?=$errorString?>
     <br><a href="slide_p22.php">Retornar para o form</a>
     </body>
     </html>
<?php      
      exit;
    }

Não rodei aqui pra pegar tudo no detalhe mas, se você prestar atenção, vai ver que não é só o title que está repetido, mas sim a página inteira (tags html, head, body, e etc).

Mas o grande porém é tem um if nessa página, que a divide basicamente em duas. A ideia é que, dependendo dos parâmetros, uma ou outra parte será renderizada. Assim, na página gerada só vai ter 1 title, 1 body, 1 header, etc. Você vai ver que, depois de executada, só vai ter 1 desses na página (execute o formulário e veja o fonte com Ctrl+U).

Isso é só uma variável que é usada abaixo para concatenar as mensagens de erro, e exibi-las todas juntas. Veja abaixo as várias linhas com if e concatenações ( $errorString .= "… )

Abraço.

1 curtida

O que está nesse código pode, mas, é totalmente desnecessário e tem alternativas melhores, ou seja, é o código funcional mas, o não ideal.
$errorString é a variável que acumula os erros da tela e por ela que é tomada a decisão para o seu código html.

1 curtida

Obrigado pela ajuda galera. eu não tinha percebido que o
<head><title>Erro no cadastramento</title></head>
estava dentro da condição else para amostrar os erros.

Quanto ao <?=$errorString?>, eu sei que é a variavel que mostra todos os erros no preenchimento do formulário.
O que eu não entendi foi o que está entre a variável ("<?=" e "?>") que eu ainda não tinha visto e não entendi. Ele funciona como um “echo” só que no html?
É o que estou supondo.

@Dragoon qual alternativa que me recomendaria?

Somente um html e dentro tomando decisão com PHP …

1 curtida

Obg