2016-05-05 4 views
-1

私はoopsを使ってPHPでログインシステムを開発しています。 クエリに接続を渡すことができないため、クエリは処理されません。以下ooops login sysytem in php

ファイルです:config.phpの

<?php 

define("DB_HOST",'localhost'); 
define("DB_USER",'root'); 
define("DB_PASSWORD",''); 
define("DB_DATABASE",'admin_safeplace'); 


?> 

dbConnect.php --->データベース接続

<?php 

class dbConnect 
{ 

    public $conn; 
    function __construct() 
    { 

     //Initialize connection to database 
     require_once('config.php'); 
     $this->conn=mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_DATABASE); 
     if(!$this->conn) 
     { 
     die('Cannot connect to the database');  

     } 
     return $this->conn; 

    } 



} 

?> 

ためdbFunction.php --->

様々な機能について
<?php 
require_once('dbConnect.php'); 
session_start(); 
class dbFunction 
{ 

    function __construct() 
    { 
     //Connecting to the database 
     $db=new dbConnect();  


    } 
    function login($email,$password) //Login Function 
    { 

     $pass=md5($password); 
     $sql="Select * from `super_user` where `email`='$email' AND `password`='$pass'"; 
     $res=mysqli_query($db->conn,$sql); 
     $user_data = mysqli_fetch_array($res); 
     $rowCount=mysqli_num_rows($res); 
     if($rowCount==1) 
     { 

      $_SESSION['login']=true; 
      $_SESSION['email']=$user_data['email']; 
      return TRUE; 


     } 

     else 

     { 

     return FALSE; 

     } 


    } 



} 



?> 

ログインページコード:

<!--Login Code--> 
<?php 

$funObj = new dbFunction(); 
    if(isset($_POST['submit'])) 
    { 
     $email = $_POST['email']; 
     $password = $_POST['password']; 
     $user = $funObj->login($email, $password); 
     if ($user) 
     { 
      // Login Success 
      header("location:list_users.php"); 
     } 
     else 
     { 
      // Login Failed 
      echo "<script>alert('Emailid/Password Not Match')</script>"; 
     } 


    } 
?> 

login()関数のクエリに$ connすなわちクエリを渡すにはどうすればいいですか?誰でも助けてください ?

+0

あなたは、例えば、プロパティとして接続を設定します'$ this-> db = new dbConnect;'と同じ方法でアクセスします。 –

+0

それでも私にmysqli_query()はパラメータ1がmysqliであることを期待しています.19行目のC:\ xampp \ htdocs \ admin_safe_place \ dbFunction.phpにあるオブジェクト –

+1

接続はdbConnectのプロパティで定義されているためです。実際の接続には '$ this-> db-> conn'があります。 –

答えて

-1

あなたはメイクデータベースを接続して、このような準備された文、ストアドprocsの、取引など

  1. として十分な機能をSQLデータベースの概念をつかむためにPDOライブラリを使用するOOPS、その良い使用を開始している場合あなたが作成したようにconfig.phpが、変更

    <?php 
        define("DB_HOST",'localhost'); 
        define("DB_USER",'root'); 
        define("DB_PASSWORD",''); 
        define("DB_DATABASE",'admin_safeplace'); 
        try { 
         $pdo = new PDO('mysql:host='. DB_HOST .';dbname='.DB_DATABASE, DB_USER, DB_PASSWORD); 
        } catch (PDOException $e) { 
         exit('Error Connecting To DataBase'); 
        } 
    ?> 
    
  2. を次のようなとしては、スニペットのコードをfollwingとしてdbfunction.php作成します。

    <?php 
        require_once('config.php'); 
    
        class dbFunction { 
         function __construct($pdo) { 
          $this->pdo = $pdo; 
         } 
    
         function login($email,$password) { //Login Function 
          $pass=md5($password); 
          $sql="Select * from `super_user` where `email`='$email' AND `password`='$pass'"; 
          $res=$this->pdo->prepare($sql); 
          $query->execute(); 
          $query->fetchAll(); 
          $rowcount = $query->rowCount(); 
    
          if($rowCount==1) { 
           $_SESSION['login']=true; 
           $_SESSION['email']=$user_data['email']; 
    
           return TRUE; 
          } else { 
           return FALSE; 
          } 
         } 
        } 
    ?> 
    
  3. は、HTMLを使用してloginscreen.phpを作成し、そのPHPコードは以下のようにログイン資格情報をチェックすることです。

    <?php 
        $db = new dbFunction($pdo); 
        // Get the form data as in your case email and password 
        $email = $_POST['email']; 
        $password = $_POST['password']; 
        $user = $db->login($email, $password); 
    
        if($user) { // Login Success 
         header("location:list_users.php"); 
        } else { // Login Failed 
         echo "<script>alert('Email id/Password Not Match')</script>"; 
        } 
    ?>