Ignore:
Timestamp:
2007/02/02 23:44:36 (20 years ago)
Author:
rebelt
Message:

以下のモバイルサイト用ページ・機能を作成いたしました。

  • ログイン
  • パスワードを忘れた方
  • ご利用ガイド
  • お問い合せ
  • 空メール機能
File:
1 edited

Legend:

Unmodified
Added
Removed
  • temp/branches/mobile/data/include/mobile.inc

    r11398 r11406  
    33 * ¥â¥Ð¥¤¥ë¥µ¥¤¥È¶¦Í­´Ø¿ô¥Õ¥¡¥¤¥ë 
    44 */ 
     5 
     6require_once DATA_PATH . 'module/Net/URL.php'; 
     7require_once DATA_PATH . 'class/SC_DbConn.php'; 
     8require_once DATA_PATH . 'class/SC_Query.php'; 
    59 
    610/** 
    … …  
    132136        if ($_SERVER['REQUEST_METHOD'] == 'GET') { 
    133137            // 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()); 
    138139        } else { 
    139140            // GET °Ê³°¤Î¾ì¹ç¤Ï¥È¥Ã¥×¥Ú¡¼¥¸¤Ø¥ê¥À¥¤¥ì¥¯¥È¤¹¤ë¡£ 
    … …  
    197198    lfMobileInitOutput(); 
    198199} 
     200 
     201/** 
     202 * LocationÅù¤Ç¥»¥Ã¥·¥ç¥óID¤òÉղ乤ëɬÍפ¬¤¢¤ëURL¤Ë¥»¥Ã¥·¥ç¥óID¤òÉղ乤롣 
     203 * 
     204 * @return String 
     205 */ 
     206function 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 */ 
     217function 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 */ 
     238function 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 */ 
     281function 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 */ 
     311function 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} 
    199335?> 
Note: See TracChangeset for help on using the changeset viewer.