function authorization_user($connect){
session_start();
$username = $_POST['login'];
$password = $_POST['password'];
if(isset($_POST['submit'])){
$query = "SELECT * FROM users WHERE login = '$username' AND password = '$password'";
$sql = mysqli_query($connect, $query);
if(mysqli_num_rows($sql) > 0){
$_SESSION['user'] = $username;
header('Location: pages/profile.php');
exit();
} else {
die('Fuck you!');
}
}
}
<form method="post">
<div class="form-group" style="margin-bottom:5px;">
<input type="text" class="form-control" placeholder="Логин:" name="login" required><br>
<input type="password" class="form-control" placeholder="Пароль:" name="password" required><br>
<button type="submit" class="btn btn-primary" name="submit" style="float:right;">Войти</button>
</div>
</form>
$db = db_connect();
$query = "SELECT attempts_number FROM registration_verification_codes WHERE phone = ? ORDER BY time DESC";
$stmt = $db->prepare($query);
$stmt->bind_param("i", $phone);
$stmt->bind_result($attempts_number);
if (!$stmt->execute())
{
throw new Exception('STMT ERROR: ' . $stmt->error, 3);
}
$stmt->fetch();
if($attempts_number >=5 ){
$answer["status"] = "OK";
$answer["message"] = 'verification code attempts number has exceeded';
$answer["verification_code_attempts_number_has_exceeded"] = true;
$answer["verification_code_expired"] = true;
http_response_code(200);
echo json_encode($answer);
exit;
}
$stmt->close();
function db_connect(){
$db = new mysqli("localhost", "root", "password", "database");
return $db;
}
class DB
{
/**
* @var DB
*/
static $_instance;
/**
* @var false|\mysqli
*/
protected $connection;
/**
* DB constructor.
*/
public function __construct()
{
$database = "DB";
$host = "host";
$user = "user";
$pass = "pass";
$this->connection = mysqli_connect($host, $user, $pass, $database);
}
/**
* @return DB
*/
static function Instance()
{
if (!self::$_instance instanceof DB) self::$_instance = new self();
return self::$_instance;
}
/**
* @return false|\mysqli
*/
public function Conn(){
return $this->connection;
}
}
//Using
$connection = DB::Instance()->Conn()
Если singleton используется как глобальная переменная, он ничем не лучше глобальной переменной.
Даже не так. Он и есть глобальная переменная, равно как и конструкция do… break является goto.
Синтаксический сахар не должен отвлекать от сути явления.