0

Hi I am trying to validate a simple HTML form. Here is my HTML code-

<HTML>
    <body>
        <form method="get" action="password.php">
        User ID<input type="text" name="user" id="user" required/><br/>
        Password<input type="password" name="pass" id="pass" required/><br/>
        <input type="submit" value"Login Here">
        </form>
    </body>
    </html>

The password must contain only digits. My password.php is-

<?php
    $name=$_GET['user'];
    $pass=$_GET['pass'];

    $strlen1= strlen($name);
    $strlen2= strlen($pass);

    $regex= "/^[789][0-9]{9}$/";   // my password should contain digits only.

    if($strlen1==0 | $strlen2==0)   
        {
            echo 'Username or password field is empty'.'<br/>';
        }

    else if($name==$pass)
        {
            echo 'Go for a better password'.'<br/>';
        }

    else if(!preg_match($regex,$pass))
        {
            echo 'password is invalid'.'<br/>';
        }

    else
        {
            echo 'You have successfully logged in'.'<br/>';
        }

    ?>

On running the script even when I enter the valid password like-"123456" the message says- "password is invalid". Please let me know the mistake in above code. Thanks!!!

1
  • 1
    Your regex ^[789][0-9]{9}$ requires the password to start with 7, 8 or 9 followed by exactly 9 digits. Change it to ^\d+$ to accept any amount of digits or such as ^\d{6,}$ for at least 6 digits. Commented Aug 31, 2014 at 8:57

1 Answer 1

1

Your password should begin with any of 7, 8, 9 and followed by 9 digits

$regex= "/^[789][0-9]{9}$/";

to filter digits only replace it with:

$regex="/^\d+$/";
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.