我正在使用oops在php中开发一个登录系统。 我无法将连接传递给查询,因此查询未处理。
下面是文件: 的config.php
<?php
define("DB_HOST",'localhost');
define("DB_USER",'root');
define("DB_PASSWORD",'');
define("DB_DATABASE",'admin_safeplace');
?>
dbConnect.php ---&gt;用于数据库连接
<?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 ---&gt;用于各种功能
<?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()function.can中将$ conn ie连接传递给查询 ?
答案 0 :(得分:-1)
如果您开始使用OOPS,最好使用PDO库连接数据库并获取功能齐全的SQL数据库概念,如预处理语句,存储过程,事务等。
创建一个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');
}
?>
创建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;
}
}
}
?>
使用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>";
}
?>