-4

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

但是没有人可以上传。当我单击“添加媒体”按钮并选择要上传的任何文件时,我当前的帐户会自动注销。

在哪里,用户尝试上传后,该位置的访问者下降。你怎么看?为什么要注销?

4

3 回答 3

2

为什么 WordPress 不断退出?

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

如果您从与 WordPress 设置中的 URL 不匹配的 URL 访问,则 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');

如果您更喜欢在 URL 中使用 www,请改用此代码

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

正确设置

完整参考

于 2016-05-12T10:42:49.513 回答
0

在我的情况下,这个问题是由 HTTPS 激活和wp_signon函数的参数$secure_cookie设置为false 而不是 true/empty 引起的

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
于 2019-12-26T18:27:06.897 回答
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 “&lt;pre>”;
 echo “Session information session_get_cookie_params function :: <br />”;
 print_r($CookieInfo);
 echo “&lt;/pre>”;
 //————————————————————————————–

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

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

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

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

由于 cookie 是由浏览器返回的,因此它不会延长到足够的生命周期。它必须由 setcookie() 手动发送。

于 2016-05-12T13:50:00.750 回答