Я создаю страницу регистрации / регистрации в PHP, поэтому я создаю класс class.register.php
так как я впервые реализую полный путь к классам в PHP, а также использую PDO
. Подскажите пожалуйста, как сделать достойный класс с оптимизированным способом. Ниже мой класс:
class.register.php
class registration
{
private $_confirm = 0;
public $post_data = array();
private $db;
protected $db_name ='db_movies';
protected $db_user = 'root';
protected $db_pass ='keshav';
function __construct($post_data)
{
$this->post_data = array_map('trim',$post_data);
$this->db_connect();
return $this->post_data;
}
protected function db_connect()
{
try {
$this->db = new PDO("mysql:host=localhost;dbname=$this->db_name", $this->db_user, $this->db_pass);
return $this->db;
}
catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
}
public function setPostIntoSession()
{
return $_SESSION['post_data']=$this->post_data;
}
public function checkEmailInDB()
{
$stmt = $this->db->prepare("SELECT COUNT(*) FROM tbl_user WHERE email_address = :email");
$stmt->bindParam(':email',$this->post_data['email_address'],PDO::PARAM_STR);
$stmt->execute();
$result = $stmt->fetchColumn();
return $result;
}
public function insertIntoDB()
{
$qry = "INSERT INTO tbl_user SET
email_address = :email,
first_name = :first_name,
middle_initial = :middle_name,
last_name = :last_name,
title =:title,
organization = : organization,
primary_phone =:primary_phone,
secondary_phone =:secondary_phone,
website =:website,
how_found =:found ";
$stmt = $this->db->prepare($qry);
$stmt->bindParam(':email',$this->post_data['email_address'],PDO::PARAM_STR);
$stmt->bindParam(':first_name',$this->post_data['first_name'],PDO::PARAM_STR);
$stmt->bindParam(':middle_name',$this->post_data['middle_initial'],PDO::PARAM_STR);
$stmt->bindParam(':last_name',$this->post_data['last_name'],PDO::PARAM_STR);
$stmt->bindParam(':title',$this->post_data['title'],PDO::PARAM_STR);
$stmt->bindParam(':organization',$this->post_data['organization'],PDO::PARAM_STR);
$stmt->bindParam(':primary_phone',$this->post_data['primary_phone'],PDO::PARAM_STR);
$stmt->bindParam(':secondary_phone',$this->post_data['secondary_phone'],PDO::PARAM_STR);
$stmt->bindParam(':website',$this->post_data['website'],PDO::PARAM_STR);
$stmt->bindParam(':found',$this->post_data['how_found'],PDO::PARAM_STR);
return $stmt->execute();
}
}
здесь я использую вышеупомянутый класс
signup.php
<?php ob_start(); session_start();
include_once ('includes/class.register.php');
$register = new registration($_POST);
$fine = true;
$register->setPostIntoSession();
//echo "<pre>";
//print_r($register);
if(count($_POST)>0){
if($register->checkEmailInDB())
{
echo $_SESSION['error'] ='Sorry,given e-mail address already exists.';
$fine = false;
}
if ($register->post_data['pswd'] !== $register->post_data['confirm_pswd'])
{
echo $_SESSION['error'] ='Sorry,both password are not matching';
$fine = false;
}
else
{
$register->insertIntoDB();
}
}
if($fine == false )
{
//header("location:signup.php");
//exit();
}
else
{
echo "All izz Well";
}
//$register->watch($register);
?>
Я думаю, что делаю это очень долго, пожалуйста, предложите мне, какую функцию я должен реализовать в классе.