【问题标题】:how to separate php code to html using pdo?如何使用 pdo 将 php 代码分离为 html?
【发布时间】:2015-07-28 07:34:04
【问题描述】:

我有一个名为 index.php 的页面,在该 php 中我有 CRUD 的功能,我的问题是如何将 php 代码分离为 html 并将其放在一个类中..请帮助我..

这是我要分离的 php 和 html 代码

<label class="Land_Type">
        <span>Land Type</span>
                <?php
                    include_once 'dbconfig.php';

                    $sql = "SELECT Land_Type_Name FROM land_type";
                    $stmt = $DB_con->prepare($sql);
                    $stmt->execute();
                    $results = $stmt->fetchAll(PDO::FETCH_ASSOC);

                        if ($stmt->rowCount() > 0)
                        {
                ?>
            <select name="Land_Type">
                <option selected="selected" value="">---</option>
                    <?php
                        foreach ($results as $row)
                        {
                    ?>
                <option value="<?php echo $row['Land_Type_Name']; ?>"><?php echo $row['Land_Type_Name']; ?></option>
                <?php
                    }
                ?>
            </select>
                <?php
                    }
                ?>
    </label>

这是我的课

<?php

class crud
{
private $db;

function __construct($DB_con)
{
$this->db = $DB_con;
}
public function login($uname,$upass)
{
try
{
  $stmt = $this->db->prepare("SELECT * FROM users WHERE user_name=:uname LIMIT 1");
  $stmt->execute(array(':uname'=>$uname));
  $userRow=$stmt->fetch(PDO::FETCH_ASSOC);

    if($stmt->rowCount() > 0)
    {
    if(password_verify($upass, $userRow['user_pass']))
    {
      $_SESSION['user_session'] = $userRow['user_id'];
      return true;
    }
    else
    {
      return false;
    }
   }
  }
    catch(PDOException $e)
  {
    echo $e->getMessage();
   }
  }

  public function is_loggedin()
    {
    if(isset($_SESSION['user_session']))
    {
    return true;
    }
  }

【问题讨论】:

  • 看看MVC模式

标签: php pdo


【解决方案1】:

使用 MVC(模型-视图-控制器)之类的设计模式/架构 在 Internet 和 SO 上可以找到很多关于此的信息。查看this questionthis one 以获得良好的开端。

关于将 PHP 与 HTML 分开:最简单的方法是使用现有的模板引擎。 Smarty 是一个非常受欢迎且易于使用的。

重要的是分离你的业务逻辑。一个类应该只有一个职责,称为single responsibility principle。在您的示例中,您的数据库类正在做两件事:它包含数据库逻辑(执行查询)和处理您的登录系统。您应该尝试将它们分开。

这些事情一开始可能会很混乱。我的建议是使用 MVC 框架(许多 PHP 框架,例如 codeigniter、cakephp...)来理解这些概念。

【讨论】:

    猜你喜欢
    • 2011-05-06
    • 2012-07-31
    • 1970-01-01
    • 2021-10-03
    • 2012-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多