Thứ Hai, 19 tháng 8, 2013

Học php cơ bản - Bảo mật cho website của bạn 2

Ở bài này, blog học lập trình php cơ bản sẽ giới thiệu loạt bài tiếp theo về bảo mật website của bạn trên môi trường internet.

Bị các lỗi bảo mật thông thường do không cập nhật bản vá


Rà xuyên qua một số trang web đã bị TQ tấn công, nhận thấy đa số là những trang web chạy trên hệ thống quá cũ và không được cập nhật những bản vá cần thiết. Những hệ thống như thế này cực kỳ dễ bị tấn công bởi vì các phương pháp tấn công, thậm chí những công cụ tấn công đã được công bố rộng rãi trên mạng. Tin tặc chỉ cần dùng công cụ như nmap để rà và nắm bắt được footprint (phiên bản của hệ điều hành và dịch vụ) và họ sẽ dễ dàng thực hiện biện pháp tấn công đã có sẵn. Đây chính là lý do hàng loạt các trang web của VN bị ngã gục một cách nhanh chóng và dễ dàng.
Cách giải quyết:

- Cập nhật ngay các bản vá trên hệ điều hành

Nếu máy chủ được thuê từ nhà cung cấp, yêu cầu họ giúp đỡ việc cập nhật hệ điều hành trên máy chủ. Nếu họ không làm việc này (hầu hết các máy chủ thuê từ nhà cung cấp dịch vụ đều có cùng một bản chung và họ thường không hỗ trợ việc cập nhật hệ điều hành theo định kỳ), thuê ngay máy chủ mới có hệ điều hành phiên bản mới và tiến hành di chuyển trang web + csdl sang các máy chủ mới.
Nếu máy chủ do tự mình quản lý và thuộc hệ thống mạng riêng của cơ quan, nên tiến hành cập nhật trọn bộ những bản vá cần thiết cho hệ điều hành và tất cả các dịch vụ đang hoạt động (web, mail,….). Quản lý hệ thống nhưng bê trễ chuyện cập nhật bản vá là chuyện không thể chấp nhận được.

- Áp dụng ngay một hệ thống cản lọc

 

Nếu là một doanh nghiệp có kinh phí, nên sử dụng ngay một hệ thống “application firewall” (dạng appliance hoặc software) tuỳ nhu cầu. Nên liên lạc với nhóm tư vấn bảo mật có uy tín để họ giúp ý kiến. Web applications không nên để trần ra ngoài Internet mà không có một cơ chế bảo vệ nào.
Nếu là một máy chủ thuê ở dịch vụ, nên hỏi xem họ có chọn lựa hoặc dịch vụ cản lọc nào không. Nếu không có, hãy tự xây dựng một hàng rào cản lọc như mod_security (chạy trên apache như một reverse proxy nhằm bảo vệ dịch vụ web bên trong.
Không có hệ thống cản lọc và không cập nhật các bản vá cần thiết thì việc bị tấn công và bị kiểm soát là chuyện không thể tránh khỏi được. 
Các bạn xem các bài tiếp theo ở đây : http://hocphpcobanhadonghn.blogspot.com/ Blog hướng dẫn cơ bản học php tại ba đình hà nội cũng  xin chia sẻ một số link học php từ căn bản đến chuyến sâu cho các bạn sv hà nội quan tâm:
Các bạn có thể học hỏi thêm và tham khảo ở trang chủ chia sẻ kiến thức về sql và PHP tại đây :
http://daotaolaptrinh.edu.vn/tai-lieu-php.html
Chúc các bạn thành công !!
 



 

Thứ Sáu, 16 tháng 8, 2013

HỌC LẬP TRÌNH PHP CƠ BẢN


PHP là  một ngôn ngữ được lồng vào giữa những đoạn mã có cấu trúc HTML. PHP lập trình web mã nguồn mở đáp ứng cho sự phát triển web và được sử dụng khá thông dụng. 
Ngôn ngữ PHP có cách thức viết gẫn gũi với C và PERL , tuy nhiên với việc học PHP  thì để viết dễ dàng và cơ bản như trong lập trình C hoặc PERL với cách đặt biến dễ chịu.
Để học PHP cơ bản, các bạn có kiến thức và tài liệu về php rất nhiều trang web về PHP để các bạn nghiên cứu và tham khảo. Cụ thể như:
1) http://www.w3schools.com/php/default.asp
2) http://php.net
3) Các bạn vào Google tra cứu tài liệu php cơ bản, hướng dẫn học lập trình php căn bản, giáo trình php cơ bản, video hướng dẫn học php từ cơ bản đến chuyên sâu ...v v.. nó sẽ ra cả đống.
4) Trang đào tạo lập trình PHP & Mysql có rất nhiều thành viên ! Hãy hỏi họ bất cứ khi nào có thể bạn nhé! 

-Một diễn đàn, nơi mọi người thảo luận, trao đổi, thông tin cho nhau, giúp đỡ nhau khi ai đó gặp vấn đề,…
-Chat chit
- Một sổ lưu niệm hay lưu bút, nơi mà khách viếng thăm có thể ghi lại vào đó cảm nghĩ của họ về trang web của bạn, mà những người khác (ngoài bạn ra) cũng có thể đọc được !
- Newsletter : bạn có tin gì mới ? Chỉ cần click một cái là bạn có thể gửi mail tới tất cả những thành viên trong diễn đàn của bạn! Hoàn toàn tự động nhé, không phải mất công ngồi viết đâu!
- Một bộ đếm visitors
- Làm blog, mọi người có thể comment vào đó…
Bản chất ngôn ngữ PHP khá dễ học , nắm chắc kiến thức cơ sở giúp bạn tạo một trang web động, nó có thể tự động cập nhật trang web của bạn ngay cả khi bạn đi Ấn Độ du lịch, trang web của bạn vẫn cập nhật liên tục số người viếng thăm, những gì khách comment vào, những tin tức mới,…  
          Học php cơ bản cũng xin giới thiệu đến các bạn để có thể học hỏi thêm bài tập php tại trang blog : http://baitaphocphpcoban.blogspot.com/.
Chúc các bạn thành công !! 

Thứ Năm, 15 tháng 8, 2013

Bảo mật database trong quá trình học lập trình php cơ bản


CSDL là 1 phần quan trọng không thể thể thiếu được trong các ứng dụng web chuyên nghiệp.
Khi chúng ta truy cập CSDL và chấp nhận dữ liệu đầu vào bằng cách tạo ra các câu lệnh truy vấn, nó dễ dàng bị các kẻ gian lợi dụng tấn công SQl injection.


MySQL từ lâu đã là hệ CSDL được dùng phổ biến nhất với PHP vì tính gọn nhẹ, nhanh, miễn phí và được PHP hỗ trợ sẵn. Trong bài viết này chúng ta sẽ tìm hiểu cách kết nối vào CSDL MySQL, truy cập và lưu trữ dữ liệu với PHP. KẾT NỐI VÀO MYSQL SERVER PHP cung cấp hàm mysql_connect để kết nối vèo MySQL server. Cú pháp của hàm này như sau: mysql_connect($...






Bảo mật database trong quá trình học lập trình php cơ bản







SQL injection xuất hiện khi các kẻ tấn công muốn làm các “thử nghiệm” trên form để lấy các thông tin về CSDL. Nó thu thập các thông tin từ các thông báo lỗi SQL . Kẻ tấn công đính vào form một trường injecting SQL, phổ biến nó thường đính vào form đăng nhập


Mã:


?




1


2


3


4


5


6


7


8


9


10


11


12


13


14


15


16


<form method="login.php" action="POST">


Username: <input type="text" name="username" /><br />


Password: <input type="password" name="password" /><br />


<input type="submit" value="Log In" />


</form>


đoạn mã sử lý đăng nhập dễ bị lợi dụng:


$username = $_POST[’username’];



$password = md5($_POST[’password’]);


$sql = "SELECT *


FROM users


WHERE username = ’{$username}’ AND password = ’{$password}’";


/* database connection and query code */


if (count($results) > 0) {


// Successful login attempt


}






Khi kẻ tấn công nhập user là :

username’ OR 1 = 1 -

và mật khẩu để trống thì cấu trúc câu lệnh SQl là:

SELECT *

FROM users

WHERE username = ’username’ OR 1 = 1 –’ AND

password = ’d41d8cd98f00b204e9800998ecf8427e’

điều kiện 1=1 thì luôn đúng câu lệnh SQL bỏ qua tất cả những gì sau ‘–’ vì vậy câu lệnh SQl trên sẽ trả lại tất cả các bản ghi. Bằng cách này hacker dễ dàng đăng nhập vào hệ thống với tài khoản bất kỳ khi đã biết tên tài khoản

Chúng ta tránh được lỗi này bằng cách lọc các kí tự escaping. Bằng cách lọc dữ liệu đầu vào và lọc escaping khi xuất ra chúng ta sẽ tránh được lỗi SQL injection chúng ta lọc escaping bằng nhóm hàm *_escape_string()


Các bạn có thể học hỏi thêm và tham khảo về csdl - mysql ở trang chủ chia sẻ kiến thức học php cơ bản : http://daotaolaptrinh.edu.vn/su-dung-csdl-mysql

Thứ Ba, 13 tháng 8, 2013

Chương trình học php cơ bản - Giới thiệu về jQuery

Nếu bạn là người mới học php cơ bản, làm quen với jQuery bạn sẽ thấy không biết phải bắt đầu từ đâu vì jQuery cũng giống như bất cứ thư viện nào khác cũng có rất nhiều functions. 

tìm hiểu về jquery trong quá trình học php cơ bản

 

Cho dù bạn có đọc phần tài liệu hướng dẫn sử dụng của jQuery thì bạn vẫn thấy rất phức tạp và khó hiểu. Nhưng bạn yên tâm một điều là jQuery có cấu trúc rất mạch lạc và theo hệ thống. Cách viết code của jQuery được vay mượn từ các nguồn mà các web designer đa phần đã biết như HTML và CSS. Nếu từ trước đến nay bạn chỉ là Designer chứ không phải coder, bạn cũng có thể dễ dàng học jQuery vì kiến thức về CSS giúp bạn rất nhiều khi bắt đầu với jQuery.
Với sự phát triển rất mau lẹ của Internet, người dùng ngày càng quan tâm hơn đến hình thức của một trang web. Trước đây một trang web chỉ cần có banner, nội dung và ít footer hời hợt là đã được cho là một trang web hoàn chỉnh. Nhưng bây giờ trang web đó phải có banner bắt mắt, nội dung hay và còn nhiều hiệu ứng lạ mắt khác nữa thì mới có thể thu hút được người đọc.
Tại sao jQuery làm việc tốt
Người dùng ngày càng quan tâm hơn đến Dynamic HTML, đó cũng là nền móng cho sự ra đời của những javaScript Frameworks. Có frameworks thì chỉ tập trung vào một vài tính năng vừa nêu ở trên, có cái thì ráng bao gồm tất cả những hiệu ứng, tập tính và nhồi nhét vào một package. Để đảm bảo là một thư viện “nhanh gọn nhẹ” nhưng vẫn “ngon bổ rẻ” với các tính năng đã nêu ở trên, jQuery sử dụng những chiến lược sau:
Tận dụng kiến thức về CSS. Các jQuery Selector hoạt động y chang như CSS Selector với cùng cấu trúc và cú pháp. Chính vì thế thư viện jQuery là cửa ngõ cho các web designer muốn thêm nhiều tính năng hơn nữa cho trang web của mình. Bởi vì điều kiện tiên quyết để trở thành một web designer chuyên nghiệp là khả năng sử dụng CSS thuần thục. Với kiến thức có sẵn về CSS, bạn sẽ có sự khởi đầu thuận lợi với jQuery.
Hỗ trợ Plugin. Để tránh bị rơi vào trạng thái quá tải tính năng, jQuery cho phép người dùng tạo và sử dụng Plugin nếu cần. Cách tạo một plugin mới cũng khá đơn giản và được hướng dẫn cụ thể, chính vì thế cộng đồng sử dụng jQuery đã tạo ra một loạt những plugin đầy tính sáng tạo và hữu dụng.
Xoá nhoà sự khác biệt giữa trình duyệt. Một thức tế tồn tại là mỗi một hệ thống trình duyệt lại có một kiểu riêng để đọc trang web. Dẫn đến một điều làm đau đầu các web designer là làm thế nào để cho trang web có thể hiển thị tốt trên mọi trình duyệt. Cho nên đôi khi người ta phải làm hẳn một phần code phức tạp để đảm bảo rằng trang web của họ được hiển thị gần như tương đồng ở các trình duyệt phổ biến. Jquery giúp bạn thêm một lớp bảo vệ cho sự khác biệt của trình duyệt và giúp quá trình này diễn ra dễ dàng hơn rất nhiều.
Luôn làm việc với Set. Ví dụ khi chúng ta yêu cầu jQuery tìm tất cả các thành phần có class là delete và ẩn chúng đi. Chúng ta không cần phải loop qua từng thành phần được trả về. Thay vào đó, những phương pháp như là hide() được thiết kế ra để làm việc với set thay vì từng thành phần đơn lẻ. Kỹ thuật này được gọi là vòng lặp ẩn, điều đó có nghĩa là chúng ta không phải tự viết code để loop nữa mà nó vẫn được thực thi, chính vì thế code của chúng ta sẽ ngăn hơn rất nhiều.
Cho phép nhiều tác vụ diễn ra trên cùng một dòng. Để tránh phải sử dụng những biến tạm hoặc các tác vụ lặp tốn thời gian, jQuery cho phép bạn sử dụng kiểu lập trình được gọi là Chaining cho hầu hết các method của nó. Điều đó có nghĩa là kết quả của các tác vụ được tiến hành trên một thành phần chính là thành phần đó, nó sẵn sàng cho tác vụ tiếp theo được áp dụng lên nó. Những chiến lược được nêu ở trên giúp kích thước của jQuery rất nhỏ bé chỉ khoảng trên dưới 20Kb dạng nén. Nhưng vẫn đảm bảo cung cấp cho chúng ta những kỹ thuật để giúp code trên trang nhỏ gọn và mạch lạc.
Jquery sở dĩ trở nên phổ biến là do cách sử dụng đơn giản và bên cạnh đó còn có một cộng đồng sử dụng mạnh mẽ vẫn ngày ngày phát triển thêm Plugin và hoàn thiện những tính năng trọng tâm của jQuery. Cho dù thực tế là vậy, nhưng jQuery lại là thư viện javaScript hoàn toàn miễn phí cho mọi người sử dụng. Tất nhiên trong quá trình đào tạo lập trình viên php , Jquery được bảo vệ bởi luật GNU Public License và MIT License, nhưng bạn cứ yên tâm là bạn có thể sử dụng nó trong hầu hết các trường hợp kể cả thương mại lẫn cá nhân.

Các bạn có thể học hỏi thêm và tham khảo ở trang chủ chia sẻ kiến thức php cơ bản : http://daotaolaptrinh.edu.vn/tai-lieu-php.html

Tự học lập trình php dễ hay khó


Tự học php như thế nào? Học php cơ bản ? Tài liệu học php cơ bản ? Tự học lập trình php dễ hay khó ?

Ngày nay với sự bùng nổ của công nghệ, thật không quá khó để tìm ra tài liệu cho bất kỳ nghiên cứu gì. Nhất là đối với các kiến thức lập trình. Một trong những tài liệu được xếp vào hàng cung cấp nhiều nhất trên các danh mục thứ hạng tìm kiếm của toàn thế giới.

PHP cũng như thế, chính vì nó dễ kiếm và nhiều sự đa dạng. Nên các bạn sẽ cảm thấy rất dễ tiếp cận với PHP. PHP khởi nguyên là một dạng mã nguồn mở được rất nhiều lập trình viên trên thế giới phát triển và không ngừng cải thiện những mặt hạn chế mà vỗn dĩ thời non nớt của PHP vẫn thường mắc phải.

Quả thật việc học PHP với người bắt đầu có phần dễ và nhẹ nhàng hơn so với các ngôn ngữ khác như ASP.NET hay C#. Nhưng sự thật để làm chủ được ngôn ngữ PHP thì thật không đơn giản. PHP hiện tại là PHP 5.x, chính vì thế mà sức mạnh của PHP 5.x được phát huy tối đa thông qua sự hỗ trợ hướng đối tượng, xét về mắt khách quan thì PHP đem lại cho người dùng cảm giác thân thiện và đơn giản hơn so với các ngôn ngữ khác. Nhưng thiết nghĩ nếu vì dễ tiếp cận mà bạn cho rằng PHP dễ học thì quả thật đó là một sai lầm rất lớn trong nhận thức của bạn.

Về bản chất PHP mang gốc gác và tính nguyên thủy của Java, nên đôi khi bạn cảm nhận PHP có vẻ như có họ hàng với java chăng ?. Hay một số hàm dùng lại của C khiến bạn liên tưởng tới việc học PHP cũng dễ như học C. Thực tế qua các cuộc khảo sát trên toàn thế giới cho thấy PHP chiếm phần đông người sử dụng. Nhưng để gọi là một chuyên gia về PHP thì quả thật số lượng ấy quá khiêm tốn so với phần đông người sử dụng kia. Có một lập trình viên từng nói "học php để làm website quả thật rất dễ, nhưng học php để phát triển website thì đúng là nghịch cảnh". Câu nói ấy có thời từng bị lên án gay gắt vì số đông người cho rằng họ vẫn đủ tự tin để không những phát triển website mà còn viết ra hàng trăm dự án khác trên PHP.
Example
Một số chuyên gia đã kiểm chứng khi dẫn chứng các source code được viết bằng PHP của phần đông kia thì quả thật họ có một kết luận chung là "mã lệnh quá thập cẩm". Vì nó thoải mái trong việc lập trình nên giúp người lập trình dễ tùy biến khi viết lệnh. Nhưng lại vô tình đẩy PHP đến chỗ tùy tiện trong việc truy xuất và xử lý. Nhìn chung thì website vẫn hình thành, vẫn chạy rất tốt. Nhưng giả sử khi cần phát triển tiếp, khi cần bàn giao hay khi sử dụng website ấy với số lượng lớn người truy cập thì việc có tối ưu hay không lại trở thành con đường sống còn của một trang web. Vậy phải chăng lập trình webiste bằng PHP là dễ vì đơn giản nó dễ tiếp cận ?.

Với chúng ta, làm website nhỏ thì kiến thức vận dụng cũng nhỏ nên chúng ta nghĩ nó dễ. Thử nhìn lên các hệ thống lớn như joomla, vbulletin, drupal....sao chúng ta quá nhỏ bé, đôi khi xem code của họ mà chúng ta cứ cảm giác lùng bùng như sấm bên tai. Đó là lý giải của việc kiến thức cao cấp PHP nó khó đến mức nào. Cần lắm một cách học hiệu quả, cần lắm một giải pháp tối ưu và cũng cần lắm một chiến lược hiệu quả cho việc nắm bắt chúng.

Nếu bạn thực sự nghĩ PHP là sự nghiệp mà mình cần theo đuổi, đừng ngần tìm hiểu về nó, đừng ngần ngại tới các lớp học để được truyền đạt kiến thức. Vì thế giới sẽ mở ra trước mắt bạn một kiến thức mà phần đông các lập trình viên yêu thích và rồi bạn sẽ cảm thấy rằng học PHP để có được những bước thành công trong sự nghiệp là điều không quá tầm tay của bạn.

Xin dùng một câu nói của triết gia Kilen Pile để kết thúc bài viết này "Nếu bạn tự nghiên cứu một công nghệ mà cả thế giới còn chưa biết về nó thì điều đó quả thật vĩ đại. Nhưng điều mà bạn nghiên cứu đã là điều đã được chứng minh, thì đó quả thật là một tối kiến".

Thứ Bảy, 10 tháng 8, 2013

NHỮNG PHƯƠNG PHÁP HỌC PHP CƠ BẢN

Khi bạn chưa biết những gì cơ bản về ngôn ngữ lập trình php bạn lên học như thế nào ?


  • Các bạn có thể học hỏi thêm và tham khảo ở trang chủ chia sẻ kiến thức php cơ bản : http://daotaolaptrinh.edu.vn/tai-lieu-php.html
PHP là một ngôn ngữ lập trình web dễ học, dễ tiếp cận, nên nếu bạn chưa có kiến thức gì về nó. Thì cũng nên xem xét các phương pháp sau, dưới đây mình sẽ chia sẻ một vài kinh nghiệm của bản thân về học php căn bản 
học php cơ bản

- Nên tự viết code càng nhiều càng tốt.

Học lập trình, dù là bất cứ ngôn ngữ lập trình nào thì việc tự thực hành code, code theo các bài giảng học php cơ bản trên mạng, các tài liệu về học lập trình php, các video học về php căn bản trên youtube… Cứ sau mỗi lần học lý thuyết bạn hãy tự code lại. Việc đó sẽ giúp bạn củng cố lại kiến thức, hiểu rõ hơn về php khi áp dụng vào lập trình như thế nào.
- Tận dụng các trang web , diễn đàn PHP trên mạng
Trên internet, google là một nguồn tài nguyên rất lớn mà không hề xa lạ với tất cả những người học lập trình . Ngày nay, có rất nhiều trang mạng học tập, đào tạo lập trình web, các diễn đàn công nghệ thông tin … Nơi mà các bạn có thể học hỏi những kiến thức từ cơ bản đến chuyên sâu về lập trình.
PHP cũng vậy, các trang web về đào tạo php, Yahoo diễn đàn chia sẽ kiến thức học php có rất nhiều. Đó chính là nơi mà bạn có thể thu nhập được những kiến thức bổ ích nhất.- Tận dụng các phương pháp tốt
Trên thế giới internet có rất nhiều tài liệu học về lập trình php và bản thân nó cũng tồn những tác động trái ngược . Do vậy, việc bạn tiếp thu nó cũng cần có sự chọn lọc . Hãy luôn đặt ra cho minh những câu hỏi “tại sao ?” để có được những phương pháp tốt nhất khi làm việc với php dù là cơ bản hay nâng cao.
- Viết code dễ hiểu
học code căn bản

Học cách viết code khoa học sẽ là yếu tố rất cần thiết cho bạn trong quá trình chỉnh sửa học có những nâng cấp về php sau này.- Ghi comment cho bất cứ gì bạn phải nghĩ khi code.
Khi code, việc để lại chú thích trong mỗi đoạn code sẽ giúp cho bạn dễ dàng nhớ lại những cấu trúc, hay những cú pháp lập trình còn chưa hiểu . Ngoài ra, khi bạn giao gửi code cho những đồng nghiệp cùng dự án hay những người mới học code thì họ cũng có thể dễ dàng hơn trong việc tiếp cận với bản code php của bạn.
- Hãy biết gom các đoạn code tương tự vào một hàm. Bạn cũng đừng ngại sử dụng Include vì nó luôn là 1 hàm hữu ích để bạn có thể thu gọn những trang code của minh.
- Các bạn đừng ngại thay đổi mà hãy cố gắng áp dụng kỹ thuật mới cho mỗi dự án được

  
Những điều mình kể trên đây là những phương pháp, kinh nghiệm cơ bản cho việc học php cho các bạn mới học php hay những bạn đã có nền tảng chuyên sâu. Không biết có bạn nào đã áp đụng được đầy đủ những cách trên chưa nhỉ? :D

Thứ Sáu, 9 tháng 8, 2013

Các thuộc tính cơ bản trong form trong trang php .

Chúng ta đã thấy một trong những ứng dụng quan trọng của ngôn ngữ lập trình PHP đó là cơ chế giúp người dùng tương tác xử lý dữ liệu trên form . Nhằm mục đích giúp cập nhật thông tin một cách cơ động và dễ dàng quản lý chung hơn bởi sự kết hợp tuyệt vời của cơ sở dữ liệu. Tuy nhiên để làm được điều ấy PHP yêu cầu form phải đáp ứng 1 số quy định cơ bản chung đặt ra. 

 Mình xin phép chia sẻ một chút kinh nghiệm học php cơ bản , lập trình web với PHP mà mình được học trên các diễn đàn hay trang web đào tạo lập trình.

tạo form php cơ bản

Đầu tiên khi khách nhập liệu username vào thì chúng sẽ chuyển tới trang check.php để tiến hành xử lý thông tin người dùng nhập vào . Trên phương thức POST, với tên form là reg. Giá trị mà chúng ta gởi là username vừa nhập liệu.
Form PHP cho phép ta lấy giá trị dựa vào 2 phương thức POST và GET.
Đới với POST ta có : $_POST[‘Giá trị’]
Đối với GET ta có : $_GET[‘Giá trị’]
1 Phương thức GET:

Phương thức này cũng được dùng để lấy dữ liệu từ form nhập liệu. Tuy nhiên nhiệm vụ chính của nó vẫn là lấy nội dung trang dữ liệu từ web server. 
Ví dụ:
Với url sau: shownews.php?id=50
Vậy với trang shownews ta dùng hàm $_GET[‘id’] sẽ được giá trị là 50.
2- Phương thức POST:
Phương thức này được sử dụng để lấy dữ liệu cơ bản từ form nhập liệu. Và chuyển chúng lên trình chủ webserver.
Ví dụ: 
Xây dựng 1 trang PHP với nội dung gồm form nhập liệu họ và tên. Sau đó dùng 1 file php để xuất ra thông tin họ và tên mà người sử dụng vừa nhập liệu.
Sau đây là sự giống nhau và khác biệt giữa chúng.
- Giống nhau: Đều gửi dữ liệu tới server để xử lý, sau khi người dùng nhập thông tin vào Form PHP
- Khác nhau:

học cơ bản về post và get trong form php
POST: Bảo mật hơn GET vì dữ liệu được gửi ngầm, không xuất hiện trên URL của trang PHP
GET: Dữ liệu được gửi tường minh, chúng ta có thể nhìn thấy trên URL, đây là lý do khiến nó không bảo mật so với POST. Nó còn bị giới hạn số ký tự bởi URL của web browsers.

GET thực thi nhanh hơn POST vì nhứng dữ liệu gủi đi luôn được Webbrowser cached lại

Khi dùng phương thức POST thì server luôn thực thi và trả về kết quả cho client, còn phương thức GET ứng với cùng 1 yêu cầu đó webbrowser sẽ xem trong cached có kết quả tương ứng với yêu cầu đó ko và trả về ngay không cần phải thực thi các yêu cầu đó ở phía server

Đối với những dữ liệu luôn được thay đổi thì chúng ta nên sử dụng phương thức POST, còn dữ liệu ít thay đổi chúng ta dùng phương thức GET để truy xuất và xử lý nhanh hơn.
Chúng ta thường sử dụng 2 phương thức POST và GET. Tuy nhiên lúc nào sử dụng POST, lúc nào sử dụng GET ? Câu hỏi đó tưởng như dễ trả lời có những cái chúng ta thường xuyên sử dụng theo 1 thói quen, chỉ biết dùng sao cũng chạy cả nên rất ít người hiểu rõ và trả lời được câu hỏi này.
Kết thúc bài này mình mong các bạn đã học được kỹ thuật sử dụng POST lúc nào? lúc nào sử dụng GET ? trong quá trình xử lý form cơ bản của 1 trang php . Một trong những vấn đề không thể thiếu đối với bất kỳ một website động nào.

Học php cơ bản 2 - Biến trong PHP

Đối với các bạn chưa từng học về lập trình php , chắc các bạn đang còn xa lạ với hằng và biến. Biến trong PHP được bắt đầu bằng dấu "$", theo sau đó là tên biến. Biến là một trong những thành phần cùng với mảng và các hàm để lập trình các dự án website.

- Tên biến hợp lệ phải bắt đầu là một chữ cái hay một đường gạch dưới (_), theo sau đó có thể là bất kỳ chữ cái, số hoặc là (_) .
Ví dụ: $nguyen, $phi..
- Ví dụ :
o $var = "Bob";
o $Var = "Joe";
o echo "$var, $Var"; // outputs "Bob, Joe"
o $4site = 'not yet'; // không hợp lệ
o $_4site = 'not yet'; // hợp lệ

Có 4 kiểu sử dụng biến là:
local : Kiểu biến cục bộ
global : Kiểu biến toàn bộ, biến toàn cục
static : Kiểu biến tĩnh
parameter : Kiểu tham số

1.local
Một biến được khai báo trong 1 hàm thì gọi là biến cục bộ và chỉ có thể sử dụng được trong hàm PHP đó.
Ví dụ: Sử dụng biến theo kiểu cục bộ
<?php
function test()
{
    echo $abc;
}
$abc="Năm nay là năm 2012";
test();
$abc="Năm nay là năm 2013";
echo $abc;
?>
Kết quả: Năm nay là năm 2013

2.global

Biến toàn cục là biến được xác định bên ngoài bất cứ hàm nào, có thể được sử dụng cho bất cứ phần code nào không nằm trong hàm. Để khai báo biến toàn cục ta sử dụng từ khóa global trước tên biến.
Ví dụ: Sử dụng biến với từ khóa global(viết thường)
<?php
$x=13;
$y=2000;
function abc()
{
    global $x,$y;
    $y=$x+$y;
}
abc();
echo $y;
?>
Kết quả: 2013

Ví dụ 2: Sử dụng biến với từ khóa GLOBALS (viết hoa)
<?php
$x=13;
$y=2000;
function abc()
{
    $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
}
abc();
echo $y;
?>
Kết quả: 2013

3.static

Khi một hàm php được hoàn thành, tất cả các biến cơ bản của nó thường bị xóa. Tuy nhiên, đôi khi nếu bạn muốn không bị xóa thì sử dụng từ khoá static khi bạn lần đầu tiên khai báo các biến.
Ví dụ: Sử dụng biến theo kiểu static
<?php
function abc()
{
    static $x=2012;
    echo $x.' - ';
    $x++;
}
abc();
abc();
abc();
?>
Kết quả: 2012 - 2013 - 2014 -

4.parameter
Một biến sử dụng theo kiểu parameter(tham số) là một biến cục bộ của hàm, được khai báo khi khai báo hàm.
Ví dụ:
<?php
function mystring($x)
{
    echo $x;
}
mystring("Học lập trình web với PHP có dễ không ?");
?>
Kết quả: Học lập trình web với PHP có dễ không ?
Chú ý:
Mỗi lần hàm được gọi, biến static đó sẽ vẫn chứa đựng thông tin cơ bản từ lần gọi trước. Biến sẽ vẫn cục bộ đối với hàm.
Vậy theo bạn, thì học lập trình web với PHP có dễ không ?

Học php cơ bản 1 - Php và ngôn ngư siêu văn bản HTML


ngôn ngữ lập trình php và mysqlPHP là một ngôn ngữ lập trình mã nguồn mở đáp ứng cho sự phát triển các nhu cầu lập trình và thiết kế trang web đào tạo, web kinh doanh ... Học ngôn ngữ lập trình PHP có cách thức viết gẫn gũi với C và PERL cơ bản.

Tuy nhiên PHP viết dễ dàng và không cầu kỳ như C hoặc PERL với cách đặt biến dễ chịu


Mình có thể làm nhiều thứ trên một trang web, chẳng hạn như học (mà bạn đang làm đấy), chơi, thảo luận, trao đổi, thông tin, v.v…
   Bây giờ, chuyện thứ 2: bạn có nghe nói về (x)HTML chưa? Nếu chưa, bắt buộc bạn phải biết mới có thể tiếp tục được!
XHTML là tên mới của ngôn ngữ HTML (mà bạn có thể đã nghe nói đến), cho dù bạn viết bằng ngôn ngữ nào, thì nó cũng cùng mục đích: viết một trang web cơ bản (tức là chưa có trang trí màu mè hoa lá cành chi cả). Từ rày về sau tôi sẽ luôn gọi là HTML( theo thói quen cũ) để chỉ ngôn ngữ XHTML.
Nếu bạn không biết XHTML hay HTML thì bạn không thể học PHP được.
Nếu cần các bạn có thể tìm đọc các tài liệu hướng dẫn HTML cấp tốc bằng tiếng Anh ở http://www.w3c.org hoặc tiếng Pháp ở SiteDuZeRo
   Như đã nói: XHTML là một ngôn ngữ cho phép bạn viết một trang web, mình có thể cho chữ in đậm, nghiêng, chèn hình ảnh, âm thanh,… bằng cách gõ các kí hiệu đặc biệt (tiếng anh gọi là các tags, tiếng pháp gọi balises). Trong bài viết này tôi gọi HTML cho gọn! Cái XHTML nó giống giống thế này này:
<html xmlns="http://www.w3.org/1999/xhtml"  xml:lang ="fr" lang="fr" >
    <head>
        <title>Welcome to my site!</title>
        <meta  http-equiv=" Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <body>
        <p>
            Welcome to my website!<br />
            Click here to enter !
        </p>
    </body>
    </html>
   PHP là một ngôn ngữ được lồng vào giữa những đoạn mã có cấu trúc HTML, đây là một ví dụ nhỏ về PHP:
<html xmlns="http://www.w3.org/1999/xhtml"  xml:lang ="fr" lang="fr">
    <head>
        <title>Chào mừng đến với công ty đào tạo lập trình An tâm Đức!</title>
        <meta  http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <body>
        <p>
            Welcome to my website!<br />
            <?php echo("You are the visitor n°" . $nb_visitors); ?>
            Click here to enter !
        </p>
    </body>
    </html>
   Có gì mới ở đây ta ? Hãy xem hàng : <?php echo("You are the visitor n°" . $nb_visitors); ?> 
   Lúc nào cũng thấy ngôn ngữ HTML, giữa lòng nó mình lại bắt gặp cấu trúc của PHP ! Những gì tôi sẽ hướng dẫn là thao tác trên những dòng kiểu này đấy ! À, mấy kí tự lạ lùng này ($ ;?>) có thể sẽ làm các bạn sợ, nhưng tôi bảo đảm rồi các bạn sẽ quen thôi !
   Một trang HTML thì có phần mở rộng là .html, còn một trang php thì phần mở rộng của nó là .php ! PHP có nhiều phiên bản (version) lắm, version hiện nay là v5 rồi!
Có trang nào chỉ chứa toàn ngôn ngữ PHP mà không có HTML không ?
Ừm, thiệt tình là không ! Dù sao đi nữa mình cũng cần phải có HTML để viết một trang web, mình không thể tránh khỏi học HTML cơ bản được đâu !
Tóm lại, HTML rất tiện lợi,nhưng còn hạn chế. Với sự giúp đỡ của PHP bạn có thể làm được nhiều thứ lợi hại hơn cho trang web của bạn. Ví dụ hả ?
  • Một diễn đàn, nơi mọi người thảo luận, trao đổi, thông tin cho nhau, giúp đỡ nhau khi ai đó gặp vấn đề,…
  • Chat chit
  • Một sổ lưu niệm hay lưu bút, nơi mà khách viếng thăm có thể ghi lại vào đó cảm nghĩ của họ về trang web của bạn, mà những người khác (ngoài bạn ra) cũng có thể đọc được !
  • Newsletter : bạn có tin gì mới ? Chỉ cần click một cái là bạn có thể gửi mail tới tất cả những thành viên trong diễn đàn của bạn! Hoàn toàn tự động nhé, không phải mất công ngồi viết đâu!
  • Một bộ đếm visitors
  • Làm blog, mọi người có thể comment vào đó…
Và còn nhiều hơn nữa mà ... mình chưa biết! Hì hì ...
Những gì cần nhớ cơ bản ở đây là học PHP giúp bạn tạo một trang web động, nó có thể tự động cập nhật trang web của bạn ngay cả khi bạn đi Ấn Độ du lịch, trang web của bạn vẫn cập nhật liên tục số người viếng thăm, những gì khách comment vào, những tin tức mới,…

Thứ Năm, 8 tháng 8, 2013

Học php cơ bản 3 - Gọi hàm trong php

Để giảm thời gian lặp lại 1 thao tác code nhiều lần, PHP hỗ trợ người học và làm lập trình web việc tự định nghĩa cho mình những hàm php cơ bản có khả năng lặp lại nhiều lần trong website. Việc này cũng giúp cho người lập trình kiểm soát mã nguồn một cách mạch lạc. Đồng thời có thể tùy biến ở mọi trang.
Hàm php luôn tồn tại trong ngôn ngữ lập trình web bất kì, bên cạnh một thành phần loại dữ liệu được gọi là mảng trong php. Hàm có hai loại: hàm trả về giá trị và hàm không có giá trị trả về (hàm này được xem như hàm thủ tục).
Ngoài các hàm mà ngôn ngữ lập trình hỗ trợ, PHP còn cho phép người dùng xâp dựng các hàm tự định nghĩa, những hàm này còn được gọi là hàm người dùng.
Một hàm là một tập hợp các cấu trúc lệnh (dòng lệnh) và cuối cùng cho ra một giá trị. Nếu bạn phải thực hiện những tính toán khá dài dòng, phức tạp và phải thực hiện nhiều lần cùng một tính toán như vậy, thay vì mỗi lần tính bạn viết một đống dòng lệnh, bạn chỉ cần viết một lần và đặt tên cho nó là một hàm, rồi sau đó gọi lại hàm này bất cứ lúc nào bạn muốn, không cần phải viết lại một đống dòng lệnh nữa !
Tôi sẽ cho các bạn xem tại sao dùng hàm lại tiện lợi và hữu ích !
Gọi hàm php (call function) có cú pháp rất cơ bản, chỉ cần khai báo tên hàm, trong trường hợp hàm như một hàm không có giá trị trả về (thủ tục) thì bạn chỉ cần khai báo như sau:
function_name([tham số nếu có]);
Trong trường hợp hàm được xem như một hàm có giá trị trả về, bạn có thể gọi hàm với một biến đón giá trị trả về như sau:
$i=function_name([tham số nếu có]);
Để tìm hiểu cơ bản cách gọi hai loại hàm PHP trên, trước tiên bạn thử học qua các ví dụ sau:
<html>
<head>
  <title>Toyota's Auto Parts - Customer Orders</title>
</head>
<body>
<h3>Toyota's Auto Parts</h3>
<b>Customer Orders<b><br>
<?php
 
  //Độc giá trị của file vào phần tử mảng
   $orders= file("C:\AppServ\www\Examples\files\order.txt");
   //Đếm có bao nhiêu phần tử mảng
   $number_of_orders = count($orders);
   if ($number_of_orders == 0)
   {
     echo "<p><strong>No orders pending."
         ."Please try again later.</strong></p>";
   }
   echo "<table border=1>\n";
   echo "<tr><th bgcolor = \"#CCCCFF\">Order Date</td>
             <th bgcolor = \"#CCCCFF\">Tyres</td>
             <th bgcolor = \"#CCCCFF\">Oil</td>
             <th bgcolor = \"#CCCCFF\">Spark Plugs</td>
             <th bgcolor = \"#CCCCFF\">Total</td>
             <th bgcolor = \"#CCCCFF\">Address</td>
         <tr>";
   $total=0;
   for ($i=0; $i<$number_of_orders; $i++)
   {
      //split up each line
      $line = explode( "\t", $orders[$i] );
  //Sử dụng hàm explode có giá trị trả về
      $line[1] = intval( $line[1] );
      $line[2] = intval( $line[2] );
      $line[3] = intval( $line[3] );
   
  //In ra từng phần tử mảng
      echo "<tr><td>$line[0]</td>
                <td align = right>$line[1]</td>
                <td align = right>$line[2]</td>
                <td align = right>$line[3]</td>
                <td align = right>$line[4]</td>
                <td>$line[5]</td>
            </tr>";
 $total+=$line[4];
   }
   echo "</table>";
 // sử dụng hàm printf không có giá trị trả về
   printfs("Total amount of order: %.2f", $total);
?>
</body>
</html>

 

Kết thúc bài học này, các bạn đã có những kiến thức cơ bản về hàm trong PHP. Trên thực tế việc sử dụng các hàm để triệu gọi đóng vai trò rất quan trọng. Bản thân việc đó, nó giúp mã nguồn của người sử dụng dễ dàng chỉnh sửa hơn, việc sử dụng nó trên website làm sao cũng sẽ tùy biến hơn so với cách viết trực tiếp trên từng file.

Khắc phục lỗi trong PHP và MySQL

PHP là một ngôn ngữ lập trình mã nguồn mở đáp ứng cho sự phát triển web và sử dụng song song với ngôn ngữ siêu văn bản HTML.
 Ngôn ngữ lập trình PHP có cách thức viết gẫn gũi với C và PERL , tuy nhiên quá trình học và thực hành cơ bản PHP thì viết dễ dàng và không cầu kỳ như C hoặc PERL với cách đặt biến dễ chịu.

- Dạng truyền biến:
Khi lập trình ta thường thấy nhiều lỗi do cách thức truyền biến ra IE hoặc Netcape do form . Khi submit một form nào đó , các biến trong form có thể truy xuất ra , và được sử dụng như là biến toàn cục ( global ) , $_POST , $_GET , $_VAR … .NGoài cách đưa biến từ form còn có session và cookies .
Mỗi con đường truyền biến bao giờ cũng có cái lợi và các hại của nó . Ở đây xin đề cập đến vấn đề tác hại của nó.
Khi một lập trình viên được đào tạo lập trình với việc học PHP cơ bản nếu không cẩn thận sử dụng biến có thể dẫn đến nhiều sự nguy hiểm khác nhau .
Các thức truyền biến được xem là nguy hiểm nhất là dạng truyền biến trên bar address của các chương trình duyệt web . Khi đó kẻ tấn công có thể lợi dụng những sơ hở này để khai thác và nguy hiểm là SQL injection .
Ví dụ . Khi bạn sử dụng các biến trực tiếp trên address bar để dùng cho các mệnh đề logic , thì thường dễ bị vượt qua .
Code ví dụ :
?
1
if ($hello) echo "hello";
Bản code ở trên cho thấy nếu tồn tạn biến $hello rồi sẽ thực thi . Vậy vấn đề chỉ cần cho nó cơ chế tồn tại . Vì thế ta nên kiểm tra biến với một giá trị nào đó , xác định thì lỗi có thể được thông qua ( nhưng nếu source của bạn đã được tham khảo thì điều này coi như vô nghĩa – Sẽ được nói sau tại mục PHP exploit local ) .
Submit form với hình thức GET , thì các biến trong form sẽ được truyền trực tiếp lên address bar và nếu sử dụng biến toàn cục đó liên quan đến Uncode thì … hiệu quả sẽ giảm đi . Chẳng hạn bạn đã học và tạo một form như sau :
?
1
2
3
4
<form name="test" action="" method=GET>
<input name="key" type=text>
<input type=submit value="Test">
</form>
Xin được nói sơ về SQL injection với cách truyền biến này .
Ví dụ :
?
1
$a = MySQL_query("SELECT * FROM user $osd");
Nếu $osd trên address lộ ra như vậy : ORDER by id DESC Thì ta có thể thay thế biến osd với một giá trị khác là code PHP chẳng hạn . Vậy là chẳng khác nào tạo điều kiện cho kẻ tấn công thực hiện những hành động chết người . Ví dụ :
?
1
$osd="); MySQL_query("INSERT INTO user .....");
KHi bạn nhập ttext với dạng unicode thì khi truyền trên address bar các ký tự sẽ không còn chính xác nữa . Vậy làm cách nào khắc phục .
Vâng ! Có khá nhiều cách , bạn có thể cookies , session hay hidden biến đó.
Về các vấn đề đặt biến dạng hidden trong form HTML . Lợi thì có lợi nhưng bản thân nó hại vẫn có .
Ví dụ :
Nếu bạn đặt một biến hidden nào đó dùng để check hoặc cho một mệnh đề logic thực thi thì khả năng bảo mật sẽ không còn , chỉ cần view source trong CT duyệt web là lộ nguyên si . Và khi kẻ tấn công có thể tạo ra các biến đó thì … việc check mệnh đề coi như vô nghĩa .
Và khi cho phép nhận thông tin từ các input để đưa vào CSDL rồi chuyển tải ra website , nếu không lọc những thẻ HTML cơ bản cho phép thực thi JAVAscript cũng nguy hiểm khôn lường : Tận dụng để nhúng các loại sâu bọ , Các đoạn mã chôm thông tin ( cross site Scripting )

Sử dụng biến từ Cookies .

Cookies rất hiệu quả để chứa những thông tin trong lập trình php, nhưng lạm dụng nó quá có thể dẫn đến nguy hiểm . Bản thân một lập trình viên khi set cookies các thông tin về một tài khoản nào đó thì …cơ bản chỉ cần xem cookies là xong . Cách khắc phục là mã hóa nó hết .
Thứ 2 . Ví dụ một cookies trong php sau đây:
?
1
2
userid=11
passhash="helloall"
Vấn đề ở đây là về việc chứa thông tin không cần thiết là password của tài khoản. Dù mã hóa hay không mã hóa vẫn nguy hiểm . Nếu mã hóa dạng thông thường như dạng base64 , crypt … vẫn dịch ngược được và dạng MD5 thì vẫn có thể Brute Force .
Vậy cookies những gì cần thiết không nên chứa những thông tin mang tính bảo mật  trong php.
Đó là những lỗi cơ bản ,mà người học lập trình cần chú ý khi quan tâm đến php.

Safe mode PHP and MySQL local exploit ( LOCAL EXPLOIT)

Đây là một lỗi bảo mật nguy hiểm nhất . Nói nôm na là kỹ thuật khai thác thông tin từ host chung server .
Ví dụ khi bạn có host ở server ABC và kẻ tấn công cũng có host chung server và chung ổ đĩa với bạn thì hết sức nguy hiểm .
Kẻ tấn công có thể làm mọi việc thì theo độ bảo mật của server đó . cụ thể như : xem source ( tìm lỗi bảo mật của lập trình ) ,xem thông tin tài khoảng host của bạn ( username , password , email ) , chiếm server , by pass server ……
Xin được nói sơ về lỗi này:
Chỉ cần 1 vài backdoor trên server là nguy hiểm không lường . Khi cơ sở dữ liệu của bạn dùng MySQL để lộ password , user của database thì việc sinh sát CDSL đó hoàn toàn có thể thực thi ( DROP , QUERY , INSERT … ) , và đặc biệt nguy hiểm đối với các server dùng Cpanel để quản lý bản hosting cho mỗi tài khoản . Một số Cpanel tạo db có info trùng với tài khoải login và Cpanel , FTP , Webmail , POP3 … , và chỉ một vài thủ thật cơ bản của kẻ tấn công thì website của bạn có thể thuộc quyền kiểm soát của hắn với đầy đủ quyền hạn .
Nếu PHP chạy trên Linux thì việc soi server tìm thông tin chỉ là việc đơn giản nhưng cũng tuỳ theo độ bảo mật của server đó. Tình hình hiện nay một số Công ty VN hosting sử dụng PHP và MySQL trên Linux cũng rất nhiều và việc bảo mật còn khá sơ sài . Vì vậy phát triển Thương mại điện tử muốn an toàn trước hết phải bảo mật cơ sỡ dữ liệu một cách an toàn .
Ngoài cách trên , còn có lỗi bảo mật của Web server : Apache , mức độ tận dụng cũng rất cao với lôĩ này : Apache chunk-ed Vul .
Nguyên nhân xảy ra lỗi này :
- Safe mode : được mở
- Bản thân các thư mục chưa được set quyền .
- Chưa setting cho php.ini kỹ .
- PHP cho phép set php.ini bất kỳ .
- MySQL cho phép truy xuất vào sỡ dữ liệu với host chung : localhost

Dữ liệu từ form HTML

Như ta thường biết , để đưa bất cứ dữ liệu từ người sử dụng vào CSDL ta đều thông qua dạng truyền biến form HTML , gồm nhiều dạng và nhiều cách khác nhau .
Vì thế lỗi cũng rất nhiều nếu ta không kịp ngăn chặn , có thể dẫn đến những hậu quả khó lường.
Dù truyền biến dạng POST , GET thì lỗi vẫn có . Và lỗi nghiêm trọng là dùng các biến ẩn để so sánh hoặc thực thi một mệnh đề logic nào đó .
Ví dụ bạn làm 1 biến ẩn như password , email … thì kẻ tấn công có thể view source của bạn , thay đổi các trường và thay đổi luôn action . Vì thế nếu lỗi thì kẻ tấn công có thể tấn công trực tiếp từ những lỗi này với vài thủ thuật nêu trên .
Cách khắc phục : Không đặt những biến ẩn với mục đích so sánh hay thực thi mệnh đề logic .
Nếu bạn lập trình đưa trực tiếp các biến vào thẳng CSDL mà không thông qua một bước kiểm tra nào đó thì nguy hiểm .
Các nguy hiểm có thể xảy ra :
- Cross site scripting
- SQL injection
- Buffer overflow in PHP & MySQL
Vì vậy bước kiểm tra căn bản về các biến vào hết sức quan trọng .
Cách khắc phục :
- Cross site scripting : Để khắc phục lỗi này , bạn nên xử lý biến vào theo kiểu chặn các tag HTML các hàm PHP hổ trợ làm việc đó : str_replace , strip_tags , htmlspecialchars , htmlentities … ( tham khảo thêm về các hàm sử lý chuỗi ) để xử lý các tag như <> chuyển sang mã HTML hay thêm ký tự nào vào , …. , thay thế các text như onmouseover , onload …
- SQL injection : các biến đưa vào thường nguy hiểm nếu “dính” dấu ‘ , “” hoặc # , vì thế cách khắc phục cũng như trên hoặc thêm hàm addslashes .
- Buffer overflow in MySQL : cái này thường nghiêm trọng , khi bạn đưa biến vào CSDL mà không chống flood thì kẻ tấn công cò thể fresh trình duyệt web hoặc dùng những script tấn côngf từ server , host hay localhost khác , làm tràn server . Khiến tắt nghẽn … và server có thể cắt host bạn như chơi . Cách khắc phục , so sánh biến nhập vào trùng hay thơi gian … nói chung có nhiều cách để làm việc này , hiệu quả và nhanh thì dùng hàm header sau khi submit . ( Nếu bạn lập trình dùng hàm MySQL_fetch_array , cũng dễ bị tràn server , lý do gôm dữ liệu vào mảng nếu nhiều record thì thế nào … vì thế bạn có thể chuyển qua dùng MySQL_result , nó lấy dữ liệu theo filed và column )
Lưu ý về dạng upload file : cái này cũng quan trọng không kém , vì thế bạn phải kiểm tra dạng file khi được upload vì không sẽ có thể làm host của bạn dính backdoor .
Như vậy, trên đây khắc phục lỗi trong việc cài đặt và lập trình PHP & MYSQL. Hi vọng mang lại được 1 phần nào đó kiến thức cơ bản cho các bạn học php.