PHP jQuery
Tính năng tải lên tệp yêu cầu xác thực cần thiết để làm sạch và duy trì dữ liệu người dùng. Việc thực thi đầu vào tệp tải lên không đúng cách sẽ làm tăng lỗ hổng bảo mật. Vì vậy, chúng tôi phải phê duyệt các tệp đã tải lên trước khi lưu chúng trên máy chủ để giảm lỗ hổng Show
Tải tệp từ máy khách lên máy chủ là một trong những tính năng thiết yếu của bất kỳ ứng dụng PHP nào. Tuy nhiên, việc triển khai các tính năng với bảo mật phù hợp và cấu hình đơn giản có thể khó khăn. Điều đó nói rằng, các nhà phát triển có thể sử dụng một số tập lệnh tải lên tệp PHP để đảm bảo rằng ứng dụng cung cấp các tính năng mà không có bất kỳ vấn đề bảo mật nào Bài viết này thảo luận về một chiến lược phổ biến mà các nhà phát triển có thể tích hợp trong các dự án của họ. Hơn nữa, bạn sẽ tìm hiểu cách thêm chức năng tải lên tệp PHP vào trang web của mình bằng jQuery, AJAX và MySQL Kiểm soát tải lên tệp trong PHP là gì?PHP cho phép bạn tải lên các tệp với một vài dòng mã và tính năng tải lên tệp của nó cho phép bạn tải lên nội dung văn bản và nhị phân. Vì vậy, bạn có toàn quyền kiểm soát tệp được tải lên thông qua xác thực PHP và chức năng vận hành tệp Một cách khác để kiểm soát tệp tải lên của bạn là thông qua xác thực dữ liệu. Người dùng phải xác thực loại tệp, kích thước và thứ nguyên trước khi tải lên. Tên, kích thước và mục tiêu tạm thời của tệp đã tải lên được lưu trữ trong mảng $_FILES[“image_file”]. Hàm move_uploaded_file của PHP tải tệp lên bằng cách truy cập dữ liệu được lưu trữ trong $_Files superglobal điều kiện tiên quyếtTôi giả sử bạn đã cài đặt ứng dụng PHP trên máy chủ web cho ví dụ tải lên tệp PHP này. Thiết lập của tôi bao gồm những điều sau đây
Để đảm bảo tôi không bị phân tâm bởi các vấn đề ở cấp độ máy chủ, tôi đã lưu trữ ứng dụng PHP của mình trên các máy chủ được quản lý bởi Cloudways vì ứng dụng này xử lý tất cả các vấn đề ở cấp độ máy chủ và có một devstack xuất sắc ngay lập tức. Bạn cũng có thể dùng thử Cloudways miễn phí mà không cần cung cấp chi tiết thẻ tín dụng của mình Nhận danh sách công cụ cuối cùng dành cho Nhà phát triểnChúng tôi sẽ gửi liên kết tải xuống đến hộp thư đến của bạn Cảm ơnSách điện tử của bạn đang trên đường đến hộp thư đến của bạn Bây giờ, các cấu hình đã sẵn sàng, tiếp theo tôi sẽ làm việc với Tập lệnh tải tệp lên. < Những bài viết liên quan Tải lên nhiều hình ảnh và tệp trong Laravel có xác thực Tải lên hình ảnh và tệp trong CodeIgniter Quy trình tải tệp lên trong PHPQuy trình của một tập lệnh tải lên tệp PHP hoàn chỉnh như sau
Tạo biểu mẫu HTMLBiểu mẫu HTML là giao diện thông qua đó người dùng tương tác và gửi dữ liệu của họ. Nhưng để làm cho nó hoạt động với tệp, Một thuộc tính quan trọng khác là enctype nên được đặt thành multipart/form-data. Cuối cùng, đặt thuộc tính loại tệp thành tệp Tạo chỉ mục tệp. php trong dự án PHP của bạn và nhập đoạn mã sau Ajax File Upload with jQuery and PHP Trong biểu mẫu này, tôi đã sử dụng các Lớp Bootstrap để áp dụng một chút kiểu dáng cho biểu mẫu. Trong biểu mẫu này, tôi đã đề cập đến ajaxupload. php trong thuộc tính hành động của biểu mẫu Ngừng lãng phí thời gian trên máy chủCloudways xử lý việc quản lý máy chủ cho bạn để bạn có thể tập trung vào việc tạo các ứng dụng tuyệt vời và giữ cho khách hàng của mình hài lòng Sử dụng jQuery & AJAX cho biểu mẫu tải tệp lênVì tôi sẽ sử dụng jQuery & AJAX để gửi dữ liệu và tải tệp lên, tôi sẽ bắt đầu bằng cách đưa thư viện jQuery vào trước $(document).ready(function (e) { $("#form").on('submit',(function(e) { e.preventDefault(); $.ajax({ url: "ajaxupload.php", type: "POST", data: new FormData(this), contentType: false, cache: false, processData:false, beforeSend : function() { //$("#preview").fadeOut(); $("#err").fadeOut(); }, success: function(data) { if(data=='invalid') { // invalid file format. $("#err").html("Invalid File !").fadeIn(); } else { // view uploaded file. $("#preview").html(data).fadeIn(); $("#form")[0].reset(); } }, error: function(e) { $("#err").html(e).fadeIn(); } }); })); }); Trong đoạn mã trên sử dụng phương thức $ajax() để gửi dữ liệu tới php cũng kiểm tra dữ liệu thành công hay lỗi trong việc gửi dữ liệu Cấu hình và kết nối cơ sở dữ liệu MySQL với PHPBước tiếp theo là thiết lập và cấu hình cơ sở dữ liệu MySQL Truy cập Trình quản lý cơ sở dữ liệu Cloudways và tạo một bảng có tên là “đang tải lên. ” Các trường của bảng này là tên, email và tên_tệp. Ngoài ra, bạn có thể sử dụng truy vấn SQL sau CREATE TABLE `uploading` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(100) COLLATE utf8_unicode_ci NOT NULL, `email` varchar(100) COLLATE utf8_unicode_ci NOT NULL, `file_name` varchar(100) COLLATE utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; Tiếp theo, tạo db. php để kết nối cơ sở dữ liệu với ứng dụng PHP. Dán đoạn mã sau vào tệp connect_error){ die("Unable to connect database: " . $db->connect_error); } Tạo tập lệnh PHP để tải tệp lênTệp được tải lên thư mục tạm thời khi người dùng tương tác với biểu mẫu này. Tất cả thông tin về tệp được lưu trữ trong mảng đa chiều được gọi là $_FILES Chỉ mục khóa của mảng này là thuộc tính tên trên trường Trong trường hợp này, $_FILES[“image”] là tên chỉ mục. Thông tin thêm về tệp được lưu trữ trong các chỉ mục sau Khi tệp đã được tải lên thư mục tạm thời và tất cả thông tin của tệp được lưu trong mảng, hàm move_uploaded_file() được sử dụng để di chuyển tệp từ vị trí tạm thời hiện tại sang vị trí cố định. Quy trình upload file như sau
Hãy tạo tập lệnh PHP để xử lý chức năng tải tệp lên. Tạo ajaxupload. php và gõ đoạn mã sau vào đó "; $name = $_POST['name']; $email = $_POST['email']; //include database configuration file include_once 'db.php'; //insert form data in the database $insert = $db->query("INSERT uploading (name,email,file_name) VALUES ('".$name."','".$email."','".$path."')"); //echo $insert?'ok':'err'; } } else { echo 'invalid'; } } ?> Bây giờ tất cả các kiểm tra đã hoàn tất, tôi sẽ chuyển tệp đã tải lên từ thư mục tmp sang thư mục tải lên. Đối với điều này, trước tiên, hãy tạo một thư mục tải lên trong thư mục dự án. Đây là nơi lưu các ảnh đã tải lên, trong đó pathinfo() là hàm tích hợp trả về tên tệp và phần mở rộng trong các chỉ mục riêng biệt Kiểm tra xem có bất kỳ lỗi nào trong quá trình tải lên khôngNhập mã sau để kiểm tra bất kỳ lỗi nào trong tệp đã tải lên. Nếu lỗi lớn hơn 0, chắc chắn đã xảy ra lỗi trong quy trình if($errorimg > 0){ die(' Kiểm tra xem tệp có nằm dưới giới hạn kích thước tệp đã đặt khôngKích thước tệp được đo bằng byte. Vì vậy, nếu kích thước tệp được đặt ở mức 500kb, thì kích thước tệp phải nhỏ hơn 500000 ________số 8Trong PHP Script để tải tệp lên, move_uploaded_file là hàm di chuyển tệp từ $myFile[“tmp_name”] (vị trí tạm thời) sang “upload/. ” $name (vị trí cố định) cũng kiểm tra bản ghi bảng cơ sở dữ liệu sẽ được chèn vào Làm cách nào để sử dụng reCAPTCHA trong Biểu mẫu liên hệ PHP?Recaptcha là một dịch vụ miễn phí giúp bảo vệ các biểu mẫu khỏi gửi spam và lạm dụng. Đó là một lớp bổ sung hoạt động đằng sau hậu trường để ngăn chặn gửi thư rác bằng cách phân biệt xem người dùng cuối là người hay bot và đưa ra thử thách cho họ để giải quyết Để đặt reCAPTCHA trên trang web PHP của bạn, bạn phải sử dụng một thư viện đơn giản bao quanh API reCHAPTCHA. Bạn có thể tải xuống “ReCAPTCHA PHP Library” và sau đó sử dụng tệp “recaptchalib. php. ” Thêm đoạn mã sau vào gắn thẻ nơi bạn muốn reCAPTCHA của mình được đặt.require_once('recaptchalib.php'); $publickey = "your_public_key"; //you got this from the signup page echo recaptcha_get_html($publickey); Để kiểm tra xem người dùng đã gửi câu trả lời đúng hay chưa, một “xác minh. php” cần được tạo và phải được đặt làm thông số ‘hành động’ trong thẻ. Đây là mã dưới đây 0 Giải quyết các lỗi thường gặpRất nhiều lỗi có thể xảy ra trong quá trình tải lên tệp có thể dẫn đến lỗi. Bạn cần kiểm tra chính xác lỗi đã xảy ra trong quá trình tải lên bằng cách sử dụng $_FILES[‘uploadedFile’][‘error’] Dưới đây là các lỗi bạn có thể gặp phải khi tải tệp lên Kích thước tệp quá lớnLỗi UPLOAD_ERR_FORM_SIZE và UPLOAD_ERR_INI_SIZE xảy ra khi kích thước tệp lớn hơn giá trị được chỉ định trong php. ini hoặc biểu mẫu HTML riêng biệt. Bạn có thể loại bỏ lỗi này bằng cách tăng giới hạn kích thước tải lên hoặc cảnh báo người dùng về kích thước tệp tối đa mà họ có thể tải lên Thư mục tạm thời bị thiếuLỗi UPLOAD_ERR_NO_TMP_DIR xuất hiện khi tệp cần chuyển bị mất. Và UPLOAD_ERR_NO_FILE được báo cáo khi không có tệp để chuyển Tải lên một phần hoặc không thể ghi vào đĩaBạn sẽ gặp lỗi UPLOAD_ERR_PARTIAL khi tệp chỉ có thể được tải lên một phần và lỗi UPLOAD_ERR_CANT_WRITE trong trường hợp tệp dường như không được ghi vào đĩa Tiện ích mở rộng PHP đã dừng tải tệp lênĐôi khi, bạn có thể gặp lỗi UPLOAD_ERR_EXTENSION do một số tiện ích mở rộng đã dừng tải tệp lên. Điều này sẽ yêu cầu nhà phát triển kiểm tra thêm để xác định tiện ích mở rộng nào gây ra sự cố kết thúcNhà phát triển cần định cấu hình cài đặt cụ thể để cho phép tải tệp lên bằng PHP. Các cài đặt này là cần thiết để quá trình chuyển thành công. Để sắp xếp các cài đặt này, chúng ta phải tìm tệp php. tập tin ini Tôi đã trình diễn tải lên hình ảnh và tệp bằng PHP trong hướng dẫn này bằng AJAX và jQuery. Đây là bản demo chức năng của ứng dụng nơi bạn có thể thấy ứng dụng đang hoạt động. Trong hướng dẫn tiếp theo của tôi, tôi sẽ trình bày cách bạn có thể tải lên và lưu trữ tệp vào cơ sở dữ liệu bằng PDO Q. Các tệp đã tải lên PHP đi đâu?PHP lưu trữ tất cả các tệp tạm thời, bao gồm các tệp đã tải lên, trong thư mục tệp tạm thời như được chỉ định trong php. ban đầu. Lưu ý rằng đối với các tệp tải lên, các tệp này có thể bị xóa ngay khi tập lệnh mà tệp được tải lên bị chấm dứt (vì vậy trừ khi bạn trì hoãn tập lệnh đó, nếu không bạn có thể sẽ không thấy tệp đã tải lên) Q. Thư viện PHP nào tốt nhất để tải lên tệp?A. Mặc dù có sẵn một số thư viện PHP tải lên tệp, nhưng thư viện Tải lên tệp HTML5 được coi là một trong những thư viện tốt nhất. Nó khá dễ sử dụng và là thư viện phổ biến nhất trong số các nhà phát triển, vì nó đơn giản hóa việc tải lên và xác thực tệp trong một vài bước nhanh chóng Q. Tôi có thể tải tập lệnh tải lên tệp PHP ở đâu?A. Bạn có thể dễ dàng tải xuống tập lệnh tải lên tệp từ phpfileuploader. com; . Sử dụng tập lệnh, bạn có thể dễ dàng tải lên nhiều tệp bổ sung mới trong quá trình tải lên Q. Làm cách nào để di chuyển các tệp đã tải lên trong PHP?A. Bạn có thể sử dụng hàm move_uploaded_file() để di chuyển tệp đã tải lên sang đường dẫn/thư mục mới. Nó cho phép chúng tôi dễ dàng di chuyển các tệp đến một vị trí mới, ngay cả khi chúng mới được tải lên. Khi chuyển thành công, nó trả về TRUE và nếu bắt gặp bất kỳ ngoại lệ nào, trả về FALSE Đánh giá của khách hàng tại “Dịch vụ lưu trữ trên nền tảng đám mây có một trong những dịch vụ khách hàng tốt nhất và tốc độ lưu trữ”Sanjit C [Nhà phát triển trang web] Inshal AliInshal là Nhà tiếp thị nội dung tại Cloudways. Với nền tảng về khoa học máy tính, kỹ năng nội dung và rất nhiều sáng tạo, anh ấy đã giúp doanh nghiệp vươn tới bầu trời và vượt xa thông qua nội dung nói ngôn ngữ của khách hàng của họ. Ngoài công việc, bạn sẽ thấy anh ấy chủ yếu trong một số trò chơi trực tuyến hoặc trên sân bóng Bạn có thể sử dụng jQuery trong PHP không?Tất cả những gì bạn cần làm để sử dụng jQuery với PHP là đưa tệp javascript jQuery vào tài liệu HTML của bạn trong thẻ đầu .
Tại sao jQuery được sử dụng trong PHP?Mục đích của jQuery là giúp sử dụng JavaScript trên trang web của bạn dễ dàng hơn nhiều . jQuery đảm nhận nhiều tác vụ thông thường yêu cầu nhiều dòng mã JavaScript để thực hiện và gói gọn chúng thành các phương thức mà bạn có thể gọi bằng một dòng mã.
Sự khác biệt giữa PHP và jQuery là gì?Tôi xin nói trước rằng PHP là PHÍA MÁY CHỦ và jQuery là PHÍA KHÁCH HÀNG . Thời gian thực thi của PHP phụ thuộc vào kiến trúc và cấu hình máy chủ của bạn; . jQuery cũng không hoạt động trong các trình duyệt cũ HOẶC các trình duyệt đã tắt javascript.
jQuery có còn phù hợp vào năm 2022 không?Nhưng các dự án hiện tại của các nhà phát triển web không nói lên toàn bộ câu chuyện. Dựa trên xu hướng công nghệ Internet của BuildWith, jQuery đã được tìm thấy trên hơn 80 triệu trang web vào năm 2022 . Đó là một sự dẫn đầu rất lớn trong số gần 11 triệu trang web đang chạy React. |