在前面

时间:2016-05-06 01:46:37

标签: wordpress logout capability wp-editor

我的主题有一个提交帖子页面,我配置了每个人上传的用户功能。

但没有人能够上传。当我点击“添加媒体”按钮并选择任何要上传的文件时,我当前的帐户会自动退出。

在用户尝试上传后,该位置的访问者数量下降。你怎么看?为何要退出?

3 个答案:

答案 0 :(得分:2)

为什么WordPress会继续退出?

WordPress在浏览器中设置cookie以验证登录会话。此cookie是为存储在设置部分中的WordPress URL设置的。

如果您从与WordPress设置中的网址不匹配的网址进行访问,则WordPress将无法对您的会话进行身份验证。

修复登录问题

此登录问题的一个简单修复是确保您的WordPress设置中的站点地址和WordPress地址字段中具有相同的URL。

这意味着您需要在这两个字段中选择www或非www URL。

  

登录您的WordPress信息中心,然后转到设置»常规。

如果您无法访问管理区域,则可以通过编辑wp-config.php文件来更新这些字段。

使用FTP客户端连接到您的网站,并在您网站的根目录中找到wp-config.php文件。您需要将此文件下载到桌面并在记事本等文本编辑器中打开它。在行的上方添加此代码全部,停止编辑!快乐的博客。

define('WP_HOME','http://example.com');
define('WP_SITEURL','http://example.com');

如果您希望在网址中使用www,请改用此代码

define('WP_HOME','http://www.example.com');
define('WP_SITEURL','http://www.example.com');

correct settings

complete reference

答案 1 :(得分:0)

这可能对您有所帮助

要了解服务器上的默认(基于文件的会话)会话超时值,您可以通过ini_get命令查看它:

// Get the current Session Timeout Value
$currentTimeoutInSecs = ini_get(’session.gc_maxlifetime’);

更改会话超时值

// Change the session timeout value to 30 minutes  // 8*60*60 = 8 hours
ini_set(’session.gc_maxlifetime’, 30*60);
//————————————————————————————–

// php.ini setting required for session timeout.

 ini_set(‘session.gc_maxlifetime’,30);
 ini_set(‘session.gc_probability’,1);
 ini_set(‘session.gc_divisor’,1);
 //————————————————————————————–
 //if you want to change the  session.cookie_lifetime.
 //This required in some common file because to get the session values in  whole application we need to write session_start();  to each file then only will   get $_SESSION global variable values.

$sessionCookieExpireTime=8*60*60;
session_set_cookie_params($sessionCookieExpireTime);
session_start();

//重置页面加载时的到期时间// session_name()是会话PHPSESSID的默认名称

 if (isset($_COOKIE[session_name()]))
 setcookie(session_name(), $_COOKIE[session_name()], time() + $sessionCookieExpireTime, “/”);
 //————————————————————————————–
 //To get the session cookie set param values.

 $CookieInfo = session_get_cookie_params();

 echo “<pre>”;
 echo “Session information session_get_cookie_params function :: <br />”;
 print_r($CookieInfo);
 echo “</pre>”;
 //————————————————————————————–

php.ini文件的会话相关设置的一些描述。

session.gc_maxlifetime整数 session.gc_maxlifetime指定数据被视为“垃圾”并清理的秒数。在会话开始期间发生垃圾收集。 session.cookie_lifetime integer

session.cookie_lifetime指定发送到浏览器的cookie的生命周期(以秒为单位)。

值0表示“直到浏览器关闭。”默认为0.另请参见session_get_cookie_params()和session_set_cookie_params()。

由于浏览器返回cookie,因此不会延长使用寿命。它必须由setcookie()手动发送。

答案 2 :(得分:0)

在我的情况下,此问题是由HTTPS激活和 wp_signon 函数的参数 $ secure_cookie 设置为 false而不是true / empty < / p>

https://developer.wordpress.org/reference/functions/wp_signon/

$creds = [
  'user_login'    => $user_login,
  'user_password' => $password,
  'remember'      => 'true',
];
$signon = wp_signon($creds, true); // <<< USE true OR REMOVE PARAM