在前面上传时 WP 注销

Posted

技术标签:

【中文标题】在前面上传时 WP 注销【英文标题】:WP logout when upload on front 【发布时间】:2016-08-31 23:17:07 【问题描述】:

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

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

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

【问题讨论】:

请解释清楚你想说什么。我无法正确理解它.. 【参考方案1】:

为什么 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');

complete reference

【讨论】:

我的网站正常没有问题。但我添加了新的帖子提交页面。上传任何文件时,我的问题出在此页面上。 您要在新帖子上上传的内容。特色图片? 不,任何媒体对象都可以发布内容。我将 wp_editor 与添加媒体按钮一起使用。尝试使用此按钮上传,用户突然自动注销。因为上传不成功。 看这可能是会话问题我将在下面发布答案,建议您的问题不清楚尝试提出一个明确的问题,并与任何他们能理解或不理解的人检查一次。因为在我们为您推荐正确的解决方案时可能会浪费一些时间。【参考方案2】:

这可能对你有帮助

要了解服务器上的默认(基于文件的会话)会话超时值是多少,您可以通过 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 整数

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

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

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

【讨论】:

【参考方案3】:

在我的情况下,这个问题是由 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

【讨论】:

以上是关于在前面上传时 WP 注销的主要内容,如果未能解决你的问题,请参考以下文章

WordPress上传图片时无法建立目录wp-content/uploads结局方案

php WP Foto Vote - 上传Youtube视频时触发,Video addon解析视频缩略图

成功登录后,Wordpress 管理员立即将我注销

新安装 Wordpress 3.9 抛出错误:上传图像时“无法创建目录 wp-content/uploads/2014/09”

wordpress 上传图片时提示“无法建立目录wp-content/uploads/2019/03。有没有上级目录的写权限?”

WP7 图片上传