构建一个处理多个界面的网络应用程序的正确方法是什么


What is the proper way to build a web app that deals with multiple interfaces?

我已经用PHP一年了。我曾经使用一种我认为不适合具有多个接口(web、Android、IOS…)的应用程序的方式来构建我的网站。我只是创建一个html页面或表单,然后用PHP脚本处理输入。这是登录脚本的一个简单示例:

这是登录表单:

<?php
 $error = '';
 if(isset($_GET['error']))
     $error = $_GET['error'];
?>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <link href="dist/css/bootstrap.css" rel="stylesheet">
        <title>Blogmaker Home</title>
    </head>
    <body>
          <div class="container">
          <nav class="navbar navbar-default" role="navigation">
            <!-- Brand and toggle get grouped for better mobile display -->
          <div class="navbar-header">
            <a class="navbar-brand" href="#">BlogMaker</a>
            </div>
            <br><br>
          </nav>
          <!-- Static navbar -->

          <!-- Main component for a primary marketing message or call to action -->
          <div class="row">
              <div class="col-md-8">
                <div class="jumbotron">
                  <h1>BlogMaker</h1>
                  <p>You want to create your blog for free! You can do it right now. 
                      Just click in the "Create My Blog" button below and start posting and receiving comments
                      from other peoples.
                  </p>
                  <p>
                    <a class="btn btn-lg btn-primary" href="Signup.php" role="button">Create My Blog</a>
                  </p>
                </div>
              </div>
              <div class="col-md-4">
                  <?php
                    if($error=='')
                        echo'<br><br>';
                    else
                        echo'<div class="alert alert-danger">'.$error.'</div>';
                  ?>
                    <form class="form-signin" action="login.php">
                    <h2 class="form-signin-heading">Please sign in</h2>
                    <input type="text" class="form-control" placeholder="Email address" required autofocus name="username">
                    <input type="password" class="form-control" placeholder="Password" required name="pw">
                    <button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button>
                    </form>
              </div>
              </div>
              <div class="footer">
                    <p>&copy; BlogMaker 2013</p>
              </div>
        </div> <!-- /container -->

        <!-- Bootstrap core JavaScript
        ================================================== -->
        <!-- Placed at the end of the document so the pages load faster -->
        <script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
        <script src="dist/js/bootstrap.min.js"></script>
        </body>
    </html>

以下是在PHP脚本中处理的登录过程:

<?php
session_start();

require_once 'DATABASE-CONFIG.php';
$username='';
$pw='';
if(isset($_GET['username'])&&isset($_GET['pw'])){
    $username=$_GET['username'];
    $pw=$_GET['pw'];
    mysql_connect(SERVERNAME,DBUSERNAME,DBPASSWD) or die('Fail to connect to DB server');
    mysql_select_db(DBNAME)or die('Fail to find the DB in the server');
    $query = "SELECT * FROM users WHERE username='$username'";
    $result = mysql_query($query);
    mysql_close();
    if(mysql_num_rows($result)>0){
        $_SESSION['username']=$username;
        header('Location:myblog.php');
    }
    else
        header('Location:index.php?error=Please check your username and your password!');
}else
    header('Location:index.php?error=Username and password are mandatory!');
?>

如您所见,我按名称调用html输入字段,并检查用户输入。我认为这是一个不好的做法建立一个网站。所以我的问题是,用PHP创建一个处理多个接口的web应用程序的最佳实践是什么?我只想要主要的概念。还有一个小例子也很好。

感谢

我将研究构建一个RESTful API。通过这种方式,您可以一次性编写所有业务逻辑,并使多个客户端与之交互(网站、移动应用程序等)。这里是一个很好的起点:API教程

您可以使用MVC设计模式(模型-视图-控制器)。通过将不同的视图提供给您希望支持的不同平台,可以轻松地将业务逻辑与演示代码解耦。

大多数现代PHP web框架都使用MVC架构。Laravel、Fuel等

MVC上的维基百科
初学者的MVC教程