Biểu mẫu phản hồi bằng PHP có gửi qua e-mail. Biểu mẫu phản hồi bằng PHP bằng cách gửi qua e-mail Cảm nhận của một người đàn ông về danh sách thành viên biểu mẫu php

Trong bài học này chúng ta sẽ tìm hiểu về hàm thư(), sử dụng ví dụ về việc tạo Biểu mẫu phản hồi trong PHP tiếp theo là gửi dữ liệu nhận được qua email.

Để làm điều này, chúng tôi sẽ tạo hai tệp - định dạng.phpthư.php. Tệp đầu tiên sẽ chỉ chứa một biểu mẫu có các trường để người dùng nhập dữ liệu. Bên trong một thẻ hình thức- cái nút "Gửi" và thuộc tính hoạt động trong đó đề cập đến trình xử lý - thư.php, đây là dữ liệu từ biểu mẫu được truy cập khi nhấn nút "Gửi". Trong ví dụ của chúng tôi, dữ liệu biểu mẫu được gửi đến một trang web có tên "/mail.php". Trang này chứa một tập lệnh cho PHP xử lý dữ liệu biểu mẫu:


Dữ liệu biểu mẫu được gửi bằng cách sử dụng BƯU KIỆN(được xử lý như $_POST). $_POST là một mảng các biến được truyền cho tập lệnh hiện tại thông qua phương thức BƯU KIỆN.

Dưới đây bạn có thể xem nội dung của tập tin định dạng.php, các trường được người dùng tự điền vào trên một số trang web. Tất cả các trường nhập dữ liệu phải có thuộc tính tên, chúng tôi tự quy định các giá trị, dựa trên logic.




Mẫu phản hồi bằng PHP được gửi qua email


Biểu mẫu phản hồi trong PHP







Để lại lời nhắn:
Tên của bạn:



E-mail:

Số điện thoại:

Tin nhắn:

Vùng văn bản có thể chứa số lượng ký tự không giới hạn-->







Đây là cách biểu mẫu hiển thị trực quan trong trình duyệt.

Tiếp theo chúng ta viết code cho file thư.php. Chúng tôi nghĩ ra tên riêng của mình cho các biến. TRONG PHP biến bắt đầu bằng dấu $ theo sau là tên biến. Giá trị văn bản của biến được đặt trong dấu ngoặc kép. Bằng cách sử dụng các biến, nội dung của biểu mẫu sẽ được gửi đến email của quản trị viên bằng cách đặt tên của thành phần biểu mẫu trong dấu ngoặc vuông - giá trị tên.

$ tới = " [email được bảo vệ]"; // email của người nhận dữ liệu từ biểu mẫu
$tema = "Mẫu phản hồi bằng PHP"; // chủ đề của email nhận được
$message = "Tên của bạn: ".$_POST["name"]."
";//gán cho biến giá trị thu được từ dạng name=name
$message .= "Email: ".$_POST["email"]."
"; // lấy được từ mẫu name=email
$message .= "Số điện thoại: ".$_POST["phone"]."
"; //thu được từ mẫu name=phone
$message .= "Tin nhắn: ".$_POST["message"]."
"; //thu được từ mẫu name=message
$headers = "Phiên bản MIME: 1.0" . "\r\n"; // tiêu đề khớp với định dạng cộng với ký tự dòng mới
$headers .= "Loại nội dung: text/html; charset=utf-8" . "\r\n"; // cho biết loại nội dung được gửi
thư($tới, $tema, $message, $headers); // gửi giá trị biến cho người nhận qua email
?>

Vì vậy dữ liệu từ mảng $_POST sẽ được chuyển đến các biến tương ứng và gửi qua email bằng hàm thư. Hãy điền vào biểu mẫu của chúng tôi và nhấn nút gửi. Đừng quên bao gồm email của bạn. Bức thư đến ngay lập tức.

Một trong những điều tuyệt vời về PHP là cách nó hoạt động với các biểu mẫu HTML. Điều chính ở đây là mỗi phần tử biểu mẫu sẽ tự động có sẵn cho các chương trình PHP của bạn. Để biết thông tin chi tiết về cách sử dụng biểu mẫu trong PHP, hãy đọc phần này. Đây là một mẫu HTML mẫu:

Ví dụ #1 Biểu mẫu HTML đơn giản nhất

Tên của bạn:

Tuổi của bạn:

Không có gì đặc biệt về hình thức này. Đây là một dạng HTML thông thường không có bất kỳ thẻ đặc biệt nào. Khi người dùng điền vào biểu mẫu và nhấp vào nút gửi, trang action.php sẽ được gọi. Tệp này có thể có nội dung như:

Ví dụ #2 Hiển thị dữ liệu biểu mẫu

Xin chào, .
Gửi bạnnăm.

Ví dụ đầu ra của chương trình này:

Xin chào, Sergey. Bạn 30 tuổi.

Nếu bạn không tính đến các đoạn mã với htmlspecialchars()(int), nguyên tắc hoạt động của mã này phải đơn giản và dễ hiểu. htmlspecialchars()Đảm bảo rằng các ký tự HTML "đặc biệt" được mã hóa chính xác để HTML hoặc Javascript độc hại không được chèn vào trang của bạn. Trường tuổi mà chúng ta biết phải là một số, chúng ta có thể chuyển đổi đơn giản thành số nguyên, sẽ tự động loại bỏ các ký tự không mong muốn. PHP cũng có thể thực hiện việc này một cách tự động bằng cách sử dụng phần mở rộng bộ lọc. Các biến $_POST["name"] và $_POST["age"] được PHP tự động đặt cho bạn. Trước đây chúng tôi đã sử dụng biến siêu toàn cầu $_SERVER, nhưng ở đây chúng tôi cũng sử dụng biến siêu toàn cầu $_POST, chứa tất cả dữ liệu POST. thông báo rằng phương thức gửi(phương thức) của biểu mẫu của chúng tôi là POST. Nếu chúng ta sử dụng phương pháp LẤY, thì thông tin biểu mẫu của chúng tôi sẽ nằm trong biến siêu toàn cục $_GET . Ngoài ra, bạn có thể sử dụng biến $_REQUEST nếu nguồn dữ liệu không quan trọng. Biến này chứa hỗn hợp dữ liệu GET, POST, COOKIE.

15 năm trước

Theo đặc tả HTTP, bạn nên sử dụng phương thức POST khi bạn đang sử dụng biểu mẫu để thay đổi trạng thái của nội dung nào đó ở cuối máy chủ. Ví dụ: nếu một trang có biểu mẫu cho phép người dùng thêm nhận xét của riêng họ, như thế này ở đây, biểu mẫu nên sử dụng POST. Nếu bạn nhấp vào "Tải lại" hoặc "Làm mới" trên một trang mà bạn đã truy cập thông qua POST, thì đó hầu như luôn là lỗi -- bạn không nên đăng cùng một nhận xét hai lần -- đó là lý do tại sao những trang này không được đánh dấu trang hoặc lưu vào bộ nhớ đệm.

Bạn nên sử dụng phương thức GET khi biểu mẫu của bạn đang lấy thứ gì đó ra khỏi máy chủ và không thực sự thay đổi bất cứ điều gì. Ví dụ: biểu mẫu cho công cụ tìm kiếm nên sử dụng GET, vì việc tìm kiếm trên một trang Web sẽ không thay đổi bất kỳ điều gì mà khách hàng có thể quan tâm và việc đánh dấu trang hoặc lưu vào bộ nhớ đệm các kết quả của truy vấn công cụ tìm kiếm cũng hữu ích như việc đánh dấu trang hoặc lưu vào bộ đệm một trang HTML tĩnh.

2 năm trước

Đáng làm rõ:

POST không an toàn hơn GET.

Lý do chọn GET so với POST liên quan đến nhiều yếu tố khác nhau như mục đích của yêu cầu (bạn có đang "gửi" thông tin không?), kích thước của yêu cầu (có các giới hạn về độ dài của một URL và các tham số GET được gửi trong URL) và mức độ dễ dàng mà bạn muốn Hành động có thể được chia sẻ -- Ví dụ: Tìm kiếm của Google là GET vì nó giúp bạn dễ dàng sao chép và chia sẻ truy vấn tìm kiếm với người khác chỉ bằng cách chia sẻ URL.

Bảo mật chỉ được xem xét ở đây do thực tế là GET dễ chia sẻ hơn POST. Ví dụ: bạn không muốn GET gửi mật khẩu vì người dùng có thể chia sẻ URL kết quả và vô tình để lộ mật khẩu của họ.

Tuy nhiên, GET và POST đều dễ dàng bị chặn bởi kẻ độc hại ở vị trí phù hợp nếu bạn không triển khai TLS/SSL để bảo vệ kết nối mạng.

Tất cả các Biểu mẫu được gửi qua HTTP (thường là cổng 80) đều không an toàn và ngày nay (2017), không có nhiều lý do chính đáng để một trang web công cộng không sử dụng HTTPS (về cơ bản là HTTP + Bảo mật lớp vận chuyển).

Như một phần thưởng, nếu bạn sử dụng TLS, bạn sẽ giảm thiểu rủi ro người dùng nhận được mã (AD) được đưa vào lưu lượng truy cập mà bạn không đặt ở đó.

JavaScript bị chặn trong trình duyệt của bạn. Vui lòng kích hoạt JavaScript để trang web hoạt động!

Làm việc với biểu mẫu

Các biểu mẫu HTML được sử dụng để truyền dữ liệu từ người dùng trang Web đến máy chủ. PHP cung cấp một số công cụ đặc biệt để làm việc với biểu mẫu.

Biến được xác định trước

PHP có một số biến được xác định trước không thay đổi trên tất cả các ứng dụng đang chạy trong một môi trường cụ thể. Chúng còn được gọi là biến môi trường hoặc biến môi trường. Chúng phản ánh các cài đặt của môi trường máy chủ Web Apache, cũng như yêu cầu thông tin cho trình duyệt đó. Có thể lấy các giá trị của URL, chuỗi truy vấn và các thành phần khác của yêu cầu HTTP.

Tất cả các biến được xác định trước đều được chứa trong mảng kết hợp $GLOBALS. Ngoài các biến môi trường, mảng này còn chứa các biến toàn cục được xác định trong chương trình.

ví dụ 1

Xem mảng $GLOBALS $value) echo "\$GLOBALS[\"$key\"] == $value
"; ?>

Kết quả là một danh sách tất cả các biến toàn cục, bao gồm cả biến môi trường, sẽ xuất hiện trên màn hình. Những cái được sử dụng phổ biến nhất là:

Biến đổiSự miêu tảNội dung
$_SERVER["HTTP_USER_AGENT"]Tên khách hàng và phiên bảnMozilla/5.0 (tương thích; Googlebot/2.1; +http://www.google.com/bot.html)
$_SERVER["REMOTE_ADDR"]địa chỉ IP144.76.78.3
getenv("HTTP_X_FORWARDED_FOR")Địa chỉ IP nội bộ của khách hàng
$_SERVER["REQUEST_METHOD"]Phương thức yêu cầu (GET hoặc POST)LẤY
$_SERVER["QUERY_STRING"]Trong yêu cầu GET, dữ liệu được mã hóa được gửi cùng với URL
$_SERVER["REQUEST_URL"]Địa chỉ đầy đủ của khách hàng bao gồm chuỗi truy vấn
$_SERVER["HTTP_REFERER"]URL của trang mà yêu cầu được thực hiện
$_SERVER["PHP_SELF"]Đường dẫn đến chương trình đang được thực thi/index.php
$_SERVER["SERVER_NAME"]Lãnh địatrang mạng
$_SERVER["REQUEST_URI"]Con đường/php/php_form.php

Xử lý đầu vào của người dùng

Chương trình xử lý đầu vào PHP có thể được tách khỏi văn bản HTML chứa các biểu mẫu đầu vào hoặc có thể được đặt trên một trang.

Ví dụ 2

Ví dụ xử lý đầu vào

" phương thức="bài">

Số thẻ:

Không có nút truyền dữ liệu ở đây, bởi vì... một biểu mẫu bao gồm một trường được gửi tự động khi nhấn phím .

Khi xử lý một phần tử có lựa chọn nhiều giá trị, bạn cần thêm một cặp dấu ngoặc vuông vào tên phần tử để truy cập tất cả các giá trị đã chọn. Để chọn nhiều mục, giữ phím Ctrl.

Ví dụ 3.1

Danh sách

KẾT QUẢ VÍ DỤ 3.1:

Ví dụ 3.2

Xử lý danh sách từ tệp ex1.htm

    "; foreach ($Item as $value) echo "
  • giá trị $"; tiếng vang "
"; ?>

Ví dụ 4. Nhận giá trị từ hộp kiểm

$v) ( if($v) echo "Bạn biết ngôn ngữ lập trình $k!
"; else echo "Bạn không biết ngôn ngữ lập trình $k.
"; } } ?>
" Method="post"> Bạn biết ngôn ngữ lập trình nào?
PHP
Perl

KẾT QUẢ VÍ DỤ 4:

Ví dụ 5

"; ?>
" phương thức="bài">

Bạn có thể xử lý biểu mẫu mà không cần lo lắng về tên trường thực tế.

Để thực hiện việc này, bạn có thể sử dụng (tùy thuộc vào phương thức truyền) mảng kết hợp $HTTP_GET_VARS hoặc $HTTP_POST_VARS . Các mảng này chứa các cặp tên/giá trị cho từng thành phần của biểu mẫu đã gửi. Nếu không quan tâm, bạn có thể sử dụng mảng kết hợp $_REQUEST .

Ví dụ 6

Xử lý đầu vào tùy ý bất kể phương thức truyền $value) echo "$key == $value
"; ?>

Ví dụ 7: Xử lý thao tác bấm nút bằng toán tử "@".

">

Sử dụng hàm header(), gửi cho trình duyệt tiêu đề "Vị trí", bạn có thể chuyển hướng người dùng đến một trang mới.

Ví dụ:

Chuyển một tập tin đến máy chủ. Tải tập tin lên. Tải lên

PHP cho phép bạn chuyển tập tin đến máy chủ. Biểu mẫu HTML dùng để gửi tệp phải chứa đối số enctype="multipart/form-data".

Ngoài ra, trong biểu mẫu, trước trường sao chép tệp cần có một trường ẩn có tên max_file_size. Kích thước tối đa của tệp được truyền phải được ghi vào trường ẩn này (thường không quá 2 MB).

Bản thân trường truyền tệp là một phần tử INPUT thông thường có đối số type="file".

Ví dụ:

" phương thức="bài">

Sau khi tệp được chuyển đến máy chủ, nó sẽ được đặt một tên duy nhất và được lưu trong thư mục tệp tạm thời. Đường dẫn đầy đủ tới tệp được ghi vào một biến toàn cục có tên khớp với tên của trường để truyền tệp này. Ngoài ra, PHP lưu trữ một số thông tin bổ sung về tệp được truyền trong các biến toàn cục khác:

Ví dụ 8

Đang xử lý tập tin được chuyển "; echo "tên: ".$_FILES["userfile"]["name"]."
"; echo "kích thước: ".$_FILES["tệp người dùng"]["kích thước"]."
"; echo "loại: ".$_FILES["userfile"]["type"]."
"; } ?>
" phương thức="bài">

Ví dụ về tải tập tin lên máy chủ

Nếu có vấn đề xảy ra với máy chủ chuyển mã tệp đã tải xuống, biểu tượng có mã 0x00được thay thế bằng khoảng trắng (ký tự có mã 0x20), thêm vào tập tin httpd.conf từ thư mục Apache (/usr/local/apache) các dòng sau.

CharsetRecodeMultipartForms Tắt