Jump to content

Validation


Lee-Bartlett

Recommended Posts

I am brand new to java script and im not really sure completly how it all works, but i wanna do a simple email validation, worked in with my php form. Heres the code, where am i going wrong?

 

<?php
if(isset($_POST['button'])) {

//db connection
require_once("includes/db_connection.php"); 
//end of db connection 

  // db table connection
  include("includes/form.php"); 
   //end of db table connection 
   }
	   


?>
<html>
<head>

<script type="text/javascript">
function validate_email(email,alerttxt)
{
with (email)
{
apos=value.indexOf("@");
dotpos=value.lastIndexOf(".");
if (apos<1||dotpos-apos<2) 
  {alert(alerttxt);return false;}
else {return true;}
}
}

function validate_form(thisform)
{
with (thisform)
{
if (validate_email(email,"Not a valid e-mail address!")==false)
  {email.focus();return false;}
}
}

</script>





<title></title>
<style type="text/css">
<!--
.style1 {
font-size: 36px;
color: #FFFFFF;
}
-->
</style>
</head>

<body>
<table width="617" border="1" align="center" cellpadding="5" cellspacing="0" bordercolor="#000000">
  <tr>
    <td colspan="2" bgcolor="#0099FF"><p> </p>
    <p align="center" class="style1">Nexodom.com</p>      
    <p> </p></td>
  </tr>
  <tr>
    <td width="129" height="318" align="left" valign="top"><p><a href="index.html">Home</a><br>
        <a href="wifi.php">WIFI Hot Spots</a></p>
    </td>
    <td width="482" align="left" valign="top"><p align="center">Welcome to nexodom.com</p>
    


  
<form name="form" method="post" action="includes/form.php"> 
  <input type="hidden" name="redirect" value="home.php"> 
  <table width="418" align="left" cellpadding="0" cellspacing="0">
    <tr>
      <td width="157"> Name:</td>
      <td width="259"><label for="name"></label>
      <input type="text" name="name" id="name"></td>
    </tr>
    <tr>
      <td>Email:</td>
      <td><label for="email"></label>
      <input type="text" name="email" id="email"></td>
    </tr>
    <tr>
      <td>WiFi Business Name:</td>
      <td><label for="buissnes_name"></label>
      <input type="text" name="buissnes_name" id="buissnes_name"></td>
    </tr>
    <tr>
      <td>WiFi Location;</td>
      <td><label for="textfield"></label>
      <input type="text" name="location" id="location"></td>
    </tr>
    <tr>
      <td>Free or Paid:</td>
      <td>Free<input type="radio" name="type" id="type" value="free">
      <label for="radio"></label>
      Paid<input type="radio" name="type" id="type" value="paid">
      <label for="radio2"></label></td>
    </tr>
    <tr>
      <td> </td>
      <td><label for="button"></label>
      <input type="submit" name="button" id="button" value="Submit">
      <label for="button2"></label>
      <input type="reset" name="button2" id="button2" value="Reset">       
      <label for="sub"></label></td>
    </tr>
  </table>
</form>





    
    <p> </p>
    <p> </p>
    <p> </p>
    <p> </p>
    <p> </p></td>
  </tr>
  <tr>
    <td height="20" colspan="2" bgcolor="#0099FF"> </td>
  </tr>
</table>
</body>
</html>

<?php mysql_close ?> 

Link to comment
Share on other sites

Using Javascript validation for form input is a really bad idea in my opinion. Here are my reasons:

 

1. Can be easily switched of within the web browser so no user data gets validated leaving a gaping security hole, especially if the input is used with database queries (see SQL injection)

2. If your form sends out email after processing input a bot can easily be written (bots do not parse javascript) to create outbound spam from your server.

Link to comment
Share on other sites

Using Javascript validation for form input is a really bad idea...

 

Yes and no. To solely rely on JavaScript is a bad idea for the reasons provided; however, many users will prefer to be warned of faulty data before they have to leave the page, so using some JavaScript validation in conjunction with PHP validation on the receiving end is definitely a good idea.

 

Now, in answer to the original post, I don't see where you are actually calling the validation on submit. You have the validate_form and validate_email functions defined, but you never attach the validation to the form submit event. The easiest way to do this is to call your function in the onsubmit attribute of the form tag. Remember that if you return FALSE from an onsubmit, the form will not process:

<script type="text/javascript">
function my_simple_validation (field)
{
  if (field.value == '')
  {
    alert('You must fill in required fields!');
    return false; // This is where you tell the form not to submit
  }

  return true; // if we pass, submit the form
}
</script>

<form name="my_form" action="process.php" method="post" onsubmit="return my_simple_validation(this.email);">
...

 

Obviously, this is generic code, but it should give you the principles needed.

 

Good luck!

Link to comment
Share on other sites

Sorry im a complete novice, i cant see where my other validation, for name, if empty i want it to return anything to let me know its working, this is my script so far.

 

<script type="text/javascript">


function validate_required(name,alerttxt)
{
with (name)
{
  if (name==null||name=="")
  {
  alert(alerttxt);return false;
  }
  else
  {
  return true;
  }
}
}



function validate_email(email,alerttxt)
{
with (email)
{
apos=value.indexOf("@");
dotpos=value.lastIndexOf(".");
if (apos<1||dotpos-apos<2) 
  {alert(alerttxt);return false;}
else {return true;}
}
}

function validate_form(thisform)
{
with (thisform)
{
if (validate_email(email,"Not a valid e-mail address!")==false)
  {email.focus();return false;}
}
}
function my_simple_validation (email)
{
  if (email.value == '')
  {
    alert('You must fill in required fields!');
    return false; // This is where you tell the form not to submit
  }

  return true; // if we pass, submit the form
}
</script>

<form name="my_form" action="includes/form.php" method="post" onsubmit="return my_simple_validation(this.email);">

</script>

Link to comment
Share on other sites

Now i tried this, move few stuff about, the @ still isnt validating, and i cant get the name to if blank say a message.

 

<?php


//db connection
require_once("includes/db_connection.php"); 
//end of db connection 

?>
<html>
<head>
<script type="text/javascript">
function validate_required(name,alerttxt)
{
        with (name)
        {
                if (value=="")
                {
                        alert(alerttxt);
                        return false;
                }
                else
                {
                        return true;
                }
        }
} 
function validate_email(email,alerttxt)
{
        with (email)
        {
                apos=value.indexOf("@");
                dotpos=value.lastIndexOf(".");
                if (apos<1||dotpos-apos<2)
                {
                        alert(alerttxt);
                        return false;
                }
                else
                {
                        return true;
                }
        }
}

function validate_form(thisform)
{
        with (thisform)
        {
                if (validate_required(email,"Email is a required field")==false)
                {
                        email.focus();
                        return false;
                }
                else if (validate_email(email,"Not a valid e-mail address!")==false)
                {
                        email.focus();
                        return false;
                }
                else if (validate_required(name,"Name is a required field")==false)
                {
                        email.focus();
                        return false;
                }
        }
return true;
} 
function my_simple_validation (email)
{
        if (email.value == '')
        {
                alert('You must fill in required fields!');
        return false; // This is where you tell the form not to submit
        }

return true; // if we pass, submit the form
}
</script>
<?php

if(isset($_POST['button'])) 
{
  
// db table connection
include("includes/form.php"); 
//end of db table connection 

}
?>
<title></title>
<style type="text/css">
<!--
.style1 {
font-size: 36px;
color: #FFFFFF;
}
-->
</style>
</head>

<body>
<form name="form" method="post" action="includes/form.php" onsubmit="return my_simple_validation(this.email);"> 

<table width="617" border="1" align="center" cellpadding="5" cellspacing="0" bordercolor="#000000">
  <tr>
    <td colspan="2" bgcolor="#0099FF"><p> </p>
    <p align="center" class="style1">Nexodom.com</p>      
    <p> </p></td>
  </tr>
  <tr>
    <td width="129" height="318" align="left" valign="top"><p><a href="index.html">Home</a><br>
        <a href="wifi.php">WIFI Hot Spots</a></p>
    </td>
    <td width="482" align="left" valign="top"><p align="center">Welcome to nexodom.com</p>
    


  
  <input type="hidden" name="redirect" value="home.php"> 
  <table width="418" align="left" cellpadding="0" cellspacing="0">
    <tr>
      <td width="157"> Name:</td>
      <td width="259"><label for="name"></label>
      <input type="text" name="name" id="name"></td>
    </tr>
    <tr>
      <td>Email:</td>
      <td><label for="email"></label>
      <input type="text" name="email" id="email"></td>
    </tr>
    <tr>
      <td>WiFi Business Name:</td>
      <td><label for="buissnes_name"></label>
      <input type="text" name="buissnes_name" id="buissnes_name"></td>
    </tr>
    <tr>
      <td>WiFi Location;</td>
      <td><label for="textfield"></label>
      <input type="text" name="location" id="location"></td>
    </tr>
    <tr>
      <td>Free or Paid:</td>
      <td>Free<input type="radio" name="type" id="type" value="free">
      <label for="radio"></label>
      Paid<input type="radio" name="type" id="type" value="paid">
      <label for="radio2"></label></td>
    </tr>
    <tr>
      <td> </td>
      <td><label for="button"></label>
      <input type="submit" name="button" id="button" value="Submit">
      <label for="button2"></label>
      <input type="reset" name="button2" id="button2" value="Reset">       
      <label for="sub"></label></td>
    </tr>
  </table>






    
    <p> </p>
    <p> </p>
    <p> </p>
    <p> </p>
    <p> </p></td>
  </tr>
  <tr>
    <td height="20" colspan="2" bgcolor="#0099FF"> </td>
  </tr>
</table>
</form>
</body>
</html>

<?php mysql_close ?> 

Link to comment
Share on other sites

Here is my email validation script. It returns true if the string is a properly formatted email, else false. It is pretty comprehensive. I have inlcluded the details of the validation below the script

 

function validEmail(emailStr)
{
    //Return true/false for valid/invalid email
    formatTest = /^[-\w+]+(\.[-\w+]+)*@[-a-z\d]{2,}(\.[-a-z\d]{2,})*\.[a-z]{2,6}$/i
    lengthTest = /^(.{1,64})@(.{4,255})$/
    return (formatTest.test(emailStr) && lengthTest.test(emailStr));
}

 

Validation Details:

 

The username:

  • Can contain the following characters: 'a-z', 'A-Z', '0-9', '_' (underscore), '-' (dash), '+' (plus sign), and '.' (period).

  • May not begin or end with a period and they may not appear in succession (i.e. 2 or more in a row)

  • Must be between 1 and 64 characters

The domain name:

  • Can contain the following characters: 'a-z', 'A-Z', '0-9', '-' (dash), and '.' (period).

  • There may be subdomains, separated by a period (.), but the combined domain may not begin with a period and they not appear in succession (i.e. 2 or more in a row)

  • The 'combined' domain name must be followed by a period and the TLD (top level domain).

The TLD (Top Level Domain):

  • Can contain the following characters: 'a-z', and 'A-Z'.

  • The TLD must consist of 2-6 alpha characters in either upper or lower case. (6 characters are needed to support .museum).

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

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.