PHP khởi đầu là một dự án mã nguồn mở nhỏ đã phát triển khi ngày càng có nhiều người phát hiện ra nó hữu ích như thế nào. Rasmus Lerdorf đã tung ra phiên bản PHP đầu tiên vào năm 1994
PHP là từ viết tắt đệ quy của "PHP. Bộ tiền xử lý siêu văn bản"
PHP là ngôn ngữ kịch bản phía máy chủ được nhúng trong HTML. Nó được sử dụng để quản lý nội dung động, cơ sở dữ liệu, theo dõi phiên, thậm chí xây dựng toàn bộ trang web thương mại điện tử
Nó được tích hợp với một số cơ sở dữ liệu phổ biến, bao gồm MySQL, PostgreSQL, Oracle, Sybase, Informix và Microsoft SQL Server
PHP rất linh hoạt trong quá trình thực thi, đặc biệt là khi được biên dịch thành một mô-đun Apache ở phía Unix. Máy chủ MySQL, sau khi được khởi động, thậm chí sẽ thực hiện các truy vấn rất phức tạp với bộ kết quả khổng lồ trong thời gian lập kỷ lục
PHP hỗ trợ một số lượng lớn các giao thức chính như POP3, IMAP và LDAP. PHP4 đã thêm hỗ trợ cho Java và các kiến trúc đối tượng phân tán [COM và CORBA], lần đầu tiên có thể phát triển n-tier
PHP đang tha thứ. Ngôn ngữ PHP cố gắng dễ tha thứ nhất có thể
Cú pháp PHP giống như C
Các ứng dụng phổ biến của PHP
PHP thực hiện các chức năng hệ thống, tôi. e. từ các tệp trên hệ thống, nó có thể tạo, mở, đọc, viết và đóng chúng
PHP có thể xử lý các biểu mẫu, tôi. e. thu thập dữ liệu từ tệp, lưu dữ liệu vào tệp, thông qua email bạn có thể gửi dữ liệu, trả lại dữ liệu cho người dùng
Bạn thêm, xóa, sửa đổi các thành phần trong cơ sở dữ liệu của mình thông qua PHP
Truy cập các biến cookie và đặt cookie
Sử dụng PHP, bạn có thể hạn chế người dùng truy cập một số trang trên trang web của mình
Nó có thể mã hóa dữ liệu
Đặc điểm của PHP
Năm đặc điểm quan trọng làm cho bản chất thực tế của PHP trở nên khả thi –
- Sự đơn giản
- Hiệu quả
- Bảo vệ
- Uyển chuyển
- quen thuộc
Tập lệnh "Xin chào thế giới" trong PHP
Để có cảm nhận về PHP, trước tiên hãy bắt đầu với các tập lệnh PHP đơn giản. Kể từ "Xin chào, Thế giới. " là một ví dụ cần thiết, đầu tiên chúng ta sẽ tạo một chút thân thiện "Xin chào, Thế giới. " kịch bản
Như đã đề cập trước đó, PHP được nhúng trong HTML. Điều đó có nghĩa là trong HTML thông thường của bạn [hoặc XHTML nếu bạn là người tiên tiến], bạn sẽ có các câu lệnh PHP như thế này -
Hello World
Nó sẽ tạo ra kết quả sau -
Hello, World!
Nếu bạn kiểm tra đầu ra HTML của ví dụ trên, bạn sẽ nhận thấy rằng mã PHP không có trong tệp được gửi từ máy chủ đến trình duyệt Web của bạn. Tất cả PHP có trong trang Web được xử lý và loại bỏ khỏi trang;
Tất cả mã PHP phải được bao gồm bên trong một trong ba thẻ đánh dấu đặc biệt ATE được Trình phân tích cú pháp PHP nhận ra
Thẻ phổ biến nhất là the và chúng tôi cũng sẽ sử dụng thẻ tương tự trong hướng dẫn của mình
Từ chương tiếp theo, chúng ta sẽ bắt đầu với Cài đặt môi trường PHP trên máy của bạn và sau đó chúng ta sẽ tìm hiểu hầu hết các khái niệm liên quan đến PHP để giúp bạn cảm thấy thoải mái với ngôn ngữ PHP
Việc nó được sử dụng rộng rãi cũng có nghĩa là bạn có thể tìm thấy sự hỗ trợ trực tuyến rất dễ dàng [ví dụ: trong nhóm Facebook của tôi 😉 ]
Lập luận chính chống lại PHP là được cho là hiệu suất và hiệu quả kém.
Chắc chắn rồi, bạn không thể mong đợi PHP hiệu quả như C hay C++. Đúng
Tuy nhiên, trừ khi bạn đang làm việc trên các hệ thống quan trọng hoặc hệ thống nhúng trong đó hiệu quả là ưu tiên hàng đầu, còn không khoảng cách hiệu suất này hầu như không phải là vấn đề
Hơn nữa, PHP [phiên bản 7] khá tốt khi so sánh với các ngôn ngữ tương tự
Trên thực tế, PHP có thể nhanh hơn 382% so với Python, nhanh hơn 378% so với Perl và nhanh hơn 195% so với Ruby
PHP ĐƯỢC SỬ DỤNG ĐỂ LÀM GÌ?
PHP rất phù hợp với các loại nhiệm vụ khác nhau
Ví dụ
giả sử bạn cần triển khai chương trình phụ trợ HTTP hoặc dịch vụ REST. Trong trường hợp đó, bạnbạn muốn sử dụng một ngôn ngữ.
- được hỗ trợ tốt bởi các máy chủ web được sử dụng nhiều nhất như Apache
- tích hợp hoàn hảo với cơ sở dữ liệu SQL như MySQL
- có thể xử lý văn bản, chuỗi và dữ liệu số dễ dàng
PHP hoàn toàn phù hợp. Trên thực tế, nó thường là lựa chọn đầu tiên cho các dự án như vậy
Nhìn này
Đó là biểu đồ HTML5 tôi đã tạo tại nơi làm việc. Nó cho thấy nhiệt độ không khí trong 24 giờ qua
Bản thân biểu đồ được tạo bằng thư viện canvas có tên RGraph, nhưng các giá trị nhiệt độ thực tế [tức là dữ liệu phụ trợ] được tính toán, lưu trữ và truy xuất bởi chức năng phụ trợ PHP< . .
Nhưng làm thế nào để bạn biết liệu PHP có phải là lựa chọn tốt cho các dự án của bạn hay không?
Một điểm khởi đầu tốt là hỏi 3 câu hỏi này
- dự án của tôi có sử dụng các điểm mạnh và chức năng của PHP không?
- tôi có thể chạy dự án này từ máy chủ web hoặc bằng trình thông dịch PHP dòng lệnh không?
- dự án này có yêu cầu hiệu suất và hiệu quả cực cao không?
Nếu bạn trả lời có cho hai câu hỏi đầu tiên và không cho câu hỏi cuối cùng, thì PHP là một ứng cử viên sáng giá
Bây giờ, đủ nói chuyện
Đã đến lúc xem một số ví dụ thực tế về những gì bạn có thể làm với PHP, bắt đầu với thứ mà bạn chắc chắn sẽ sử dụng. xác thực .
[easy-tweet tweet="Bạn có thể làm gì với PHP? 9 ví dụ tuyệt vời về những gì PHP có thể được sử dụng. " qua="no" hashtags="PHP"]
XÁC THỰC NGƯỜI DÙNG
[BAO GỒM XÁC MINH HAI BƯỚC]
Xác thực người dùng là một trong những nền tảng của bảo mật web
Nếu bạn đang xây dựng một ứng dụng web, rất có thể bạn cần triển khai xác thực người dùng
Có rất nhiều kỹ thuật khác nhau mà bạn có thể sử dụng, từ xác thực tên người dùng/mật khẩu đơn giản đến xác minh hai [hoặc nhiều] bước phức tạp
Và đoán xem?
Với PHP, bạn có thể triển khai bất kỳ kỹ thuật nào trong số này
Hãy nhìn vào một số trong số họ
Xác thực tên người dùng và mật khẩu
Thực hiện xác thực tên người dùng và mật khẩu dễ dàng như so sánh hai chuỗi
PHP có thể dễ dàng lưu trữ và truy xuất các cặp tên người dùng và mật khẩu trên cơ sở dữ liệu, sử dụng mã hóa cấp cao nhất
Bạn có thể tìm hiểu chính xác cách mã hóa mật khẩu trong PHP tại đây. Hướng dẫn băm mật khẩu PHP
Để xem nó có thể được thực hiện như thế nào trong thực tế, hãy xem các hàm login và add_account sau được lấy từ hướng dẫn xác thực của tôi
/* Username and password authentication */
public function login[$name, $password]
{
/* Check the strings' length */
if [[mb_strlen[$name] < 3] || [mb_strlen[$name] > 24]]
{
return TRUE;
}
if [[mb_strlen[$password] < 3] || [mb_strlen[$password] > 24]]
{
return TRUE;
}
try
{
/* First we search for the username */
$sql = 'SELECT * FROM accounts WHERE [account_name = ?] AND [account_enabled = 1] AND [[account_expiry > NOW[]] OR [account_expiry < ?]]';
$st = $this->db->prepare[$sql, array[PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY]];
$st->execute[array[$name, '2000-01-01']];
$res = $st->fetch[PDO::FETCH_ASSOC];
/* If the username exists and is enabled, then we check the password */
if [password_verify[$password, $res['account_password']]]
{
/* Log in ok, we retrieve the account data */
$this->account_id = $res['account_id'];
$this->account_name = $res['account_name'];
$this->is_authenticated = TRUE;
$this->expiry_date = $res['account_expiry'];
$this->session_start_time = time[];
/* Now we create the cookie and send it to the user's browser */
$this->create_session[];
}
}
catch [PDOException $e]
{
/* Exception [SQL error] */
echo $e->getMessage[];
return FALSE;
}
/* If no exception occurs, return true */
return TRUE;
}
/* Adds a new account */
public static function add_account[$username, $password, &$db]
{
/* First we check the strings' length */
if [[mb_strlen[$username] < 3] || [mb_strlen[$username] > 24]]
{
return TRUE;
}
if [[mb_strlen[$password] < 3] || [mb_strlen[$password] > 24]]
{
return TRUE;
}
/* Password hash */
$hash = password_hash[$password, PASSWORD_DEFAULT];
try
{
/* Add the new account on the database [it's a good idea to check first if the username already exists] */
$sql = 'INSERT INTO accounts [account_name, account_password, account_enabled, account_expiry] VALUES [?, ?, ?, ?]';
$st = $db->prepare[$sql];
$st->execute[array[$username, $hash, '1', '1999-01-01']];
}
catch [PDOException $e]
{
/* Exception [SQL error] */
echo $e->getMessage[];
return FALSE;
}
/* If no exception occurs, return true */
return TRUE;
}
Bạn có thể tìm thấy hướng dẫn đầy đủ ở đây. Xác thực người dùng với PHP. một lớp ví dụ
Xác thực cookie và xử lý phiên
~
Cookie web là tiêu chuẩn thực tế để duy trì phiên đăng nhập mở.
Bạn có thể xử lý các phiên đăng nhập dựa trên cookie rất dễ dàng bằng cách sử dụng PHP Sessions
Nhờ Phiên PHP, bạn không cần phải suy nghĩ về tất cả các chi tiết của cookie. chỉ cần bắt đầu và đóng phiên và bạn đã hoàn tất
Nó không thể được dễ dàng hơn
Nếu muốn, bạn cũng có thể chọn tự quản lý cookie để xây dựng các ứng dụng an toàn hơn [cái này mình thường làm]
Bản thân cookie cũng có thể được mã hóa và lưu trữ an toàn trên cơ sở dữ liệu
Nếu cần triển khai các cấp độ bảo mật khác nhau, bạn thậm chí có thể sử dụng các cookie khác nhau trên cùng một trang web
Xác minh hai [hoặc nhiều hơn] bước
Xác minh hai bước được sử dụng phổ biến hiện nay
Đây là những gì sẽ xảy ra
sau khi đăng nhập bằng tên người dùng và mật khẩu của bạn, trang web sẽ yêu cầu bạn cung cấp mã [hoặc mã thông báo] khác. Đó có thể là mã được tạo bởi ứng dụng dành cho thiết bị di động, tin nhắn văn bản được gửi đến điện thoại di động của bạn hoặc mã thông báo được gửi đến hộp thư đến của bạn
Một số dịch vụ thậm chí sử dụng nhiều hơn hai bước
Ví dụ: các trang web ngân hàng gia đình thường gửi mã thông báo đến điện thoại di động của bạn và một mã khác đến email của bạn để tăng cường bảo mật
Thiết kế bởi Jannoon028
Điểm mấu chốt là
với PHP, bạn có thể triển khai bất kỳ loại hệ thống xác thực hai [hoặc nhiều] bước nào
Trên thực tế, PHP hoàn toàn có khả năng
- tạo mã thông báo ngẫu nhiên, an toàn và lưu trữ trên cơ sở dữ liệu
- gửi mã thông báo đến hộp thư đến của bạn bằng PHPMailer
- kết nối với dịch vụ API của nhà cung cấp SMS để gửi mã thông báo dưới dạng tin nhắn SMS
[Trong Khóa học bảo mật PHP của tôi, bạn thực sự có thể tìm thấy hướng dẫn hoàn chỉnh về Xác thực 2 yếu tố]
Bạn muốn xem việc tạo mã thông báo ngẫu nhiên dễ dàng như thế nào, lưu trữ mã đó trên cơ sở dữ liệu và gửi mã đó đến hộp thư đến của người dùng?
Đây là mã ví dụ