A One Time Password (OTP) is a very popular way to use online transactions. It is used for real-time banking and monetary transactions. The following procedure is used by the OTP:
- Check email, phone number and user ID.
- You can change or reset user profile information.
- Real-time transaction authentication.
- Check the validation of the email and mobile number.
Create a One Time Password (OTP) in PHP
- Step 1
Create the file otppass.php with the following code:
- <?php
-
-
- session_start();
-
- session_set_cookie_params(360);
-
-
-
- $user = array(
- 'user1' => annat,
- 'scott' => tiger,
- ‘anat’ => xxxxxxx,
- );
-
- $phone = array(
- 'user1' => '+5353535333,
- 'scott' => '+44243535353,
- anat’ => '+23554444444,
- );
-
-
- $anant_user = "admin";
- $anant_password = "abc123";
- $anant_url = "http://127.0.0.1:9501/api?";
-
-
-
- function httpRequest($url){
- $pattern = "/http...([0-9a-zA-Z-.]*).([0-9]*).(.*)/";
- preg_match($pattern,$url,$args);
- $in = "";
- $fp = fsockopen("$args[1]", $args[2], $errno, $errstr, 30);
- if (!$fp) {
- return("$errstr ($errno)");
- } else {
- $out = "GET /$args[3] HTTP/1.1\r\n";
- $out .= "Host: $args[1]:$args[2]\r\n";
- $out .= "User-agent: anant PHP client\r\n";
- $out .= "Accept: */*\r\n";
- $out .= "Connection: Close\r\n\r\n";
-
- fwrite($fp, $out);
- while (!feof($fp)) {
- $in.=fgets($fp, 128);
- }
- }
- fclose($fp);
- return($in);
- }
-
- function anantSend($phone, $msg, $debug=false){
- global $anant_user,$anant_password,$anant_url;
- $url = 'username='.$anant_user;
- $url.= '&password='.$anant_password;
- $url.= '&action=sendmessage';
- $url.= '&messagetype=SMS:TEXT';
- $url.= '&recipient='.urlencode($phone);
- $url.= '&messagedata='.urlencode($msg);
-
- $urltouse = $anant_url.$url;
-
-
-
- $response = httpRequest($urltouse);
- if ($debug) {
- echo "Response: <br><pre>".
- str_replace(array("<",">"),array("<",">"),$response).
- "</pre><br>"; }
- return($response);
- }
-
-
-
- function anantOTP($length = 8, $chars = 'abcdefghijklmnopqrstuvwxyz1234567890')
- {
- $chars_length = (strlen($chars) - 1);
- $string = $chars{rand(0, $chars_length)};
- for ($i = 1; $i < $length; $i = strlen($string))
- {
- $r = $chars{rand(0, $chars_length)};
- if ($r != $string{$i - 1}) $string .= $r;
- }
- return $string;}
-
-
-
- $debug = false;
-
-
- if (emptyempty($_POST)){
- $i=0;
- echo('
- <html>
- <body>
- <h1>One Time Password Form</h1>
- <form method="POST">
- <table border=1>
- <tr>
- <td>Username:</td>
- <td><input type="text" name="username"></td>
- </tr>
- <tr>
- <td>Password</td>
- <td><input type="password" name="password"></textarea></td>
- </tr>
- <tr>
- <td> </td>
- <td><input type=submit name=submit value="Get Otp" OnClick="anantSend(this.form);"></td>
- </tr>
- </table>
- </form>
- </body>
- </html>');}
-
-
- if (emptyempty($_POST['otphtml'])){
- $_SESSION['otp']=anantOTP();
-
-
-
- if ($password!=$user[$username] || ((emptyempty($_POST['username']) && (!emptyempty($_POST['password'])))) || (emptyempty($_POST['password']) && (!emptyempty($_POST['username']))))
- echo ('Please enter a valid username or password!');
- elseif ((!emptyempty($_POST['submit'])) && (emptyempty($_POST['password'])) && (emptyempty($_POST['username'])))
- echo ('No username or password entered');
-
- elseif($password=$user[$username]){
-
-
- anantSend($phone[$_POST['username']],'Dear '.$username.'! Your One-Time password is: '.$_SESSION['otp'],$debug);
- echo (' <html>
- <body>
- <h1>Please enter your One-Time password to enter the site!</h1>
- <form method="POST">
- <table border=1>
- <tr>
- <td>Your One-time password:</td>
- <td><input type="text" name="otphtml"></td>
- </tr>
- <tr>
- <td> </td>
- <td><input type=submit name=submit value="Confirm OTP"></td>
- </tr>
- </table>
- </form>
- </body>
- </html>');
- }}
- else{
-
-
- $otp1=$_POST['otphtml'];
- include('protectedcontent.php');}
-
- ?>
- Step 2
Create another file protectedcontent.php.
- <?php
-
- if ($_SESSION['otp']==$otp1){
- echo('<html>
- <body><h2>You\'ve been successfully verified your One-Time Password</h2></body>
- </html>');}
-
- else { echo('<html>
- <body><h2>Wrong Password!</h2></body>
- </html>');}
-
- ?>