George Irimiciuc
George Irimiciuc

Reputation: 4633

Checking front and backend

Let's say that I have a text input that I don't want to be empty. I can check it through Js and tell the user a message.

As much as I've heard, this isn't very secure and we should check in the backend, too. My question is, if I check that the field is empty through PhP, wouldn't the message that I tell the user from PhP overlap the Js one?

Upvotes: 0

Views: 655

Answers (1)

Melvin Koopmans
Melvin Koopmans

Reputation: 3050

No it won't overlap eachother. The reason you will have to validate it backend too is because if you disable JavaScript those frontend validations won't work.

I will give you an example, using the jQuery Validation Plugin.

Lets say we have the following HTML:

<form id="myform">
    <input type="text" name="field1" />
    <input type="text" name="field2" />
    <input type="submit" />
    <?php $error ? $error : '' ?>
</form>

And the following jQuery:

$(document).ready(function () {

    $('#myform').validate({ // initialize the plugin
        rules: {
            field1: {
                required: true,
                email: true
            },
            field2: {
                required: true,
                minlength: 5
            }
        }
    });

});

And the following PHP:

$field1 = $_POST['field1'];
$field2 = $_POST['field2'];

// Validate if fields are matching requirements

if (// Validation fails) 
{
    $error = 'Some fields are invalid';
}

This is some really poor validation but it's an example.

So this way if the JavaScript does not get executed, PHP will return $error with the error messages.

If you don't know what $error ? $error : '' means, it an equivalent of:

if ($error) {
    echo $error;
} else {
    echo '';
}

Hope this helps you.

Upvotes: 1

Related Questions