• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

catarino

Formulario com validação

7 mensagens neste tópico

olá

Comecei recente mente a aprender php

estou a fazer um formulário com validação

encontrei na internet um que me parece bastante bom

mas não está a funcionar

já estou de roda do formulário à 3 dias

no mesmo local que o fui buscar referem que funciona

será alguma coisa no servidor??

o erro que aparece quando acedo ao formulario.html é:

"); } else { print(""); } } function show_form() { global $HTTP_POST_VARS, $print_again, $error; ?>
Name Email
">
">

"; } if(!check_email_address($_POST['email'])) { $error['email'] = true; $print_again = true; $message.="Either Field Empty or Invalid Email ID
"; } if($print_again) { show_form(); } else { show_form(); $message="All Fields are valid
Now, In this way you can validate the other textfield as well
You can insert data into table"; } echo "$message"; } ?> 

aqui fica o código

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Form Validation</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?
function error_bool($error, $field) {
         if($error[$field]) {
             print("<td style=color:red>");
         }
        else {
            print("<td>");
        }
    }

function show_form() {
global $HTTP_POST_VARS, $print_again, $error;
?>

<form action="" method="post">
  <table width="400" border="1" cellspacing="0" cellpadding="0">
    <tr>
     <?php error_bool($error, "name"); ?> Name </td>
      <td><input name="name" type="text" id="name" value="<? echo $_POST["name"]; ?>"></td>
    </tr>
    <tr>
      <?php error_bool($error, "email"); ?> Email </td>
      <td><input name="email" type="text" id="email" value="<? echo $_POST["email"]; ?>"></td>
    </tr>

    <tr>
      <td><input type="submit" name="Submit" value="Submit"></td>
      <td> </td>
    </tr>
  </table>
</form>
<?
}
if(isset($_POST["Submit"])) {
    check_form();
} else {
    show_form();
}

function check_email_address($email) {
  // First, we check that there's one @ symbol, and that the lengths are right
  if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) {
    // Email invalid because wrong number of characters in one section, or wrong number of @ symbols.
    return false;
  }
  // Split it into sections to make life easier
  $email_array = explode("@", $email);
  $local_array = explode(".", $email_array[0]);
  for ($i = 0; $i < sizeof($local_array); $i++) {
     if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $local_array[$i])) {
      return false;
    }
  }
  if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) { // Check if domain is IP. If not, it should be valid domain name
    $domain_array = explode(".", $email_array[1]);
    if (sizeof($domain_array) < 2) {
        return false; // Not enough parts to domain
    }
    for ($i = 0; $i < sizeof($domain_array); $i++) {
      if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", $domain_array[$i])) {
        return false;
      }
    }
  }
  return true;
}


function check_form()
{
global $HTTP_POST_VARS, $error, $print_again;
$error['name'] = false;
    if($_POST["name"]=="") {
        $error['name'] = true;
         $print_again = true;
        $message="The name field is empty<br>";
    }
    if(!check_email_address($_POST['email'])) {
        $error['email'] = true;
         $print_again = true;
        $message.="Either Field Empty or Invalid Email ID <br>";
    }
     if($print_again) {
         show_form();
       
       } else {
        show_form();
           $message="All Fields are valid <br>
        Now, In this way you can validate the other textfield as well<br>
        You can insert data into table";
       }
  echo "$message";
}

?>

</body>
</html>

----

fnds | Usa o geshituto :confused:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o erro que aparece quando acedo ao formulario.html é:

O ficheiro "tem" ter a extenção .php.
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá

fnds

obrigado pela rápida resposta

com a extensão .php

dá-me o seguinte erro

"); } else { print(""); } } function show_form() { global $HTTP_POST_VARS, $print_again, $error; ?>
Fatal error: Call to undefined function error_bool() in /srv/www/htdocs/inserir2.php on line 26

fnds

obrigado pela dica do GeSHi

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

parece-me que estás a por isso num servidor sem suporte para php.

Faz o seguinte: cria um ficheiro chamado teste.php e coloca lá isto:

<?php

phpinfo();

?>

e vê lá se te aparece uma carrada de informação ou se fica tudo em branco.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá a todos

O formulário já funciona

Venho agradecer a disponibilidade de todos

Como afirmaram a resolução passava por um dos seguintes procedimentos

1

alterar as configurações do php.ini e habilitar a opção short_open_tag.

2

Usar

<?php ?>

em vez de

<? ?>

Optei pela segunda opção.

Cumprimentos

Catarino

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora