本文整理汇总了PHP中thebuggenie\core\framework\Context::generateCSRFtoken方法的典型用法代码示例。如果您正苦于以下问题:PHP Context::generateCSRFtoken方法的具体用法?PHP Context::generateCSRFtoken怎么用?PHP Context::generateCSRFtoken使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类thebuggenie\core\framework\Context
的用法示例。
在下文中一共展示了Context::generateCSRFtoken方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: generate
/**
* Generate a url based on a route
*
* @param string $name The route key
* @param array $params key=>value pairs of route parameters
* @param boolean $relative Whether to generate an url relative to web root or an absolute
*
* @return string
*/
public function generate($name, $params = array(), $relative = true, $querydiv = '/', $divider = '/', $equals = '/')
{
if (mb_substr($name, 0, 1) == '@') {
$name = mb_substr($name, 1);
$details = explode('?', $name);
$name = array_shift($details);
if (count($details)) {
$param_details = array_shift($details);
$param_details = explode('&', $param_details);
foreach ($param_details as $detail) {
$param_detail = explode('=', $detail);
if (count($param_detail) > 1) {
$params[$param_detail[0]] = $param_detail[1];
}
}
}
}
if (!isset($this->routes[$name])) {
Logging::log("The route '{$name}' does not exist", 'routing', Logging::LEVEL_FATAL);
throw new \Exception("The route '{$name}' does not exist");
}
list($url, , $names, $names_hash, $action, $module, , $options, , ) = $this->routes[$name];
$defaults = array('action' => $action, 'module' => $module);
$params = self::arrayDeepMerge($defaults, $params);
if (array_key_exists('csrf_enabled', $options) && $options['csrf_enabled']) {
$params['csrf_token'] = Context::generateCSRFtoken();
}
// all params must be given
foreach ($names as $tmp) {
if (!isset($params[$tmp]) && !isset($defaults[$tmp])) {
throw new \Exception(sprintf('Route named "%s" have a mandatory "%s" parameter', $name, $tmp));
}
}
// in PHP 5.5, preg_replace with /e modifier is deprecated; preg_replace_callback is recommended
$callback = function ($matches) use($params) {
return array_key_exists($matches[1], $params) ? urlencode($params[$matches[1]]) : $matches[0];
};
$real_url = preg_replace_callback('/\\:([^\\/]+)/', $callback, $url);
// we add all other params if *
if (mb_strpos($real_url, '*')) {
$tmp = array();
foreach ($params as $key => $value) {
if (isset($names_hash[$key]) || isset($defaults[$key])) {
continue;
}
if (is_array($value)) {
foreach ($value as $k => $v) {
if (is_array($v)) {
foreach ($v as $vk => $vv) {
if (is_array($vv)) {
foreach ($vv as $vvk => $vvv) {
$tmp[] = "{$key}[{$k}][{$vk}][{$vvk}]" . $equals . urlencode($vvv);
}
} else {
$tmp[] = "{$key}[{$k}][{$vk}]" . $equals . urlencode($vv);
}
}
} else {
$tmp[] = "{$key}[{$k}]" . $equals . urlencode($v);
}
}
} else {
$tmp[] = urlencode($key) . $equals . urlencode($value);
}
}
$tmp = implode($divider, $tmp);
if (mb_strlen($tmp) > 0) {
$tmp = $querydiv . $tmp;
}
$real_url = preg_replace('/\\/\\*(\\/|$)/', "{$tmp}\$1", $real_url);
}
// strip off last divider character
if (mb_strlen($real_url) > 1) {
$real_url = rtrim($real_url, $divider);
}
if (!$relative) {
return Context::getURLhost() . Context::getStrippedWebroot() . $real_url;
}
return Context::getStrippedWebroot() . $real_url;
}
示例2: __
?>
<li id="openid_account_<?php
echo $details['id'];
?>
">
<?php
if (count($tbg_user->getOpenIDAccounts()) > 1 || !$tbg_user->isOpenIDLocked()) {
?>
<button class="button button-silver" onclick="TBG.Main.Helpers.Dialog.show('<?php
echo __('Remove this account link?');
?>
', '<?php
echo __('Do you really want to remove the link to this external account?') . '<br>' . __('By doing this, it will not be possible to log into this account via this authentication provider');
?>
', {yes: {click: function() {TBG.Main.Profile.removeOpenIDIdentity('<?php
echo make_url('account_remove_openid', array('openid' => $details['id'], 'csrf_token' => \thebuggenie\core\framework\Context::generateCSRFtoken()));
?>
', <?php
echo $details['id'];
?>
);}}, no: {click: TBG.Main.Helpers.Dialog.dismiss}});"><?php
echo __('Delete');
?>
</button>
<?php
}
?>
<?php
echo image_tag('openid_providers.small/' . $details['type'] . '.ico.png');
?>
<span class="openid_provider_name">
示例3: csrf_tag
/**
* Returns a csrf_token hidden input tag to use in forms
*
* @return string
*/
function csrf_tag()
{
return '<input type="hidden" name="csrf_token" value="' . \thebuggenie\core\framework\Context::generateCSRFtoken() . '">';
}