我发现组织是一个混合PHP和HTML的主要问题,它看起来很糟糕,所以我想知道它是否是一个可行的选择来创建一组面向对象的方法,如:
class MainOO {
public $Database;
public function __construct($Server,$User, $Password, $DB){
if ($this->Database = new mysqli($Server,$User,$Password,$DB)){
return true;
}
return false;
}
public function User_Login(){
$Get_Usr_Info = $this->Database->prepare("SELECT ID, Password, Salt FROM Users WHERE Username=?");
$Get_Usr_Info->bind_param('s',$_POST['username']);
$Get_Usr_Info->execute();
$Get_Usr_Info->store_result();
$User_Number = $Get_Usr_Info->num_rows;
$Get_Usr_Info->bind_result($UserID, $Stored_Password, $Stored_Salt);
$Get_Usr_Info->fetch();
$Get_Usr_Info->close();
if ($User_Number !== 1){
$Error = "Wrong Username Specified Or Password Is Incorrect";
header ("Location: index.php?Errors=".urlencode($Error));
exit;
}
// Continue with login script
}
public function Logout(){
if (session_status() !== PHP_SESSION_DISABLED){
session_destroy();
header ("Location: LoggedOut.php");
exit;
}
}
}
然后是HTML方:
<?php
include "MainOO.php";
$MainOO = new MainOO("host","user","password","database");
?>
<div class="example">
<div class="example left">
<?php
$MainOO->User_Login();
?>
</div>
</div>
它仍然在混合PHP&amp; HTML,但它让人看起来比在HTML中间拥有大量PHP更加整洁。
我完全清楚我可以迁移到MVC框架(这个主题看起来像)已经设置,甚至使用像smarty这样的模板引擎,但我想尽可能地避免这种情况。所以这是一个可行的选择,在html中有更整洁的PHP代码吗?
答案 0 :(得分:0)
您可能也想在代码中使用isset() 例如
<?= (isset($variable)) ? $variable : ''; ?>
例如,如果变量isset然后显示它,否则不显示任何内容