0

I am a beginner in php. And I want to know field level validation using php not by javascript or jquery. How to do this?

My incorrect code:

form  method="POST" action="registrationp.php">
<input type="text" name="emailid"><?php session_start(); if(isset($_SESSION['error'])) {echo $_SESSION['error']; } ?></br>
<input type="submit" name="submit_form" value="Register"></form>


session_start();
if (empty($_POST['emailid'])) {
     $emailid ="Please enter your emailid";
      $_SESSION['error']=$emailid;

}

I tried but it is not working.please guide me.

2
Contributors
1
Reply
32
Views
3 Years
Discussion Span
Last Post by cereal
0

Hi,

Your script is almost correct but the session_start() must be in the first line of the script. So, if for example you're doing everything in the same script, you can write it like this:

<?php

    session_start();
    $_SESSION['error'] = null;

    if (empty($_POST['emailid']))
    {
        $emailid = "Please enter your email id";
        $_SESSION['error'] = $emailid;
    }

?>

<form  method="POST" action="">
    <input type="text" name="emailid"><?php if(isset($_SESSION['error'])) { echo $_SESSION['error']; } ?></br>
    <input type="submit" name="submit_form" value="Register">
</form>

The session error is null when the script starts, and if $_POST['emailid'] is empty then is set. If it doesn't start null the next time you submit the form it will always show the error message. You could also unset the error session in a second step, it's up to you.

Next control you can add is a filter to validate the email address, so it can become:

<?php

    session_start();
    $_SESSION['error'] = null;
    $_SESSION['emailaddress'] = null;

    if($_POST) print_r($_POST);

    if (empty($_POST['emailid']))
    {
        $emailid = "Please enter your email id";
        $_SESSION['error'] = $emailid;
    }
    else
    {
        $email = filter_var(trim($_POST['emailid']), FILTER_VALIDATE_EMAIL);

        if($email === false)
        {
            $emailid = "Please enter a valid email address";
            $_SESSION['error'] = $emailid;
        }
        else
        {
            $_SESSION['emailaddress'] = $email;
        }
    }

?>

<form  method="POST" action="">
    <input type="text" name="emailid" <?php if(isset($_SESSION['emailaddress'])) echo "value=\"{$_SESSION['emailaddress']}\""; ?>><?php if(isset($_SESSION['error'])) { echo $_SESSION['error']; } ?></br>
    <input type="submit" name="submit_form" value="Register">
</form>

Note that the validation of the email will fail if there are spaces before or after the email string, so it's important to use the trim() function to remove them.

Documentation:

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.