CakePHP㧠?guid=ONã常ã«URLã«å ¥ãã
ãã³ã¢ãã¬ã³ã¨ãã¦Cookieã«å¯¾å¿ããªããããæºå¸¯ã§ã»ãã·ã§ã³ãå¼ãç¶ãã«ã¯ããã©ã¡ã¼ã¿ã®ä¸ã«ã»ãã·ã§ã³IDã(ã§ããã°èªåã§ï¼å
¥ããä»çµã¿ãå¿
é ãªããã§ãã
ããããã»ãã·ã§ã³IDä»ãã®URLã
ããã¯å¤é¨ã«æ¼ããã¨ä¸æ£ã¢ã¯ã»ã¹ãããå±éºãªãã®ã
ãã©ããå
¨ã¦ã®URLã«ãªãããã®ãã©ã¡ã¼ã¿å
¥ããå¿
è¦ãããªãã?guid=ONããããã°ãããããã
ãããã¦æºå¸¯IDã§ã»ãã·ã§ã³ã²ãã¤ãã°ãããããã
æºå¸¯ã§ ?guid=ONãURLã«å ¥ã£ã¦ã¦ãã»ãã·ã§ã³IDããããã®ããªããµã¤ãã¯ãä¸ã®è¨è¨ã§ã»ãã·ã§ã³ãå¼ãç¶ãã§ããã®ã¨æããã¾ã(å¤åï¼
ãã
ãã¬ã¼ã ã¯ã¼ã¯ã ã¨ãèªåã§ãªã³ã¯ããªãã¤ã¬ã¯ããçºè¡ãããã®ã§ããå
¨ã¦ã®URLã«ä»å ããæ©ã
ã«ã³ã¿ã³ã«ã¯è¡ãã¾ããã»ã»ã»
ãããªãããªã®è©¦è¡é¯èª¤ã
ãã£ã¦ãããããã³ã¢ãã?guid=ONã¨ãããã©ã¡ã¼ã¿ãå¿
é ããªãã¦è¨ããªããã°ãããªè¦å´ãªããã§ãã (T-T)
ããã®ããããSSLãããã¡ã¼ãã¨ãè¨ãåºããã ãããã¯ã±ãããã¾ããã
ãã°ãã£ã¦ãããç¡ãäºã§ããã»ã»ã»
ãªã³ã¯ã«èªåã§ä»ä¸
ããã¯ã«ã³ã¿ã³ã
app_controller.phpã§ãbeforeFilter()ã«ä»¥ä¸ã®éãè¨å®ã
cake/libs/controller/app_controller.php
(åç¥ï¼ class AppController extends Controller { (ä¸ç¥ï¼ function beforeFilter() { (ä¸ç¥ï¼ // URLãã©ã¡ã¼ã¿ã«å¿ ãguid=ONãä»ä¸ output_add_rewrite_var('guid','ON');
åè http://www.happytrap.jp/blogs/2009/03/24/797/
ãã ãã»ã»ã»
ä¸è¨è¨äºã§ã¯ãããã ãã§actionã«ã guid=ONãå
¥ã£ãããã§ãããå®éã«ã¯ãããªãã¾ããã§ãã (?_?)
POSTã®guid=ONã§ã¯ãã¡ã§ãã®ã§ãå¥é対çãè¦ãã¾ãã
ããããã³ã¢æ§ã®ä»æ§ã¯å³ãã orz
ãã©ã¼ã ãã«ãã¼(POST)ã«èªåã§ä»ä¸
ãã©ã¼ã ãã«ãã¼ã®èª¿æ»ãã
cake/libs/view/helpers/form.php
class FormHelper extends AppHelper { (ä¸ç¥ï¼ function create($model = null, $options = array()) { (ä¸ç¥ï¼ $options['action'] = array_merge($actionDefaults, (array)$options['url']); (ä¸ç¥ï¼ $htmlAttributes['action'] = $this->url($options['action']); unset($options['type'], $options['action']);
$htmlAttributes['action']ããaction="***"ã®ä¸èº«ã®ããã§ãã
ã§ã¯ã$this->url()ã®å¦çã¯ï¼
cake/libs/router.php
class Router extends Object { (ä¸ç¥ï¼ function url($url = null, $full = false) { (ä¸ç¥ï¼ if (isset($url['?'])) { $q = $url['?']; unset($url['?']); } (ä¸ç¥ï¼ return $output . $extension . $_this->queryString($q, array(), $escape) . $frag;
ã»ã»ã»èªè§£ã
ã¤ã¾ãã
1. $this->url($url) ã§ã$url['?'] = 'guid=ON';
2. ããªãã¡ã$form->create($model, $options)ã§ã$options['url']['?'] = 'guid=ON';
ã¨ããæ¨æ¸¬ã®å ã«ããã³ãã¬ã¼ããæ¸ãæãã
app/views/members/add.ctp
<?php echo $form->create('Member');?> â <?php echo $form->create('Member', array('url' => array('?' => 'guid=ON')));?>
ããã§æåãã¾ããï¼
ã»ã»ã»POSTã®guid=ONãæ®ã£ã¡ãã£ã¦ã¾ããããã
ãå®å®³ãªãããã¨ããããããã§ã
ãã ããã³ãã¬ã¼ããã¨ã«ã追è¨å¿
è¦ã§ãã
æ¡å¼µãã©ã¼ã ãã«ãã¼ä½ããã«ãããããªã»ã»ã»
(追è¨ï¼æ¡å¼µãã«ãã¼ä½ãã¾ãã
app/views/helpers ã«ãä¸è¨ã®å
容ã®mobileform.phpãä½æãmembers_controller.phpã¨add.ctpã®è¨å®ãã¡ãã£ã¨å¤ãã¾ããã
mobileform.php
<?php class MobileformHelper extends FormHelper { function create($model = null, $options = array()) { if (!isset($options['url']) || is_array($options['url'])) { if (!isset($options['url']['?']) || !$options['url']['?']) { $options['url']['?'] = 'guid=ON'; } else { $options['url']['?'] .= '&guid=ON'; } } elseif (is_string($options['url'])) { $options['url'] .= '&guid=ON'; } return parent::create($model, $options); } }
members_controller.php
var $helpers = array('Html', 'Form', 'Mobileform');
add.ctp
<?php echo $mobileform->create('Member');?>
ãªãã¤ã¬ã¯ãã«èªåã§ä»ä¸
$this->redirect($url)ã®æ¸ãæãã
http://cakephp.jp/modules/newbb/viewtopic.php?post_id=1398&topic_id=751&forum=3
âã®hide99ããã®æ¸è¾¼ã¿ãåèã«ãã¾ãããã$urlã«ã¯ãæååæå®ã¨é
åæå®ã®2種é¡ãããã
ãã®æ¹æ³ã¯é
åã«å¯¾å¿ãã¦ã¾ããã§ããã
ããã§ä¸ã²ãããã
// æºå¸¯ã®å ´åãredirectã«guid=ONãä»ä¸ function redirect($url, $status = null) { if (!$this->agent->isNonMobile()){ // redirectã®é åæå®ã«å¯¾å¿ if (is_array($url)) { $url['base'] = false; $url = Router::url($url); } $url = $url."?guid=ON"; } parent::redirect($url, $status); }
ããã§æåï¼