将文本复制到剪贴板的最佳方法是什么?(多浏览器)
我试过了:
function copyToClipboard(text) {
if (window.clipboardData) { // Internet Explorer
window.clipboardData.setData("Text", text);
} else {
unsafeWindow.netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
const clipboardHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"].getService(Components.interfaces.nsIClipboardHelper);
clipboardHelper.copyString(text);
}
}
Run Code Online (Sandbox Code Playgroud)
但在Internet Explorer中,它会出现语法错误.在Firefox中,它说unsafeWindow is not defined.
没有闪存的好技巧:Trello如何访问用户的剪贴板?
我正在使用CodeIgniter 2.1.0创建的网站.
我有时会注意到,当我重新加载页面几次或者非常快地打开几页时,或者当我在代码中出错时(这些错误与会话无关)我会被注销.
本网站使用名为Ion_authand的库进行识别:
public function logged_in()
{
$identity = $this->ci->config->item('identity', 'ion_auth');
return (bool) $this->ci->session->userdata($identity);
}
Run Code Online (Sandbox Code Playgroud)
是否有我应该知道的错误或其他内容?
$config['sess_cookie_name'] = 'cisession';
$config['sess_expiration'] = 7200;
$config['sess_expire_on_close'] = TRUE;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'cisession';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;
Run Code Online (Sandbox Code Playgroud)
在这个网站上,会话几乎每页都会更新.
CodeIgniter 2 在每次 http 调用时重新生成会话 ID。这会导致并发 ajax 调用出现问题。这使得客户端和服务器可能不同步并且会话丢失。对此的修复不是在 ajax 调用上更新会话(请参阅Codeigniter 会话因 ajax 调用而出错)。但是,如果您将 CodeIgniter 用作单个页面应用程序的 API,其中每个调用都是 ajax,这只会导致会话根本不会更新。用户会在会话超时(默认 5 分钟)后注销。
在 CodeIgniter 3 中,他们试图通过在会话存储上使用写锁(参见https://github.com/bcit-ci/CodeIgniter/issues/3073)来解决这个问题。因为这依赖于数据库功能,所以只能在 MySQL 和 PostgreSQL 中安全地存储会话信息。例如,Redis 无法使用(请参阅http://www.codeigniter.com/userguide3/installation/upgrade_300.html#step-6-update-your-session-library-usage)。
最后我的问题是:Laravel 如何处理这个问题?Laravel 可以使用 Redis 进行会话存储。那么laravel什么时候重新生成session id呢?如果 Laravel 没有在每个 http 请求上自动重新生成它,如何在安全方面进行判断?
我已经尝试了两个建议: Codeigniter会话用ajax调用
但即使$config['sess_time_to_update'] = PHP_INT_MAX我仍然看到随机注销.
我也接受了创建课程的建议 MY_Session
用户仍在报告随机注销,我的日志似乎也表明了这一点.
编辑:这是我的会话配置:
$config['sess_cookie_name'] = 'phppos';
$config['sess_expiration'] = 86400;
$config['sess_expire_on_close'] = TRUE;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = PHP_INT_MAX;
Run Code Online (Sandbox Code Playgroud)