2012-04-22 38 views
5

Url chuyển hướng sau sẽ trở thành với http% 3A% 2F% 2F thay vì http: //. Làm thế nào tôi có thể tránh điều này?http: // Trở thành http% 3A% 2F% 2F trong CodeIgniter

Xin cảm ơn trước.

$params = array(
      'client_id' => $client_id, 
      'redirect_uri' => site_url('welcome/google_connect_redirect/'), 
      'state' => $_SESSION['state'], 
      'approval_prompt' => 'force', 
      'scope' => 'https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email', 
      'response_type' => 'code' 
     ); 
     $url = "https://accounts.google.com/o/oauth2/auth?".http_build_query($params); 
     // send to google 
     redirect($url); 

URL trở nên như thế này.

https://accounts.google.com/o/oauth2/auth?client_id=871111192098.apps. 
googleusercontent.com&redirect_uri=http%3A%2F%2Flocalhost%3A8888%2Fmyappname 
%2Findex.php%2Fwelcome%2Fgoogle_connect_redirect&state=f0babsomeletterscb5b48753358c 
3b9&approval_prompt=force&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2F 
userinfo.profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email& 
response_type=code    
+0

Tôi không nghĩ điều đó sẽ ảnh hưởng đến việc chuyển hướng url. – hjpotter92

Trả lời

2

Khi bạn đặt chuỗi với ký tự đặc biệt vào URL, họ sẽ được mã hóa, bạn có thể sử dụng urldecode

0

Mấu chốt của http_build_query() là nó urlencode() s mỗi giá trị của mảng cho bạn trước khi gia nhập chúng trong một định dạng chuỗi truy vấn. Đây là hành vi ưu tiên.

+0

Chính xác. Nó thực sự là một điều tốt mà nó làm điều này. OP, bạn đã thử nghiệm nó chưa? Có vấn đề gì không? –

1

Chuỗi truy vấn được mã hóa vì có một số ký tự đặc biệt có ý nghĩa đặc biệt trong URL.

Từ Wikipedia:

Một số ký tự không thể là một phần của một URL (ví dụ, không gian) và một số nhân vật khác có một ý nghĩa đặc biệt trong URL: ví dụ, nhân vật # có thể được sử dụng để chỉ định thêm một phần phụ (hoặc đoạn) của một tài liệu; ký tự = được sử dụng để tách một tên từ một giá trị. Chuỗi truy vấn có thể cần phải được chuyển đổi để đáp ứng các ràng buộc này. Điều này có thể được thực hiện bằng cách sử dụng lược đồ được gọi là mã hóa URL.

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