Hướng dẫn http_user_agent php - http_user_agent php

Tôi đang sử dụng mã JS này để biết người dùng đang sử dụng trình duyệt nào.


Và tôi muốn lấy Navigator.appName này thành mã php để sử dụng nó như thế này:

if ($appName == "Internet Explorer") {
  // blabla
}

Tôi làm nó như thế nào?

  • php
  • user-agent

82 hữu ích 1 bình luận 157k xem chia sẻ 1 bình luận 157k xem chia sẻ

answer

219

Sử dụng $_SERVER['HTTP_USER_AGENT']biến PHP gốc để thay thế.

219 hữu ích 4 bình luận chia sẻ 4 bình luận chia sẻ

answer

5

Sử dụng $_SERVER['HTTP_USER_AGENT']biến PHP gốc để thay thế.

219 hữu ích 4 bình luận chia sẻ

Bạn cũng có thể sử dụng php native funcion get_browser () 4 bình luận chia sẻ

answer

2

Sử dụng $_SERVER['HTTP_USER_AGENT']biến PHP gốc để thay thế.

219 hữu ích 4 bình luận chia sẻ 1 bình luận chia sẻ

answer

0

Sử dụng $_SERVER['HTTP_USER_AGENT']biến PHP gốc để thay thế.

219 hữu ích 4 bình luận chia sẻ 0 bình luận chia sẻ

Bạn cũng có thể sử dụng php native funcion get_browser ()

LƯU Ý QUAN TRỌNG: Bạn nên có tệp browscap.ini.

5 hữu ích 4 bình luận chia sẻ

Bạn có thể sử dụng liên kết phương thức jQuery ajax nếu bạn muốn truyền dữ liệu từ máy khách đến máy chủ. Trong trường hợp này, bạn có thể sử dụng $_SERVER['HTTP_USER_AGENT']biến cho tác nhân người dùng trình duyệt được tìm thấy.

2 hữu ích 1 bình luận chia sẻ

Tôi sử dụng:

//Server(php)
$userAgent = $_SERVER['HTTP_USER_AGENT'];
//Client(javascript)
var userAgent = navigator.userAgent;

0 hữu ích 0 bình luận chia sẻ

Đăng nhập để trả lời câu hỏi

Có thể bạn quan tâm

Đôi khi trên Web Site bạn không được phép làm công việc nhận định xem user đang access bằng device nào. Tuy nhiên việc nhận định loại device lại là 1 nhân tố quan trọng giúp bạn tạo ra một page được tối ưu nhất về mặt hiển thị tùy thuộc theo từng loại device

Dưới đây sẽ đưa ra 4 cách để giúp bạn nhận định được loại device. Việc nhận định device ở đây không chi tiết, cụ thể đến mức độ nhận định loại máy, mà chỉ ngừng lại ở mức độ phán đoán xem là smart phone hay PC, là Android hay IOS.

1.User Agent

Trên browser sẽ luôn có thông tin thể hiện việc bạn là ai. Và thông tin này có thể get kể cả ở phía client hay server. Bạn có thể get bằng cách dưới đây:

Bạn có thể get được loại browser, OS, tên thiết bị. Do đó, đây là thông tin rất hữu ích. Tuy nhiên, thông tin User Agent này có thể bị giả mạo một cách tùy ý khi browser gửi lên server. Ví dụ, mặc dù bạn đang access từ một chiếc PC nhưng bạn hoàn toàn có thể fake thông tin User Agent như thể bạn đã access từ một chiếc IPhone. Do đó, thông tin User Agent get từ server hoàn toàn không thể đảm bảo được độ tin cậy. Mặt khác, thông tin User Agent get từ phía client lại khó bị giả mạo hơn nên có thể nói nó có độ tin cậy cao hơn.

Nếu bạn muốn thực hiện việc nhận định device với độ tin cậy cao thì nên get thông tin ở phía client.

Tuy nhiên, cách này có 1 điểm khá phiền phức đó là: bạn không thể chỉ nhận định loại device chỉ đơn giản bằng cách tìm xem từ khóa của bạn có trong thông tin User Agent đó ko bằng chuỗi Regex được (ví dụ, không thể chỉ đơn giản check xem có từ Android trong thông tin User Agent hay không) Mà bạn cần phải biết trước trên device đó sẽ get được thông tin User Agent như thế nào.

//Client side(javascript)
var os = navigator.platform;

Ngoài ra, có trường hợp khi đặc tính device thay đổi thì thông tin User Agent kèm theo cũng thay đổi. Do đó, khi đặc tính thay đổi thì nhiều khi sẽ dẫn đến việc quy trình nhận định device cũng thay đổi.

Đối với smart phone có nhiều loại User Agent thì nên tham khảo Home page để biết chính xác loại máy nào sẽ có thông tin User Agent như thế nào.

2.Độ lớn của màn hình

Đây là một thông số vật lý, có vai trò rất quan trọng trong việc nhận định device. Từ độ lớn màn hình ta có thể phân chia loại device tùy theo độ lớn màn hình được đánh giá theo đơn vị inch: smart phone (4 ~ 7 inch), tablet (khoảng 10 inch), PC (khoảng trên 13 inch) Thông tin này không hẳn là không giả mạo được, tuy nhiên so với việc giả mạo thông tin User Agent thì việc giả mạo thông tin độ lớn màn hình thấp hơn nhiều.

Thông tin này cơ bản được get từ phía client. Vì browser không thể gửi thông tin độ lớn màn hình lên server được nên chắc chắn không thể get từ server được.

Tuy nhiên cách này không được khuyến khích sử dụng do tính chất của nó là “nếu browser thay đổi thì thông tin này cũng không thể sử dụng cho việc nhận định loại device được nữa.

Tóm lại

Cách có độ tin cậy cao nhất, đơn giản nhất để nhận định loại device là dựa trên thông tin User Agent, độ lớn màn hình đã get từ client theo chuẩn OS đã get ở server side. Tuy nhiên nếu có phương pháp để giả mạo nội dung của obejct navigator thì phương pháp này không thể tin cậy được nữa.

Có điều việc giả mạo thông tin này lại vô cùng khó khăn, đồng thời cũng không có lợi ích gì, vì thế cho đến nay ít trường hợp xảy ra về việc giả mạo thông tin này.

Do đó, về độ tin cậy thì chúng ta có thể tin tưởng và sử dụng các phương pháp trên để nhận định được loại device với độ chính xác cao.