Changeset 11398 for temp/branches/mobile/data/include
- Timestamp:
- 2007/01/19 23:01:05 (20 years ago)
- Location:
- temp/branches/mobile/data/include
- Files:
-
- 3 added
- 1 edited
-
mobile.inc (modified) (1 diff, 1 prop)
-
mobile_emoji_map_docomo.inc (added)
-
mobile_emoji_map_ezweb.inc (added)
-
mobile_emoji_map_softbank.inc (added)
Legend:
- Unmodified
- Added
- Removed
-
temp/branches/mobile/data/include/mobile.inc
- Property svn:keywords deleted
r10576 r11398 1 1 <?php 2 /** 3 * ¥â¥Ð¥¤¥ë¥µ¥¤¥È¶¦Í´Ø¿ô¥Õ¥¡¥¤¥ë 4 */ 5 6 /** 7 * EC-CUBE ¤¬¥µ¥Ý¡¼¥È¤¹¤ë·ÈÂÓüËö¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£ 8 * ÈóÂбþüËö¤Î¾ì¹ç¤Ï unsupported/index.php ¤Ø¥ê¥À¥¤¥ì¥¯¥È¤¹¤ë¡£ 9 * 10 * @return void 11 */ 12 function lfMobileCheckCompatibility() { 13 if (!GC_MobileUserAgent::isSupported()) { 14 header('Location: ' . URL_DIR . 'unsupported/index.php'); 15 exit; 16 } 17 } 18 19 /** 20 * ÆþÎϥǡ¼¥¿¤òÆâÉô¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤ËÊÑ´¹¤·¡¢³¨Ê¸»ú¤ò½üµî¤¹¤ë¡£ 21 * 22 * @param string &$value ÆþÎϥǡ¼¥¿¤Ø¤Î»²¾È 23 * @return void 24 */ 25 function lfMobileConvertInputValue(&$value) { 26 // Shift JIS ¤«¤éÆâÉô¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤ËÊÑ´¹¤¹¤ë¡£ 27 // SoftBank °Ê³°¤Î³¨Ê¸»ú¤Ï³°»úÎΰè¤Ë´Þ¤Þ¤ì¤ë¤¿¤á¡¢¤³¤ÎÃʳ¬¤Ç½üµî¤µ¤ì¤ë¡£ 28 $value = mb_convert_encoding($value, CHAR_CODE, 'SJIS'); 29 30 // SoftBank ¤Î³¨Ê¸»ú¤ò½üµî¤¹¤ë¡£ 31 $value = preg_replace('/\\x1b\\$[^\\x0f]*\\x0f/', '', $value); 32 } 33 34 /** 35 * ¥â¥Ð¥¤¥ë¥µ¥¤¥ÈÍÑ¤ÎÆþÎϤνé´ü½èÍý¤ò¹Ô¤¦¡£ 36 * 37 * @return void 38 */ 39 function lfMobileInitInput() { 40 array_walk($_GET, 'lfMobileConvertInputValue'); 41 array_walk($_POST, 'lfMobileConvertInputValue'); 42 array_walk($_REQUEST, 'lfMobileConvertInputValue'); 43 } 44 45 /** 46 * ¥Ñ¥é¥á¡¼¥¿¡¼¤«¤é͸ú¤Ê¥»¥Ã¥·¥ç¥óID¤ò¼èÆÀ¤¹¤ë¡£ 47 * 48 * @return string|false ¼èÆÀ¤·¤¿Í¸ú¤Ê¥»¥Ã¥·¥ç¥óID¤òÊÖ¤¹¡£ 49 * ¼èÆÀ¤Ç¤¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï false ¤òÊÖ¤¹¡£ 50 */ 51 function lfMobileGetSessionId() { 52 // ¥Ñ¥é¥á¡¼¥¿¡¼¤«¤é¥»¥Ã¥·¥ç¥óID¤ò¼èÆÀ¤¹¤ë¡£ 53 $sessionId = @$_POST[session_name()]; 54 if (!isset($sessionId)) { 55 $sessionId = @$_GET[session_name()]; 56 } 57 if (!isset($sessionId)) { 58 return false; 59 } 60 61 // ¥»¥Ã¥·¥ç¥óID¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£ 62 if (preg_match('/^[0-9a-zA-Z,-]{32,}$/', $sessionId) < 1) { 63 gfPrintLog("Invalid session id : sid=$sessionId"); 64 return false; 65 } 66 67 // ¥»¥Ã¥·¥ç¥óID¤Î¸ºß¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£ 68 if (sfSessRead($sessionId) === null) { 69 gfPrintLog("Non-existent session id : sid=$sessionId"); 70 return false; 71 } 72 73 return session_id($sessionId); 74 } 75 76 /** 77 * ¥»¥Ã¥·¥ç¥ó¥Ç¡¼¥¿¤¬Í¸ú¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£ 78 * 79 * @return boolean ¥»¥Ã¥·¥ç¥ó¥Ç¡¼¥¿¤¬Í¸ú¤Ê¾ì¹ç¤Ï true¡¢Ìµ¸ú¤Ê¾ì¹ç¤Ï false ¤òÊÖ¤¹¡£ 80 */ 81 function lfMobileValidateSession() { 82 // ÇÛÎó mobile ¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£ 83 if (!is_array(@$_SESSION['mobile'])) { 84 return false; 85 } 86 87 // ͸ú´ü¸Â¤ò²á¤®¤Æ¤¤¤Ê¤¤¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£ 88 if (intval(@$_SESSION['mobile']['expires']) < time()) { 89 gfPrintLog("Session expired at " . 90 date('Y/m/d H:i:s', @$_SESSION['mobile']['expires']) . 91 ' : sid=' . session_id()); 92 93 return false; 94 } 95 96 // ·ÈÂÓüËö¤Îµ¡¼ï¤¬°ìÃפ¹¤ë¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£ 97 $model = GC_MobileUserAgent::getModel(); 98 if (@$_SESSION['mobile']['model'] != $model) { 99 gfPrintLog("User agent model mismatch : " . 100 "\"$model\" != \"" . @$_SESSION['mobile']['model'] . 101 '" (expected), sid=' . session_id()); 102 return false; 103 } 104 105 return true; 106 } 107 108 /** 109 * ¥â¥Ð¥¤¥ë¥µ¥¤¥ÈÍѤΥ»¥Ã¥·¥ç¥ó´ØÏ¢¤Î½é´ü½èÍý¤ò¹Ô¤¦¡£ 110 * 111 * @return void 112 */ 113 function lfMobileInitSession() { 114 // ¥»¥Ã¥·¥ç¥óID¤Î¼õ¤±ÅϤ·¤Ë¥¯¥Ã¥¡¼¤ò»ÈÍѤ·¤Ê¤¤¡£ 115 ini_set('session.use_cookies', '0'); 116 ini_set('session.use_trans_sid', '1'); 117 118 // ¥Ñ¥é¥á¡¼¥¿¡¼¤«¤é͸ú¤Ê¥»¥Ã¥·¥ç¥óID¤ò¼èÆÀ¤¹¤ë¡£ 119 $sessionId = lfMobileGetSessionId(); 120 121 session_start(); 122 123 // ¥»¥Ã¥·¥ç¥óID¤Þ¤¿¤Ï¥»¥Ã¥·¥ç¥ó¥Ç¡¼¥¿¤¬Ìµ¸ú¤Ê¾ì¹ç¤Ï¡¢¥»¥Ã¥·¥ç¥óID¤òºÆÀ¸À® 124 // ¤·¡¢¥»¥Ã¥·¥ç¥ó¥Ç¡¼¥¿¤ò½é´ü²½¤¹¤ë¡£ 125 if ($sessionId === false || !lfMobileValidateSession()) { 126 session_regenerate_id(); 127 $_SESSION = array('mobile' => array('model' => GC_MobileUserAgent::getModel(), 128 'phone_id' => GC_MobileUserAgent::getId(), 129 'expires' => time() + MOBILE_SESSION_LIFETIME)); 130 131 // ¿·¤·¤¤¥»¥Ã¥·¥ç¥óID¤òÉղ䷤ƥê¥À¥¤¥ì¥¯¥È¤¹¤ë¡£ 132 if ($_SERVER['REQUEST_METHOD'] == 'GET') { 133 // GET ¤Î¾ì¹ç¤ÏƱ¤¸¥Ú¡¼¥¸¤Ë¥ê¥À¥¤¥ì¥¯¥È¤¹¤ë¡£ 134 require_once(DATA_PATH . 'module/Net/URL.php'); 135 $url = new Net_URL(); 136 $url->addQueryString(session_name(), session_id()); 137 header('Location: ' . $url->getURL()); 138 } else { 139 // GET °Ê³°¤Î¾ì¹ç¤Ï¥È¥Ã¥×¥Ú¡¼¥¸¤Ø¥ê¥À¥¤¥ì¥¯¥È¤¹¤ë¡£ 140 header('Location: ' . URL_SITE_TOP . '?' . SID); 141 } 142 exit; 143 } 144 145 // ·ÈÂÓüËöID¤ò¼èÆÀ¤Ç¤¤¿¾ì¹ç¤Ï¥»¥Ã¥·¥ç¥ó¥Ç¡¼¥¿¤ËÊݸ¤¹¤ë¡£ 146 $phoneId = GC_MobileUserAgent::getId(); 147 if ($phoneId !== false) { 148 $_SESSION['mobile']['phone_id'] = $phoneId; 149 } 150 151 // ¥»¥Ã¥·¥ç¥ó¤Î͸ú´ü¸Â¤ò¹¹¿·¤¹¤ë¡£ 152 $_SESSION['mobile']['expires'] = time() + MOBILE_SESSION_LIFETIME; 153 } 154 155 /** 156 * ¥â¥Ð¥¤¥ë¥µ¥¤¥ÈÍѤνÐÎϤνé´ü½èÍý¤ò¹Ô¤¦¡£ 157 * 158 * ½ÐÎϤÎή¤ì 159 * 1. Smarty 160 * 2. ÆâÉô¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤«¤é Shift JIS ¤ËÊÑ´¹¤¹¤ë¡£ 161 * 3. Á´³Ñ¥«¥¿¥«¥Ê¤òȾ³Ñ¥«¥¿¥«¥Ê¤ËÊÑ´¹¤¹¤ë¡£ 162 * 4. ³¨Ê¸»ú¥¿¥°¤ò³¨Ê¸»ú¥³¡¼¥É¤ËÊÑ´¹¤¹¤ë¡£ 163 * 5. ½ÐÎÏ 164 * 165 * @return void 166 */ 167 function lfMobileInitOutput() { 168 // Smarty ÍѤΥǥ£¥ì¥¯¥È¥ê¡¼¤òºîÀ®¤¹¤ë¡£ 169 @mkdir(COMPILE_DIR); 170 171 // ½ÐÎÏÍѤΥ¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤ò Shift JIS ¤Ë¸ÇÄꤹ¤ë¡£ 172 mb_http_output('SJIS-win'); 173 174 // ³¨Ê¸»ú¥¿¥°¤ò³¨Ê¸»ú¥³¡¼¥É¤ËÊÑ´¹¤¹¤ë¡£ 175 ob_start(array('GC_MobileEmoji', 'handler')); 176 177 // Á´³Ñ¥«¥¿¥«¥Ê¤òȾ³Ñ¥«¥¿¥«¥Ê¤ËÊÑ´¹¤¹¤ë¡£ 178 ob_start(create_function('$buffer', 'return mb_convert_kana($buffer, "k", "SJIS-win");')); 179 180 // ÆâÉô¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤«¤é Shift JIS ¤ËÊÑ´¹¤¹¤ë¡£ 181 ob_start('mb_output_handler'); 182 } 183 184 /** 185 * ¥â¥Ð¥¤¥ë¥µ¥¤¥ÈÍѤνé´ü½èÍý¤ò¹Ô¤¦¡£ 186 * 187 * @return void 188 */ 189 function sfMobileInit() { 190 lfMobileInitInput(); 191 192 if (basename(dirname($_SERVER['SCRIPT_NAME'])) != 'unsupported') { 193 lfMobileCheckCompatibility(); 194 lfMobileInitSession(); 195 } 196 197 lfMobileInitOutput(); 198 } 2 199 ?>
Note: See TracChangeset
for help on using the changeset viewer.
