Lập Trình Web Động Với PHP và My SQL

        Tạo một Database (quang trọng) 
       Chuyện đầu tiên là phải tạo một CSDL lưu trữ thông tin của khách. Để làm được điều này bạn cần phải dùng đến ngôn ngữ SQL (thực tế bạn có thể làm với vài động tác nhắp chuột và ngón gõ phím, nhưng hãy tập làm quen với SQL vì nó sẽ hữu dụng về sau). Bạn sẽ được học kỹ về SQL trong các chương sau. Do đó bạn đừng lo lắng khi chưa hiểu gì về nó.
Bây giờ bạn hãy khởi động MySQL. Nếu bạn đã cài đặt MySQL trong windows thì nó sẽ có biểu tượng để khởi động hoặc nó sẽ được tự động khởi động khi mở windows lên. Đối với MySQL Admin version 1.1 cho phep bạn làm việc trong 2 giao diện: Windows và Dos. Đối với giao diện Windows thì biểu tượng MySQL ( biểu tượng đèn giao thông) nằm ở System Tray, bạn chỉ việc click chuột phải lên nó và chọn Show me. Cửa sổ làm việc của MySQL hiện lên, tuy nhiên trong cửa sổ này chỉ cho phép bạn thực hiện một số thao tác có hạn đối với CSDL.
        Tôi khuyên bạn nên dùng tiện ích PhpMyAdmin, chương trình này hỗ trợ các thao tác đối với CSDL trong MySQL với giao diện dễ sử dụng.
         Trong phần này tôi hướng dẫn thêm bạn thực hiện thao tác với Database trong giao diện dòng lệnh MSDOS bởi vì các giao diện khác tôi nghĩ tự bạn có thể làm được. Bật màn hình dòng lệnh DOS lên, chuyển sang thư mục cài đặt MySQL có chứa tập tin mysql.exe (/mysql/bin) và gõ vào mysql<Enter>.
Tại dấu nhấu nhắc lệnh để tạo ra một database mới:
mysql>create database guestbook;
Query OK, 1 row affected (0.00 sec)
mysql>
Bây giờ trong CSDL guestbook bạn cần phải có table chứa thông tin cửa khách. Bạn hãy dùng lệnh create table từ dấu nhắc lệnh:
mysql> use guestbook
database changed
mysql> create table guestbook
->  (
->  name varchar (40) null,
->  location varchar (40) null ,
->  email varchar (40) null ,
->  url varchar (40) null ,
->  comments text null
->  )
->  ;
Query OK, 0   rows affected (0.00 sec)
mysql>
    Bạn đã có một CSDL tên là guestbook và một table ở trong CSDL này cũng tên là guestbook. Bây giờ đã đến lúc chúng ta viết một ứng dụng bằng PHP để thực hiện các thao tác: xem, chèn, xóa các thông tin trong CSDL guestbook.

   Viết lệnh PHP
   Bạn hãy dùng một chương trình soạn thảo văn bản đơn giản như Notepad chẳng hạn. Đặt tên cho các tập tin là .php, các tập tin này được lưu trữ trong thư mục gốc của web local trên máy bạn (nên tham khảo CD cài Apache để rõ hơn).

    Cú pháp cơ bản
  Điều thú vị đối với PHP là một phép bạn xen kẽ giữa lệnh HTML và lệnh PHP. Do đó, PHP được xe, như là một script giống như javascript. Các lệnh của PHP được gói trong thể mở:<? và thẻ đóng:?>
Bây giờ bạn hãy chạy tập tin hi.php sau:
<?
echo  "Hi", " ;
?>
mom.
khi chạy bạn sẽ gõ vào: localhost/hi.php
kết quả cho ra là "Hi, mom". Ta thấy "Hi," nằm trong tag lệnh PHP còn chữ "mom" thuộc về HTML.
   Tuy  nhiên, PHP còn làm được nhiều điều khác nữa, cũng giống như các ngôn ngữ lập trình khác, nó có thể làm việc với các loại biến, kiển dữ liệu, chứa rất nhiều hàm chức năng. Hãy tìm hiểu ví dụ sau:
<?
echo "hi, mom. " ;
$var = date(''H'') ;
if ($var <=11)
{
echo "good morning'';
}
elseif ($var >11 and $var <18)
{
echo ''good afternoon'' ;
}
else
{
echo ''good evening'' ;
}
?>
  Nếu như bạn thấy khó hiểu thì cũng không sao. Chúng ta sẽ biết tường tận hơn ở phần sau.




Trang kết quả sẽ hiện thị các lời chào tùy thuộc vào giờ giấc hiện tại. Tôi đã dùng hàm date của PHP để lấy ra được giờ giấc hiện tại. Giá trị được đem gán cho biến $var. Kế đến là các chọn lựa được sử dụng đề đưa ra lời chào thích hợp.
 Các bạn hãy để ý một chút, các lệnh của PHP đều được kết thúc với dấu chấm phẩy (;) . Trong phát biểu IF chúng ta thấy dấu ngoặc nhọn {} chứa các lệnh tùy sẽ được thi hành túy thuộc vào điều kiện. Các điều kiện thì được bao trong dấu ngoặc đơn ( ). Hàm date () và lệnh echo chỉ là 2 trong hàng trăm các hàm và lệnh có trong PHP mà các bạn sẽ được học một số cần thiết của chúng trong các chương sau. Bây giờ bạn hãy tìm hiểu thêm một số lệnh về CSDL.

   Lệnh PHP để kết nối Database (quan trọng)
bởi vì PHP và MySQL hiện tại trên máy của bạn vẫn cón là hai thế giới tách biệt nhau. Do đó, muốn dùng PHP để làm việc được với CSDL bạn cần phải tạo ra sợi dây liên kết giữa hai chiến hữu này.
  Vì có thể có rất nhiều database trong MySQL, do đó bạn cần phải chỉ ra bạn muốn sử dụng database nào trong MySQL. Chúng ta hãy thực hiện như sau:
<?
mysql_connect( ''localhost'' , ''khai'' , ''kkk'') or
die (''could not connect to database'' ) ;
mysql_select_db (''guestbook'' ) or
die ("could not select database'');
?>
Dòng đầu tiên thực hiện việc kết nối với Database Server đang nằm trên máy localhost, có username là khai, passwork là kkk.
Nếu kết nối thành công, nó sẽ thực hiện bước kế tiếp nối với database nằm trong đó là guestbook bằng lệnh mysql_select_db( )
Các bạn nên lưu ý là các lệnh trên bạn sử dụng thường xuyên cho mọi kết nối CSDL của bạn, do đó tôi khuyên bạn nên lưu nó vào một tập tin ( dbconnect.php chẳng hạn), sau này cần thì chỉ việc dùng lệnh include('dbconnect.php');


Nhập dữ liệu vào Database.
  Bởi vì hiện tại database của bạn vẫn chưa có user nào, cho nên tôi sẽ hướng dẫn bạn viết các lệnh để thực hiện việc này. Nhưng trước tiên, bạn cần phải biết thêm một chút ít về biến trong PHP. Ở phần trước bạn đẫ xem qua một ví dụ trong đó có chứa biến, tuy nhiên đối với môi trường client/server, bạn cần phải làm việc với data từ client. Bạn sẽ thường xuyên làm việc với fram HTML (bạn có thể tìm hiểu kỹ hơn ở phần phục lục A. Chung1ta nên biết là mỗi phần tử của form đều có một cái tên, và khi bạn submit một form nào đó thì các tên của các phần tử trong đó trở thành một biến trong script PHP được form submit đến. Với form như sau, khi được submit, các biến $surname và $submit sẽ được tạo ra trong myscript.php. Giá trị $surname sẽ mang giá trị mà user đã nhập vào. Giá trị của $submit sẽ là chuỗi ''submit''.
<form action = ''myscript.php''>
<input type=''text'' name = ''surname''>
<input type= ''submit'' name = ''submit'' value= ''submit''>
</form>



Tôi xin lưu ý vơi các bạn lập trình web không giốn như các lập trình khác ở chỗ nó không ở trạng thái tĩnh. Để thể hiện một trang, Web server phải trước hết nhận một thỉnh cầu từ trình duyệt. Giao thức sử dụng của chúng là HTTP, Hypertext Transfer Protocol. Các yêu cầu sẽ bao gồm: trang web nào  mà trình duyệt sẽ thấy, form data, loại trình duyệt đang được sử dụng, địa chỉ IP mà trình duyệt sử dụng. Dựa vào thông tin này mà web server sẽ quyết định phục vụ nhựng gì. Một khi server phục vụ yêu cầu trang web, nó sẽ duy  trì sự kết nối với trình duyệt. Thông thường , bạn cần biết cách thức để chuyển các biến từ trang này sang trang khác. Bạn sẽ tìm thấy thao tác này trong ứng dụng tiếp theo. Ứng dụng của chúng ta sẽ giải quyết vấn đề dựa theo 1 trong 3 cách thức: Chuyển giao thức phần tử form ẩn, sử dụng cookies, sử dụng session.
Bây giờ trở lại script sau:
<form action =''myscript.php''>
<input type=''text'' name = ''surname''>
<input type =''sunmit'' name =''submit'' value= ''submit'' >
</form>

  Bạn có thể quyết định cho hiển thị trên site những gì dựa vào các biến thông tin từ form HTML. Thông thường, bạn có thể kiểm tra nếu form đã được submit hay chưa bằng cách kiểm tra biến $submit có chứa giá trị ''submit'' hay không.
   Hãy bắt tay vào công việc đi thôi. Trang đầu tiên trong ứng dụng được gọi là sign.php có chứa một form HTML. Action của nó là create_entry.php. Sau đây là chi tiết dòng lệnh:
<h2> Sign my Guest Book !!! </h2>
<form method=post action = ''create_entruy.php''>
<b>Name:</b?
<input type =text size=40 name =name>
<br>
<b>Email:</b?
<input type=text size=40 name=location>
<br>
<b>Email:</b?
<input type size=40 name=email>
<br>
<b>Home page URL:</b?
<input type =text size=40 name =url>
<br>
<b>Comments:</b>
<textarea name=comments  cols=40 rows =4 wrap=virtual></textarea>
<br>
<input type =submit name =submit value= ''Sign!''>
<input type =reset value=''Start Over''>
</form>



Khi bạn điền đầy đủ thông tin ở trong form, thì các thông tin sẽ được chuyển đổi tới create_entry.php. Chuyên đầu tiên phải làm trên trang này là triển tra xem form đã được submit chưa. Nếu rồi, nhận lấy giá trị đã nhập  vào trong form và sử dụng chúng để tạo một query đồng thời gởi đến MySQL. Bạn đừng lo lắng là không biết các lệnh SQL, điều trước tiên là chỉ cần biết là nó sẽ thực hiện việc chèn dữ liệu vào table của guestbook. Tập tin create_entry.php như sau:
<?php
include (''dbconnect.php'');
if ($submit ==''Sign !'')
{
$query = ''insert into guestbook
(name, location, email, url, comments ) values
('$name', '$location', '$email', '$url', '$comments') '' ;
mysql_query($query) or



Trong lần đầu tiên create_entry.php được gọi, form sign.php sẽ được hiển thị. Kế tiếp, dữ liệu sẽ được cập nhật vào CSDL.



Hiển thị dữ liệu trong Database lên màn hình.
echo ''<b>URL:</b>'';
echo $row [''url'' ];
echo ''<b>comments:</b?'';
echo $row [''comments''];
echo ''<br>\n'';
echo ''<br>\n'';
echo ''<br>\n '';
}
mysql_free_result($result);
?>
<h2><a href=''sign.php''>sign my guest book!!</a></h2>

 Như chúng ta thấy query trong MySQL truy cập tất cả các hàng trong database. Script thực hiện việc này bằng cách sử dụng vòng lập thông qua biến $row.
Trong mỗi vòng lặp thì mỗi field trong từng record được hiển thị. vd: print $row[''email''] sẽ ghi ra màn hình đối với record đang truy cập. Khi chạy chương trình, tất cả các field của từng record sẽ được hiện thị:


Bây giờ thì ứng dụng đầu tien của bạn đã hoàn tất. Nếu bạn muốn upload web vừa tạo lên trên server để thử nghiệm thì cũng được thôi. Nhưng muốn để nó trở thành một site guestbook đúng nghĩa thì chưa đâu! Bạn còn cần phải làm nhiểu thứ để dữ liệu bạn không bị hacker quấy phá.
Lưu ý: bạn có  thể thấy các CD thiết kế web PHP tại cửa hàng CD (Tôn thất tung2m TPHCM chẳng hạng). Trên CD có trình bày cài đặt Apache, PHP, MySQL thông dụng là FOX. Ngoài ra còn có các website PHP mẫu.




Nhận xét

Bài đăng phổ biến từ blog này

[CCNAv6 S4] 8.2.4.14 Packet Tracer - Troubleshooting Enterprise Networks 3

[CCNAv6 S2] 2.2.2.4 Packet Tracer - Configuring IPv4 Static and Default Routes

[CCNAv6 S2] 7.3.2.4 Packet Tracer - Troubleshooting Standard IPv4 ACLs