2011-10-22 38 views
5

Sẽ rất nhiều đánh giá cao một số trợ giúp. Máy chủ lưu trữ cập nhật phía máy chủ của tôi đã khiến biểu mẫu nhận xét của tôi ném hai lỗi xác thực. Đầu tiên là: preg_match() trả về Cảnh báo: preg_match() [function.preg-match]: Biên dịch không thành công: phạm vi thứ tự trong lớp ký tự tại offset 13 trong [script location here and line error] - thứ hai là kiểm tra chủ đề tại bù đắp 14.PHP 5.2 preg_match() biên dịch thất bại

Nó làm điều này trên tờ séc địa chỉ email: kiểm tra

if (preg_match('/[^a-zA-Z0-9_-.]/', $_POST['txtEmail'])) 

và subject:

if (preg_match('/[^a-zA-Z0-9:?-. ]/', $_POST['txtSubject'])) 

tôi không quen thuộc với PHP nhưng có thể cắt và dán! Trang web của tôi là frowey.com và đó là biểu mẫu nhận xét khi liên hệ với chúng tôi, điều đó đã bắt đầu ném một lỗi sau khi lưu trữ các bản cập nhật hệ điều hành. Cảm ơn trước.

Trả lời

1
if (preg_match('/[^a-zA-Z0-9_\.-]/', $_POST['txtEmail'])) 

if (preg_match('/[^a-zA-Z0-9:\?\.-]/', $_POST['txtSubject'])) 
+0

nhờ Big cho cả câu trả lời. Tôi sẽ kiểm tra nó ngay bây giờ và cho bạn biết kết quả. – mochj

+0

Đã sắp xếp! Cảm ơn. Cũng cần phải thực hiện thay đổi đối với xác thực địa chỉ email. Tất cả bây giờ hoạt động. Cảm ơn một lần nữa. – mochj

9

Bạn cần thoát khỏi số - trừ. Nó có ý nghĩa đặc biệt với các lớp nhân vật, như gợi ý thông báo lỗi. Sử dụng một dấu chéo ngược trước khi trừ:

preg_match('/[^a-zA-Z0-9_\-.]/' 

(Ngoài ra các - có thể là điều đầu tiên hoặc cuối cùng trong nhóm nhân vật, vì vậy nó sẽ mất chức năng đặc biệt của nó.)

+0

Cảm ơn bạn. Tôi đang kiểm tra nó ngay bây giờ. – mochj

+0

Tất cả hiện đang hoạt động. Cảm ơn một lần nữa. Cả hai câu trả lời đều rất hữu ích. Nhiều đánh giá cao. – mochj

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