Tôi có một trang web nơi người dùng có thể nhập nhận xét và mô tả. Tôi cũng cho phép họ nhập liên kết. Tôi sử dụng strip_tags
với ngoại lệ cho các liên kết. Tôi cũng thêm rel="nofollow"
thông qua string_replace đơn giản.Kiểm tra cú pháp liên kết của đầu vào của người dùng
Vấn đề là, nếu người dùng để lại báo giá kép ở cuối thẻ mở của họ, nó sẽ làm hỏng html. Bất kỳ đề xuất nào về cách kiểm tra hoặc sửa cú pháp liên kết không chính xác?
$comment = $_POST['comment'];
$comment = strip_tags($comment,"<a>");
$comment = str_replace('<a','<a rel="nofollow"',$comment);
$comment = mysql_real_escape_string($comment);
và khi xuất ra
$ comment = stripslashes ($ bình luận);
echo $ bình luận;
Vấn đề là khi người dùng thêm <a href="www.blah.com>
và quên dấu ngoặc kép cuối cùng, điều này sẽ làm rối loạn cách hiển thị div nhận xét.
bạn có thể cho mẫu mã? –
Ý tôi là, mã PHP với str_replace bạn làm cho rel = "nofollow" –
Xin lỗi. Lần đầu tiên của tôi trên StackOverflow. Nên làm vậy. – Brian