Xem thêm

Tạo website bằng PHP : Thiết kế giao diện (Phần 1)

Huy Erick
Chào mừng các bạn đến với bài viết thú vị này! Hôm nay, chúng ta sẽ hướng dẫn cách tạo website bằng PHP. Trong loạt bài viết này, mình sẽ chỉ cho các bạn cách...

Chào mừng các bạn đến với bài viết thú vị này! Hôm nay, chúng ta sẽ hướng dẫn cách tạo website bằng PHP. Trong loạt bài viết này, mình sẽ chỉ cho các bạn cách tạo một website tin tức đơn giản bằng PHP. Loạt bài viết tạo website bằng PHP bao gồm các phần sau:

  1. Thiết kế giao diện đơn giản
  2. Tạo cơ sở dữ liệu
  3. Thực hiện tạo trang đăng ký, đăng nhập
  4. Hiển thị bài viết thông qua trang hiển thị bài viết
  5. Quản lý thông tin người dùng, bài viết ở trang quản trị
  6. Kết thúc loạt bài tạo website bằng PHP

THIẾT KẾ GIAO DIỆN WEBSITE

Để có thể tạo website bằng PHP, trước tiên chúng ta cần thiết kế giao diện website. Giao diện website là phần sẽ hiển thị ra bên ngoài cho người dùng và có thể nhìn thấy bằng mắt thường. Hãy lấy ví dụ về trang web https://kungfuphp.com, bạn có thể thấy menu, chuyên mục, bài viết, màu sắc,... tất cả những thứ này được gọi là giao diện website.

Giao diện website được tạo nên bằng các ngôn ngữ thiết kế web như HTML, CSS, Javascript,...

Đã hiểu về khái niệm giao diện website chưa? Bây giờ, chúng ta hãy bắt tay vào thiết kế giao diện nhé!

1. Tạo cấu trúc thư mục

Trước hết, chúng ta cần tạo cấu trúc thư mục để chứa mã nguồn website tin tức. Cấu trúc thư mục của chúng ta sẽ như sau:

  • Thư mục gốc của website
    • Thư mục includes (chứa 2 file footer.phpheader.php)
    • Thư mục style (chứa thư mục img, js và file style.css). Thư mục img sẽ chứa các hình ảnh của website, thư mục js sẽ chứa các file js, file style.css sẽ chứa các đoạn mã css của chúng ta
    • File index.php

2. Thiết kế giao diện website

Trong file index.php, chúng ta sẽ chèn nội dung sau:

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>2 Column Layout — Right Menu with Header &amp;amp; Footer</title> <style type="text/css"> body {     margin:0;     padding:0;     font-family: Sans-Serif;     line-height: 1.5em; } header {     background: #ccc;     height: 100px; } header h1 {     margin: 0;     padding-top: 15px; } main {     padding-bottom: 10010px;     margin-bottom: -10000px;     float: left;     width: 100%; } nav {     padding-bottom: 10010px;     margin-bottom: -10000px;     float: left;     width: 230px;     margin-left: -230px;     background: #eee; } footer {     clear: left;     width: 100%;     background: #ccc;     text-align: center;     padding: 4px 0; } #wrapper {     overflow: hidden; } #content {     margin-right: 230px; /* Same as 'nav' width */ } .innertube {     margin: 15px; /* Padding for content */     margin-top: 0; } p {     color: #555; } nav ul {     list-style-type: none;     margin: 0;     padding: 0; } nav ul a {     color: darkgreen;     text-decoration: none; } </style> </head> <body> <header> <div class="innertube"> <h1>Header...</h1> </div> </header> <div id="wrapper"> <main> <div id="content"> <div class="innertube"> <h1>Heading</h1> This, too, will pass. If the facts don't fit the theory, change the facts. The past has no power over the present moment.  <h3>Heading</h3> <p>The most important moment of your life is now. The most important person in your life is the one you are with now, and the most important activity in your life is the one you are involved with now. The past has no power over the present moment.</p>  <h3>Heading</h3> <p>The most important moment of your life is now. The most important person in your life is the one you are with now, and the most important activity in your life is the one you are involved with now. The smaller your reality, the more convinced you are that you know everything. This, too, will pass. Peace comes from within. Do not seek it without.</p>  <h3>Heading</h3> <p>The most important moment of your life is now. The most important person in your life is the one you are with now, and the most important activity in your life is the one you are involved with now.</p>  <p>You will not be punished for your anger, you will be punished by your anger. The past has no power over the present moment.</p>  <p>You will not be punished for your anger, you will be punished by your anger.</p>  <h3>Heading</h3> <p>The most important moment of your life is now. The most important person in your life is the one you are with now, and the most important activity in your life is the one you are involved with now. Peace comes from within. Do not seek it without. This, too, will pass.</p>  <p>You will not be punished for your anger, you will be punished by your anger. The smaller your reality, the more convinced you are that you know everything. If the facts don't fit the theory, change the facts. The past has no power over the present moment.</p>  </div> </div> </main> <nav> <div class="innertube"> <h3>Right heading</h3> <ul> <li><a href="#">Link 1</a></li> <li><a href="#">Link 2</a></li> <li><a href="#">Link 3</a></li> <li><a href="#">Link 4</a></li> <li><a href="#">Link 5</a></li> </ul> <h3>Right heading</h3> <ul> <li><a href="#">Link 1</a></li> <li><a href="#">Link 2</a></li> <li><a href="#">Link 3</a></li> <li><a href="#">Link 4</a></li> <li><a href="#">Link 5</a></li> </ul> <h3>Right heading</h3> <ul> <li><a href="#">Link 1</a></li> <li><a href="#">Link 2</a></li> <li><a href="#">Link 3</a></li> <li><a href="#">Link 4</a></li> <li><a href="#">Link 5</a></li> </ul> </div> </nav> </div> <footer> <div class="innertube"> <p>Footer...</p> </div> </footer> </body> </html>

Sau đó, bạn hãy mở trình duyệt và chạy đường dẫn: http://localhost/website/index.php, bạn sẽ thấy giao diện hiển thị như sau:

tạo website bằng php, thiết kế giao diện website php

Như vậy, chúng ta đã hoàn thành việc thiết kế giao diện tổng quát. Tiếp theo, chúng ta sẽ phân tách bố cục của file index vào các file con.

3. Phân tách bố cục file index.php vào các file con

Để tạo website bằng PHP dễ bảo trì và mở rộng trong tương lai, chúng ta cần phải phân tách bố cục của file. Mục đích của việc chia nhỏ file index.php vào các file con là để dễ dàng và thuận tiện quản lý mã nguồn sau này. Hãy tưởng tượng nếu toàn bộ mã nguồn đặt trong file index.php thì mỗi lần bạn cần chỉnh sửa thì sẽ rất rối rắm và khó khăn. Đó sẽ là một cơn ác mộng.

Chúng ta sẽ chia nhỏ giao diện của trang web như sau:

a. Chia nhỏ giao diện vào file header.php

Bạn hãy cắt toàn bộ đoạn mã trong file index.php như sau:

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Tạo website bằng PHP</title> <style type="text/css"> body {     margin:0;     padding:0;     font-family: Sans-Serif;     line-height: 1.5em; } header {     background: #ccc;     height: 100px; } header h1 {     margin: 0;     padding-top: 15px; } main {     padding-bottom: 10010px;     margin-bottom: -10000px;     float: left;     width: 100%; } nav {     padding-bottom: 10010px;     margin-bottom: -10000px;     float: left;     width: 230px;     margin-left: -230px;     background: #eee; } footer {     clear: left;     width: 100%;     background: #ccc;     text-align: center;     padding: 4px 0; } #wrapper {     overflow: hidden; } #content {     margin-right: 230px; /* Same as 'nav' width */ } .innertube {     margin: 15px; /* Padding for content */     margin-top: 0; } p {     color: #555; } nav ul {     list-style-type: none;     margin: 0;     padding: 0; } nav ul a {     color: darkgreen;     text-decoration: none; } </style> </head> <body> <header> <div class="innertube"> <h1>Header...</h1> </div> </header> <div id="wrapper"> <main> <div id="content">

Và bỏ vào file header.php, sau đó lưu lại.

b. Tách giao diện trang web vào file footer.php

Trong file index.php, hãy cắt (ctrl+x) toàn bộ đoạn mã sau:

</div> <footer> <div class="innertube"> <p>Footer...</p> </div> </footer> </body> </html>

Và bỏ vào file footer.php, sau đó lưu lại.

c. Chỉnh sửa lại file index.php

Sau khi đã cắt đi hai đoạn mã của trang index.php, bạn cần phải include hai thành phần đã cắt vào file index.php, sử dụng đoạn mã sau đưa vào đầu và cuối file index.php:

<?php include "includes/header.php" ?> <?php include "includes/footer.php" ?>

Lúc này, nội dung của file index.php sẽ như sau:

<?php include "includes/header.php" ?> <div class="innertube"> <h1>Heading</h1> This, too, will pass. If the facts don't fit the theory, change the facts. The past has no power over the present moment.  <h3>Heading</h3> <p>The most important moment of your life is now. The most important person in your life is the one you are with now, and the most important activity in your life is the one you are involved with now. The past has no power over the present moment.</p>  <h3>Heading</h3> <p>The most important moment of your life is now. The most important person in your life is the one you are with now, and the most important activity in your life is the one you are involved with now. The smaller your reality, the more convinced you are that you know everything. This, too, will pass. Peace comes from within. Do not seek it without.</p>  <h3>Heading</h3> <p>The most important moment of your life is now. The most important person in your life is the one you are with now, and the most important activity in your life is the one you are involved with now.</p>  <p>You will not be punished for your anger, you will be punished by your anger. The past has no power over the present moment.</p>  <p>You will not be punished for your anger, you will be punished by your anger.</p>  <h3>Heading</h3> <p>The most important moment of your life is now. The most important person in your life is the one you are with now, and the most important activity in your life is the one you are involved with now. Peace comes from within. Do not seek it without. This, too, will pass.</p>  <p>You will not be punished for your anger, you will be punished by your anger. The smaller your reality, the more convinced you are that you know everything. If the facts don't fit the theory, change the facts. The past has no power over the present moment.</p>  </div> <?php include "includes/footer.php" ?>

d. Chia file header.php thành file style.css

Trong file header.php, bạn sẽ thấy đoạn mã css, hãy cắt toàn bộ đoạn mã css này vào file style.css.

Cắt toàn bộ đoạn mã sau trong file header.php:

body {     margin:0;     padding:0;     font-family: Sans-Serif;     line-height: 1.5em; } header {     background: #ccc;     height: 100px; } header h1 {     margin: 0;     padding-top: 15px; } main {     padding-bottom: 10010px;     margin-bottom: -10000px;     float: left;     width: 100%; } nav {     padding-bottom: 10010px;     margin-bottom: -10000px;     float: left;     width: 230px;     margin-left: -230px;     background: #eee; } footer {     clear: left;     width: 100%;     background: #ccc;     text-align: center;     padding: 4px 0; } #wrapper {     overflow: hidden; } #content {     margin-right: 230px; /* Same as 'nav' width */ } .innertube {     margin: 15px; /* Padding for content */     margin-top: 0; } p {     color: #555; } nav ul {     list-style-type: none;     margin: 0;     padding: 0; } nav ul a {     color: darkgreen;     text-decoration: none; }

Và bỏ vào file style.css, đồng thời sửa lại file header.php như sau:

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Tạo website bằng PHP</title> <link rel="stylesheet" type="text/css" href="style/style.css"> </head> <body> <header> <div class="innertube"> <h1>Header...</h1> </div> </header> <div id="wrapper"> <main> <div id="content">

Giờ thì mở trình duyệt và chạy lại đường dẫn http://localhost/website/index.php. Bạn sẽ thấy trang index.php không có gì thay đổi so với ban đầu, nhưng lúc này các đoạn mã trong file index.php đã được chia thành các file con nhỏ hơn. Điều này rất thuận tiện để chúng ta có thể code và mở rộng trong tương lai. Điều này rất quan trọng, vì nếu không chia nhỏ các thành phần của website ngay từ bây giờ, chúng ta sẽ gặp rất nhiều khó khăn và rối rắm trong quá trình tạo website bằng PHP.

Tổng kết

Vậy là chúng ta đã hoàn thành việc thiết kế giao diện cho website tin tức, đây là bài viết đầu tiên trong loạt bài về tạo website bằng PHP. Trong bài viết tiếp theo, chúng ta sẽ tiếp tục tạo cơ sở dữ liệu cho website.

Chúc các bạn học tốt!

tạo website bằng php, thiết kế giao diện website php

1