Kenichi Ando
neo.k****@gmail*****
2008年 6月 7日 (土) 16:39:03 JST
安藤です。 kunitsujiさん、お疲れ様です。 どんどんライブラリが増えていきますね! 2008/06/07 16:27 kunitsuji <tsuji****@m-s*****>: > kunitsujiです。 > > CIにはアプリでのSSL通信(HTTPS)での処理が無いようです。 > 独自のHelperとLibraryを作成しました。 > > MY_url_helper.php > > <?php if (!defined('BASEPATH')) exit('No direct script access > allowed'); > // --------------------------------------------------------------------- > --- > /** > * @author KUNIHARU Tsujioka <kunit****@gmail*****> > * @version 2008-04-22 Ver 0.1.0 > */ > > > //2008-04-21 KUNIHARU Tsujioka update > /** > * Site URL > * > * Create a local URL based on your basepath. Segments can be passed via > the > * first parameter either as a string or an array. > * > * @access public > * @param string > * @param string SSL true/false 2008-04-21 KUNIHARU Tsujioka > * @return string > */ > if (! function_exists('site_url')) > { > function site_url($uri = '', $ssl = FALSE) > { > $CI =& get_instance(); > return $CI->config->site_url($uri, $ssl); > } > } > > > // --------------------------------------------------------------------- > --- > //2008-04-21 KUNIHARU Tsujioka update > > /** > * Anchor Link > * > * Creates an anchor based on the local URL. > * > * @access public > * @param string the URL > * @param string the link title > * @param mixed any attributes > * @param bool SSL true/false > * @return string > */ > if (! function_exists('anchor')) > { > function anchor($uri = '', $title = '', $attributes = '', $ssl = > FALSE) > { > $title = (string) $title; > > if ( ! is_array($uri)) > { > if ($ssl) > { > $site_url = ( ! preg_match('!^\w+://!i', $uri)) ? > site_url($uri, TRUE) : $uri; > } > else > { > $site_url = ( ! preg_match('!^\w+://!i', $uri)) ? > site_url($uri) : $uri; > } > } > else > { > if ($ssl) > { > $site_url = site_url($uri, TRUE); > } > else > { > $site_url = site_url($uri); > } > > } > > if ($title == '') > { > $title = $site_url; > } > > if ($attributes == '') > { > $attributes = ' title="'.$title.'"'; > } > else > { > $attributes = _parse_attributes($attributes); > } > return '<a href="'.$site_url.'"'.$attributes.'>'.$title.'</a>'; > } > } > > // --------------------------------------------------------------------- > --- > //2008-04-21 KUNIHARU Tsujioka update > > /** > * Prep URL > * > * Simply adds the http:// part if missing > * > * @access public > * @param string the URL > * @param bool SSL true/false 2008-04-21 KUNIHARU Tsujioka > * @return string > */ > if (! function_exists('prep_url')) > { > function prep_url($str = '', $ssl = FALSE) > { > if ($str == 'http://' OR $str == '') > { > return ''; > } > > if (substr($str, 0, 7) != 'http://' && substr($str, 0, 8) != > 'https://') > { > if ($ssl) > { > $str = 'https://'.$str; > } > else > { > $str = 'http://'.$str; > } > } > > return $str; > } > } > > // --------------------------------------------------------------------- > --- > //2008-04-21 KUNIHARU Tsujioka update > > /** > * Header Redirect > * > * Header redirect in two flavors > * > * @access public > * @param string the URL > * @param string the method: location or redirect > * @param bool the ssl: true/false > * @return string > */ > if (! function_exists('redirect')) > { > function redirect($uri = '', $method = 'location', $ssl = FALSE) > { > switch($method) > { > case 'refresh': > header("Refresh:0;url=".site_url($uri, $ssl)); > break; > default: > header("Location: ".site_url($uri, $ssl)); > break; > } > exit; > } > } > > //2008-04-21 KUNIHARU Tsujioka update > > /** > * Base URL for SSL > * > * Returns the "base_url" item from your config file > * > * @access public > * @return string > */ > if (! function_exists('base_url_ssl')) > { > function base_url_ssl() > { > $CI =& get_instance(); > return $CI->config->slash_item('base_url_ssl'); > } > } > > ?> > > MY_Config.php > <?php if (!defined('BASEPATH')) exit('No direct script access allowed'); > > /** > * LICENSE > * > * This source file is subject to the new BSD license that is bundled > * with this package in the file LICENSE.txt. > * > * @category > * @package MYNETS_Config Class > * @author KUNIHARU Tsujioka <kunit****@gmail*****> > * @copyright Copyright (c) 2008 KUNIHARU Tsujioka <kunitsuji @ gmail. > com> > * @copyright Copyright (c) 2006-2008 Usagi Project (URL:http://usagi. > mynets.jp) > * @license New BSD License > */ > > class MYNETS_Config extends CI_Config { > > private $is_ssl = null; > > /** > * Constructor > * > */ > public function __construct() > { > parent::__construct(); > //2008-04-21 KUNIHARU Tsujioka > $this->_is_ssl(); > } > > // ----------------------------------------------------------------- > --- > > /** > * Site URL > * > * @access public > * @param string the URI string > * @param bool SSL true/false 2008-04-21 KUNIHARU Tsujioka updated > * @return string > */ > public function site_url($uri = '', $ssl = FALSE) > { > if (is_array($uri)) > { > $uri = implode('/', $uri); > } > > if ($uri == '') > { > if ($ssl) > { > return $this->slash_item('base_url_ssl').$this->item > ('index_page'); > } > else > { > return $this->slash_item('base_url').$this->item > ('index_page'); > } > } > else > { > $suffix = ($this->item('url_suffix') == FALSE) ? '' : $this > ->item('url_suffix'); > if ($ssl) > { > return $this->slash_item('base_url_ssl').$this-> > slash_item('index_page').preg_replace("|^/*(.+?)/*$|", "\\1", $uri). > $suffix; > } > else > { > return $this->slash_item('base_url').$this->slash_item > ('index_page').preg_replace("|^/*(.+?)/*$|", "\\1", $uri).$suffix; > } > } > } > > //2008-04-21 KUNIHARU Tsujioka update > /** > * 現在の通信がSSLかどうかを判定する > * @access plivate > * > * @return bool > * > */ > private function _is_ssl() > { > static $is_ssl; > if (!isset($is_ssl)) { > if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') { > $is_ssl = true; > } else { > $is_ssl = false; > } > } > $this->is_ssl = $is_ssl; > } > > public function is_ssl() > { > return $this->is_ssl; > } > > } > ?> > > あとは、application/config/config.phpの頭に > $config['base_url_ssl'] = MYNETS_URL_SSL; > でSSLのURL(基本的にbase_urlと同じはず)を記述すれば大丈夫かなと。 > > ファイル添付がいいのかメールに書いたらいいのかわからずとりあえず。 > > _______________________________________________ > Codeigniter-users mailing list > Codei****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users >