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

Sign in to follow this  
catarino

Formulario com validação

Recommended Posts

catarino

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:

Share this post


Link to post
Share on other sites
catarino

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

Share this post


Link to post
Share on other sites
pedrotuga

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.

Share this post


Link to post
Share on other sites
catarino

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.