⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 message.php

📁 简介:IceBB是一个强大
💻 PHP
📖 第 1 页 / 共 2 页
字号:
            }        }        if ($obj->_fromOpenIDArgs($openid_args)) {            return $obj;        } else {            return null;        }    }    function fromOpenIDArgs($openid_args)    {        // Takes an array.        // Construct a Message from a parsed KVForm message        $obj = new Auth_OpenID_Message();        if ($obj->_fromOpenIDArgs($openid_args)) {            return $obj;        } else {            return null;        }    }    /**     * @access private     */    function _fromOpenIDArgs($openid_args)    {        global $Auth_OpenID_registered_aliases;        // Takes an Auth_OpenID_Mapping instance OR an array.        if (!Auth_OpenID_Mapping::isA($openid_args)) {            $openid_args = new Auth_OpenID_Mapping($openid_args);        }        $ns_args = array();        // Resolve namespaces        foreach ($openid_args->items() as $pair) {            list($rest, $value) = $pair;            $parts = explode('.', $rest, 2);            if (count($parts) == 2) {                list($ns_alias, $ns_key) = $parts;            } else {                $ns_alias = Auth_OpenID_NULL_NAMESPACE;                $ns_key = $rest;            }            if ($ns_alias == 'ns') {                if ($this->namespaces->addAlias($value, $ns_key) === null) {                    return false;                }            } else if (($ns_alias == Auth_OpenID_NULL_NAMESPACE) &&                       ($ns_key == 'ns')) {                // null namespace                if ($this->namespaces->addAlias($value,                                     Auth_OpenID_NULL_NAMESPACE) === null) {                    return false;                }            } else {                $ns_args[] = array($ns_alias, $ns_key, $value);            }        }        // Ensure that there is an OpenID namespace definition        $openid_ns_uri =            $this->namespaces->getNamespaceURI(Auth_OpenID_NULL_NAMESPACE);        if ($openid_ns_uri === null) {            $openid_ns_uri = Auth_OpenID_OPENID1_NS;        }        $this->setOpenIDNamespace($openid_ns_uri);        // Actually put the pairs into the appropriate namespaces        foreach ($ns_args as $triple) {            list($ns_alias, $ns_key, $value) = $triple;            $ns_uri = $this->namespaces->getNamespaceURI($ns_alias);            if ($ns_uri === null) {                // Only try to map an alias to a default if it's an                // OpenID 1.x message.                if ($openid_ns_uri == Auth_OpenID_OPENID1_NS) {                    foreach ($Auth_OpenID_registered_aliases                             as $alias => $uri) {                        if ($alias == $ns_alias) {                            $ns_uri = $uri;                            break;                        }                    }                }                if ($ns_uri === null) {                    $ns_uri = $openid_ns_uri;                    $ns_key = sprintf('%s.%s', $ns_alias, $ns_key);                } else {                    $this->namespaces->addAlias($ns_uri, $ns_alias);                }            }            $this->setArg($ns_uri, $ns_key, $value);        }        return true;    }    function setOpenIDNamespace($openid_ns_uri)    {        if (!in_array($openid_ns_uri, $this->allowed_openid_namespaces)) {            // raise ValueError('Invalid null namespace: %r' % (openid_ns_uri,))            return false;        }        $this->namespaces->addAlias($openid_ns_uri,                                    Auth_OpenID_NULL_NAMESPACE);        $this->_openid_ns_uri = $openid_ns_uri;    }    function getOpenIDNamespace()    {        return $this->_openid_ns_uri;    }    function fromKVForm($kvform_string)    {        // Create a Message from a KVForm string        return Auth_OpenID_Message::fromOpenIDArgs(                     Auth_OpenID_KVForm::toArray($kvform_string));    }    function copy()    {        return $this;    }    function toPostArgs()    {        // Return all arguments with openid. in front of namespaced        // arguments.        $args = array();        // Add namespace definitions to the output        foreach ($this->namespaces->iteritems() as $pair) {            list($ns_uri, $alias) = $pair;            if ($alias == Auth_OpenID_NULL_NAMESPACE) {                if ($ns_uri != Auth_OpenID_OPENID1_NS) {                    $args['openid.ns'] = $ns_uri;                } else {                    // drop the default null namespace                    // definition. This potentially changes a message                    // since we have no way of knowing whether it was                    // explicitly specified at the time the message                    // was parsed. The vast majority of the time, this                    // will be the right thing to do. Possibly this                    // could look in the signed list.                }            } else {                if ($this->getOpenIDNamespace() != Auth_OpenID_OPENID1_NS) {                    $ns_key = 'openid.ns.' . $alias;                    $args[$ns_key] = $ns_uri;                }            }        }        foreach ($this->args->items() as $pair) {            list($ns_parts, $value) = $pair;            list($ns_uri, $ns_key) = $ns_parts;            $key = $this->getKey($ns_uri, $ns_key);            $args[$key] = $value;        }        return $args;    }    function toArgs()    {        // Return all namespaced arguments, failing if any        // non-namespaced arguments exist.        $post_args = $this->toPostArgs();        $kvargs = array();        foreach ($post_args as $k => $v) {            if (strpos($k, 'openid.') !== 0) {                // raise ValueError(                //   'This message can only be encoded as a POST, because it '                //   'contains arguments that are not prefixed with "openid."')                return null;            } else {                $kvargs[substr($k, 7)] = $v;            }        }        return $kvargs;    }    function toFormMarkup($action_url, $form_tag_attrs = null,                          $submit_text = "Continue")    {        $form = "<form accept-charset=\"UTF-8\" ".            "enctype=\"application/x-www-form-urlencoded\"";        if (!$form_tag_attrs) {            $form_tag_attrs = array();        }        $form_tag_attrs['action'] = $action_url;        $form_tag_attrs['method'] = 'post';        unset($form_tag_attrs['enctype']);        unset($form_tag_attrs['accept-charset']);        if ($form_tag_attrs) {            foreach ($form_tag_attrs as $name => $attr) {                $form .= sprintf(" %s=\"%s\"", $name, $attr);            }        }        $form .= ">\n";        foreach ($this->toPostArgs() as $name => $value) {            $form .= sprintf(                        "<input type=\"hidden\" name=\"%s\" value=\"%s\" />\n",                        $name, $value);        }        $form .= sprintf("<input type=\"submit\" value=\"%s\" />\n",                         $submit_text);        $form .= "</form>\n";        return $form;    }    function toURL($base_url)    {        // Generate a GET URL with the parameters in this message        // attached as query parameters.        return Auth_OpenID::appendArgs($base_url, $this->toPostArgs());    }    function toKVForm()    {        // Generate a KVForm string that contains the parameters in        // this message. This will fail if the message contains        // arguments outside of the 'openid.' prefix.        return Auth_OpenID_KVForm::fromArray($this->toArgs());    }    function toURLEncoded()    {        // Generate an x-www-urlencoded string        $args = array();        foreach ($this->toPostArgs() as $k => $v) {            $args[] = array($k, $v);        }        sort($args);        return Auth_OpenID::httpBuildQuery($args);    }    /**     * @access private     */    function _fixNS($namespace)    {        // Convert an input value into the internally used values of        // this object        if ($namespace == Auth_OpenID_OPENID_NS) {            if ($this->_openid_ns_uri === null) {                // raise UndefinedOpenIDNamespace('OpenID namespace not set')                return null;            } else {                $namespace = $this->_openid_ns_uri;            }        }        if (($namespace != Auth_OpenID_BARE_NS) &&            (!is_string($namespace))) {            // raise TypeError(            //     "Namespace must be BARE_NS, OPENID_NS or a string. got %r"            //     % (namespace,))            return null;        }        if (($namespace != Auth_OpenID_BARE_NS) &&            (strpos($namespace, ':') === false)) {            // fmt = 'OpenID 2.0 namespace identifiers SHOULD be URIs. Got %r'            // warnings.warn(fmt % (namespace,), DeprecationWarning)            if ($namespace == 'sreg') {                // fmt = 'Using %r instead of "sreg" as namespace'                // warnings.warn(fmt % (SREG_URI,), DeprecationWarning,)                return Auth_OpenID_SREG_URI;            }        }        return $namespace;    }    function hasKey($namespace, $ns_key)    {        $namespace = $this->_fixNS($namespace);        if ($namespace !== null) {            return $this->args->contains(array($namespace, $ns_key));        } else {            return false;        }    }    function getKey($namespace, $ns_key)    {        // Get the key for a particular namespaced argument        $namespace = $this->_fixNS($namespace);        if ($namespace == Auth_OpenID_BARE_NS) {            return $ns_key;        }        $ns_alias = $this->namespaces->getAlias($namespace);        // No alias is defined, so no key can exist        if ($ns_alias === null) {            return null;        }        if ($ns_alias == Auth_OpenID_NULL_NAMESPACE) {            $tail = $ns_key;        } else {            $tail = sprintf('%s.%s', $ns_alias, $ns_key);        }        return 'openid.' . $tail;    }    function getArg($namespace, $key, $default = null)    {        // Get a value for a namespaced key.        $namespace = $this->_fixNS($namespace);        if ($namespace !== null) {            if ((!$this->args->contains(array($namespace, $key))) &&                ($default == Auth_OpenID_NO_DEFAULT)) {                return null;            } else {                return $this->args->get(array($namespace, $key), $default);            }        } else {            return null;        }    }    function getArgs($namespace)    {        // Get the arguments that are defined for this namespace URI        $namespace = $this->_fixNS($namespace);        if ($namespace !== null) {            $stuff = array();            foreach ($this->args->items() as $pair) {                list($key, $value) = $pair;                list($pair_ns, $ns_key) = $key;                if ($pair_ns == $namespace) {                    $stuff[$ns_key] = $value;                }            }            return $stuff;        }        return array();    }    function updateArgs($namespace, $updates)    {        // Set multiple key/value pairs in one call        $namespace = $this->_fixNS($namespace);        if ($namespace !== null) {            foreach ($updates as $k => $v) {                $this->setArg($namespace, $k, $v);            }            return true;        } else {            return false;        }    }    function setArg($namespace, $key, $value)    {        // Set a single argument in this namespace        $namespace = $this->_fixNS($namespace);        if ($namespace !== null) {            $this->args->set(array($namespace, $key), $value);            if ($namespace !== Auth_OpenID_BARE_NS) {                $this->namespaces->add($namespace);            }            return true;        } else {            return false;        }    }    function delArg($namespace, $key)    {        $namespace = $this->_fixNS($namespace);        if ($namespace !== null) {            return $this->args->del(array($namespace, $key));        } else {            return false;        }    }    function getAliasedArg($aliased_key, $default = null)    {        $parts = explode('.', $aliased_key, 2);        if (count($parts) != 2) {            $ns = null;        } else {            list($alias, $key) = $parts;            if ($alias == 'ns') {              // Return the namespace URI for a namespace alias              // parameter.              return $this->namespaces->getNamespaceURI($key);            } else {              $ns = $this->namespaces->getNamespaceURI($alias);            }        }        if ($ns === null) {            $key = $aliased_key;            $ns = $this->getOpenIDNamespace();        }        return $this->getArg($ns, $key, $default);    }}?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -