2016-08-27 3 views
2

ここで入力番号が間違っていると、optverify.php用のコードですerror.itsに間違ったotpのエラーを与えるはずですが、私にこの問題を解決するためにPHPでmysqlから6桁のotpを確認するには

<?php 
// Create a unique instance of your session variables 
session_start(); 
if(isset($_SESSION['usr_id'])) 
     { 
      $uid=$_SESSION['usr_id']; 
     } else { 

      header("Location:login.php"); 
     } 
require_once 'include/DB_Functions.php'; 
    $db = new DB_Functions(); 

if (isset($_POST['verifyotp'])) { 
    $otpsms = $_POST['smsotp']; 
    $otpemail = $_POST['emailotp']; 

    $user = $db->verifyotp($uid); 
    if($user){ 
     $user['smsotp'] = $otpsms; 
     $user['emailotp'] = $otpemail; 

    header("Location:index.php"); 

    } else { 

     $errormsg = "Invalid otp"; 
    } 

} 

?> 

およびデータベース機能のための私のコードは

public function verifyotp($uid){ 
     $stmt = $this->con->prepare("SELECT uid,smsotp,emailotp FROM users WHERE uid = '$uid'"); 
     $stmt->bind_param("i", $uid); 
     if ($stmt->execute()) { 

      $stmt->bind_result($uid,$smsotp,$emailotp); 
      $stmt->fetch(); 
      $user = array(); 
      $user["uid"] = $uid; 
      $user["smsotp"] = $smsotp; 
      $user["emailotp"] = $emailotp; 
      $stmt->close(); 
      return $user; 
    } else 

    { 
     return $stmt; 
    } 

    } 
+0

verifyotp($ uid、$ utp)のようにverifyotp($ uid、$ otp)のような関数に2つの引数を渡すことができます。 –

+0

私は例を提供することができます私はそれを行うために少し混乱しています –

+0

その同じことが起こっていない無効なotpでエラーを与えていない –

答えて

0

テストしたが、これは動作するはずない下回っています!これがうまくいかない場合は私に教えてください。この回答は削除されます。

更新

変更するには、この$user = $db->verifyotp($uid);あなたは3つのパラメータ(1)ID(2)smsotp(3)emailotpをテストするために喜んでいる場合は、以下のようなあなたの機能を変更し、その後

$user = $db->verifyotp($uid, $otpsms, $otpemail);へ。

public function verifyotp($uid, $sotp, $eotp){ 
     $stmt = $this->con->prepare("SELECT uid,smsotp,emailotp FROM users WHERE uid = '$uid' And smsotp='$sotp' And emailotp ='$eotp'"); 
     $stmt->bind_param("i", $uid); 
     if ($stmt->execute()) { 
      $stmt->bind_result($uid,$smsotp,$emailotp); 
      $stmt->fetch(); 
      $user = array(); 
      $user["uid"] = $uid; 
      $user["smsotp"] = $smsotp; 
      $user["emailotp"] = $emailotp; 
      $stmt->close(); 
      return $user; 
    } else 

    { 
     return $stmt; 
    } 

    } 
+0

tsは同じことが起こっていません無効なotpでエラーを与えていません –

+0

私は答えを更新しました。変更はこの行にあります。 '$ user = $ db-> verifyotp($ uid、$ otpsms、$ otpemail);' –

関連する問題