URL parametresi olarak bir URL Passing

3 Cevap php

Ben bir CakePHP uygulamasında OpenID giriş uygulama duyuyorum. Örneğin, (GET parametreleri ile) bir URL kendisi OpenID kimliği hakkında bilgi koruyarak belli bir noktada, ben, başka bir eylem için yönlendirmek gerekir

https://www.google.com/accounts/o8/id?id=31g2iy321i3y1idh43q7tyYgdsjhd863Es

Nasıl bu verileri geçirmek? Ilk girişimi olacak

function openid() {
    ...
    $this->redirect(array('controller' => 'users', 'action' => 'openid_create', $openid));
}

ancak belirgin sorun bu tamamen CakePHP URL parametrelerini ayrıştırma yolu haberci yukarıya olmasıdır.

Ben aşağıdakilerden birini yapmak gerekir:

1) geçirmeden bir CakePHP kolay bir şekilde URL'yi kodlamak, ve bundan sonra da, kod çözme ya da

2) Bir POST parametre olarak URL'sini geçirmek

ama ben bunu nasıl bilmiyorum.

EDIT: yorumlarına yanıt olarak, daha açık olmalıdır. Ben OpenID bileşeni kullanıyorum ve ben bir çalışma OpenID uygulama var. Ne yapmam gerekiyor, varolan bir kullanıcı sistemi ile OpenID bağlamaktır. Yeni bir kullanıcı OpenID aracılığıyla günlükleri, ben daha fazla bilgi isteyin, ve daha sonra bu veri ile yeni bir kullanıcı oluşturun. Sorun bu süreç boyunca OpenID URL tutmak zorunda olmasıdır.

3 Cevap

Benim önerim oturumda url depolamak için.

Benim ilk önerim PHP'nin urlencode () ve urldecode () işlevleri denemek olacaktır, ama kodlamak ve zaten OpenID kimliklerin parametreleri için url kodlanmış oldu decode şeyler ne olur, tamamen emin değilim.

Bu şekilde deneyebilirsiniz:

$this->redirect(array(
    'controller' => 'users',
    'action' => 'openid_create',
    '?' => array('id' => $openid)
));