当前位置: 首页>>代码示例>>PHP>>正文


PHP Surfer::set_cookie方法代码示例

本文整理汇总了PHP中Surfer::set_cookie方法的典型用法代码示例。如果您正苦于以下问题:PHP Surfer::set_cookie方法的具体用法?PHP Surfer::set_cookie怎么用?PHP Surfer::set_cookie使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Surfer的用法示例。


在下文中一共展示了Surfer::set_cookie方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: set

 /**
  * surfer has been authenticated
  *
  * This function copies user attributes in session storage area.
  *
  * Following named attributes from the provided array are copied in session storage area:
  * - $fields['id'] - id of the logged surfer
  * - $fields['nick_name'] - nick name of the logged surfer
  * - $fields['email'] - email address
  * - $fields['editor'] - preferred on-line editor
  * - $fields['capability'] - 'A'ssociate or 'M'ember or 'S'ubscriber or '?'
  * - $fields['phone_number'] - phone number (international format)
  *
  * We also remember the IP address of the authenticating workstation,
  * and the root path of the instance that has validated the surfer.
  *
  * @param array session attributes
  * @param boolean TRUE to remind date of last login in user record
  */
 public static function set($fields, $update_flag = FALSE)
 {
     global $context;
     // save session attributes
     $_SESSION['surfer_id'] = isset($fields['id']) ? $fields['id'] : '';
     $_SESSION['surfer_language'] = isset($fields['language']) ? $fields['language'] : 'none';
     if (isset($fields['full_name']) && $fields['full_name']) {
         $_SESSION['surfer_name'] = $fields['full_name'];
     } elseif (isset($fields['nick_name']) && $fields['nick_name']) {
         $_SESSION['surfer_name'] = $fields['nick_name'];
     } else {
         $_SESSION['surfer_name'] = '';
     }
     $_SESSION['surfer_email_address'] = isset($fields['email']) ? $fields['email'] : '';
     $_SESSION['surfer_phone_number'] = isset($fields['phone_number']) ? $fields['phone_number'] : '';
     // provide a default capability only to recorded users
     if (!$_SESSION['surfer_id']) {
         $default_capability = '';
     } elseif (isset($context['users_with_approved_members']) && $context['users_with_approved_members'] == 'Y') {
         $default_capability = 'S';
     } elseif (isset($context['users_with_email_validation']) && $context['users_with_email_validation'] == 'Y') {
         $default_capability = 'S';
     } else {
         $default_capability = 'M';
     }
     $_SESSION['surfer_capability'] = isset($fields['capability']) ? $fields['capability'] : $default_capability;
     // editor preference
     if (isset($fields['editor'])) {
         $_SESSION['surfer_editor'] = $fields['editor'];
     }
     if (!isset($_SESSION['surfer_editor']) || !$_SESSION['surfer_editor']) {
         $_SESSION['surfer_editor'] = $context['users_default_editor'];
     }
     // interface preference
     if (isset($fields['interface']) && $fields['interface'] == 'C') {
         $_SESSION['surfer_interface'] = 'C';
     } else {
         $_SESSION['surfer_interface'] = 'I';
     }
     // remember the address of the authenticating workstation
     if (isset($_SERVER['REMOTE_ADDR'])) {
         $_SESSION['workstation_id'] = $_SERVER['REMOTE_ADDR'];
     }
     // remember the authenticating instance
     if (isset($context['url_to_root']) && $context['url_to_root']) {
         $_SESSION['server_id'] = $context['url_to_root'];
     }
     // the surfer has been authenticated, do not challenge him anymore
     $_SESSION['surfer_is_not_a_robot'] = TRUE;
     // update user record
     if (isset($fields['id'])) {
         // clear tentatives of authentication
         $query = array();
         $query[] = 'authenticate_failures=0';
         // remember the date of login
         if ($update_flag) {
             $query[] = "login_date='" . gmstrftime('%Y-%m-%d %H:%M:%S') . "'";
             $query[] = "login_address='" . $_SERVER['REMOTE_ADDR'] . "'";
         }
         // do the update
         $query = "UPDATE " . SQL::table_name('users') . " SET " . implode(', ', $query) . " WHERE id = " . $fields['id'];
         SQL::query($query, FALSE, $context['users_connection']);
     }
     // set a semi-permanent cookie for user identification
     if (isset($fields['handle']) && $fields['handle'] && isset($context['users_with_permanent_authentication']) && $context['users_with_permanent_authentication'] == 'Y') {
         // time of authentication
         $now = (string) time();
         // token is made of: user id, time of login, gmt offset, salt --salt combines date of login with secret handle
         $token = $fields['id'] . '|' . $now . '|' . Surfer::get_gmt_offset() . '|' . md5($now . '|' . $fields['handle']);
         // attempt to set this cookie while answering the current request
         Surfer::set_cookie('screening', $token);
         // we will do it again on next transaction, to take care of redirections, if any
         $_SESSION['surfer_token'] = $token;
     }
 }
开发者ID:rair,项目名称:yacs,代码行数:94,代码来源:surfer.php


注:本文中的Surfer::set_cookie方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。