2015-07-03 18 views
6

Tôi có một biểu mẫu liên hệ có trường ẩn (nghề). Tôi đang cố gắng để có được kịch bản để kiểm tra để chắc chắn rằng lĩnh vực này ẩn là trống rỗng và nếu như vậy, sau đó gửi kết quả hình thức cho tôi. Tuy nhiên, nếu trường này KHÔNG trống, biểu mẫu sẽ không được gửi cho tôi.Trường trống php yêu cầu

Orginially mã của tôi là:

if(isset($_POST['profession']) && $_POST['profession'] == ''){ 

Nhưng tôi tin rằng đây thực sự là không chính xác và được buộc lĩnh vực nghề để được để trống? Vì vậy, tôi tin rằng mã chỉ đơn giản là:

if(!isset($_POST['profession'])){ 

Tôi đã nhận điều này đúng chưa. Đó sẽ là cách tốt nhất để viết mã này?

+0

trường hợp đầu tiên là chính xác. vấn đề là gì –

+1

hoặc bạn chỉ có thể làm nếu (trống ($ _ POST ['nghề'])). Điều này kiểm tra: - isset - is null - là '' –

Trả lời

4

Rất vui được gặp bạn bằng phương pháp ngăn chặn spam. Điều tốt nhất bạn có thể có thể làm đơn giản này là:

if (empty($_POST['profession'])){ 
    // Send form result. 
} 

Chức năng empty() đánh giá để true khi nó là một chuỗi rỗng ('') hoặc khi biến hoặc phần tử mảng không tồn tại ở tất cả. Để biết thêm chi tiết về các so sánh, hãy xem tại đây: http://php.net/manual/en/types.comparisons.php

+0

Vì vậy, để đơn giản, bạn nên giới thiệu phương pháp này qua hai tùy chọn tập lệnh trong ví dụ của tôi. Tất cả họ sẽ làm việc như anum kumar singh xác định mã đầu tiên của tôi cũng đúng không? –

+0

Không đơn giản. Tuyên bố của Anant là vô nghĩa; bạn thực sự đúng trong câu hỏi của bạn, ở chỗ nó chỉ chấp nhận một chuỗi rỗng (''''). Tốt hơn là không đưa ra giả định về những gì trình duyệt sẽ gửi cho một phần tử biểu mẫu rỗng, vì vậy 'empty()' bao hàm tất cả các khả năng của "tánh không". – aross

+0

Cảm ơn aross - và cũng giải thích! –

Các vấn đề liên quan