Changeset 11406 for temp/branches/mobile/data/include
- Timestamp:
- 2007/02/02 23:44:36 (20 years ago)
- File:
-
- 1 edited
-
temp/branches/mobile/data/include/mobile.inc (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
temp/branches/mobile/data/include/mobile.inc
r11398 r11406 3 3 * ¥â¥Ð¥¤¥ë¥µ¥¤¥È¶¦Í´Ø¿ô¥Õ¥¡¥¤¥ë 4 4 */ 5 6 require_once DATA_PATH . 'module/Net/URL.php'; 7 require_once DATA_PATH . 'class/SC_DbConn.php'; 8 require_once DATA_PATH . 'class/SC_Query.php'; 5 9 6 10 /** … … 132 136 if ($_SERVER['REQUEST_METHOD'] == 'GET') { 133 137 // 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 header('Location: ' . gfAddSessionId()); 138 139 } else { 139 140 // GET °Ê³°¤Î¾ì¹ç¤Ï¥È¥Ã¥×¥Ú¡¼¥¸¤Ø¥ê¥À¥¤¥ì¥¯¥È¤¹¤ë¡£ … … 197 198 lfMobileInitOutput(); 198 199 } 200 201 /** 202 * LocationÅù¤Ç¥»¥Ã¥·¥ç¥óID¤òÉղ乤ëɬÍפ¬¤¢¤ëURL¤Ë¥»¥Ã¥·¥ç¥óID¤òÉղ乤롣 203 * 204 * @return String 205 */ 206 function gfAddSessionId($url = null) { 207 $objURL = new Net_URL($url); 208 $objURL->addQueryString(session_name(), session_id()); 209 return $objURL->getURL(); 210 } 211 212 /** 213 * ¶õ¥á¡¼¥ëÍѤΥȡ¼¥¯¥ó¤òÀ¸À®¤¹¤ë¡£ 214 * 215 * @return string À¸À®¤·¤¿¥È¡¼¥¯¥ó¤òÊÖ¤¹¡£ 216 */ 217 function lfGenerateKaraMailToken() { 218 $token_chars = '0123456789abcdefghijklmnopqrstuvwxyz'; 219 $token_chars_length = strlen($token_chars); 220 $token_length = 10; 221 $token = ''; 222 223 while ($token_length > 0) { 224 $token .= $token_chars{mt_rand(0, $token_chars_length - 1)}; 225 --$token_length; 226 } 227 228 return $token; 229 } 230 231 /** 232 * ¶õ¥á¡¼¥ë´ÉÍý¥Æ¡¼¥Ö¥ë¤Ë¿·µ¬¥¨¥ó¥È¥ê¡¼¤òÅÐÏ¿¤·¡¢¥È¡¼¥¯¥ó¤òÊÖ¤¹¡£ 233 * 234 * @param string $next_url ¶õ¥á¡¼¥ë¼õ¤±ÉÕ¤±¸å¤ËÁ«°Ü¤µ¤»¤ë¥Ú¡¼¥¸ (¥â¥Ð¥¤¥ë¥µ¥¤¥È¥È¥Ã¥×¤«¤é¤ÎÁêÂÐURL) 235 * @param string $session_id ¥»¥Ã¥·¥ç¥óID (¾Êά¤·¤¿¾ì¹ç¤Ï¸½ºß¤Î¥»¥Ã¥·¥ç¥óID) 236 * @return string|false ¥È¡¼¥¯¥ó¤òÊÖ¤¹¡£¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ïfalse¤òÊÖ¤¹¡£ 237 */ 238 function gfPrepareKaraMail($next_url, $session_id = null) { 239 if (!isset($session_id)) { 240 $session_id = session_id(); 241 } 242 243 $objQuery = new SC_Query; 244 245 // GC 246 $time = date('Y-m-d H:i:s', time() - MOBILE_SESSION_LIFETIME); 247 $objQuery->delete('dtb_mobile_kara_mail', 'email IS NULL AND create_date < ?', array($time)); 248 249 $objQuery->delete('dtb_mobile_kara_mail', 'session_id = ?', array($session_id)); 250 251 $arrValues = array('session_id' => $session_id, 252 'next_url' => $next_url); 253 254 $try = 10; 255 256 while ($try > 0) { 257 $arrValues['token'] = $token = lfGenerateKaraMailToken(); 258 259 $objQuery->insert('dtb_mobile_kara_mail', $arrValues); 260 $count = $objQuery->count('dtb_mobile_kara_mail', 'token = ?', array($token)); 261 262 if ($count == 1) { 263 break; 264 } 265 266 $objQuery->delete('dtb_mobile_kara_mail', 'session_id = ?', array($session_id)); 267 $token = false; 268 --$try; 269 } 270 271 return $token; 272 } 273 274 /** 275 * ¶õ¥á¡¼¥ë¤«¤é¼èÆÀ¤·¤¿¥á¡¼¥ë¥¢¥É¥ì¥¹¤ò¶õ¥á¡¼¥ë´ÉÍý¥Æ¡¼¥Ö¥ë¤ËÅÐÏ¿¤¹¤ë¡£ 276 * 277 * @param string $token ¥È¡¼¥¯¥ó 278 * @param string $email ¥á¡¼¥ë¥¢¥É¥ì¥¹ 279 * @return boolean À®¸ù¤·¤¿¾ì¹ç¤Ïtrue¡¢¼ºÇÔ¤·¤¿¾ì¹ç¤Ïfalse¤òÊÖ¤¹¡£ 280 */ 281 function gfRegisterKaraMail($token, $email) { 282 $objQuery = new SC_Query; 283 284 // GC 285 $time = date('Y-m-d H:i:s', time() - MOBILE_SESSION_LIFETIME); 286 $objQuery->delete('dtb_mobile_kara_mail', 287 '(email IS NULL AND create_date < ?) OR (email IS NOT NULL AND receive_date < ?)', 288 array($time, $time)); 289 290 $kara_mail_id = $objQuery->get('dtb_mobile_kara_mail', 'kara_mail_id', 'token = ?', array($token)); 291 if (!isset($kara_mail_id)) { 292 return false; 293 } 294 295 $arrValues = array('email' => $email); 296 $arrRawValues = array('receive_date' => 'now()'); 297 $objQuery->update('dtb_mobile_kara_mail', $arrValues, 'kara_mail_id = ?', array($kara_mail_id), $arrRawValues); 298 299 return true; 300 } 301 302 /** 303 * ¶õ¥á¡¼¥ë´ÉÍý¥Æ¡¼¥Ö¥ë¤«¤é¥È¡¼¥¯¥ó¤¬°ìÃפ¹¤ë¹Ô¤òºï½ü¤·¡¢ 304 * ¼¡¤ËÁ«°Ü¤µ¤»¤ë¥Ú¡¼¥¸¤ÎURL¤òÊÖ¤¹¡£¡¡ 305 * 306 * ¥á¡¼¥ë¥¢¥É¥ì¥¹¤Ï $_SESSION['mobile']['kara_mail_from'] ¤ËÅÐÏ¿¤µ¤ì¤ë¡£ 307 * 308 * @param string $token ¥È¡¼¥¯¥ó 309 * @return string|false URL¤òÊÖ¤¹¡£¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ïfalse¤òÊÖ¤¹¡£ 310 */ 311 function gfFinishKaraMail($token) { 312 $objQuery = new SC_Query; 313 314 $arrRow = $objQuery->getrow('dtb_mobile_kara_mail', 'session_id, next_url, email', 315 'token = ? AND email IS NOT NULL AND receive_date >= ?', 316 array($token, date('Y-m-d H:i:s', time() - MOBILE_SESSION_LIFETIME))); 317 if (!isset($arrRow)) { 318 return false; 319 } 320 321 $objQuery->delete('dtb_mobile_kara_mail', 'token = ?', array($token)); 322 323 list($session_id, $next_url, $email) = $arrRow; 324 $objURL = new Net_URL(SITE_URL . $next_url); 325 $objURL->addQueryString(session_name(), $session_id); 326 $url = $objURL->getURL(); 327 328 session_id($session_id); 329 session_start(); 330 $_SESSION['mobile']['kara_mail_from'] = $email; 331 session_write_close(); 332 333 return $url; 334 } 199 335 ?>
Note: See TracChangeset
for help on using the changeset viewer.
