phpbb 程序网站登录账户不成功,一直提示“提交的表单无效,请再尝试一次”[已解决]

如果出现以下情况均可以尝试以下步骤解决方法:

情况一:phpbb 3.3.x 登录账户不成功,一直提示“提交的表单无效,请再尝试一次”

情况二:登入管理员控制面板后经常被注销 [进入ACP(管理员控制面板)界面之前需要重新输入账号密码,然后我发现在创建板块时,总是被注销,提示需要重新登录。
]

问题解决方向:浏览器问题cookie设置服务器设置

浏览器问题

只需要关注两个方面,一、域名解析是否正常解析,如果网站加过CDN,或者是代理网站,请直接使用客户端Windows电脑修改hosts文件,让浏览器直接访问网站源站点IP,如果正常,请排查域名解析是否正常!二、更换其他浏览器进行访问测试!

cookie设置;服务器设置

这两个都需要排查网站设置和服务器设置是否正常!当你使用的网站使用了https开头协议访问443端口访问出现异常问题,先保证网站通过http协议通过80端口正常访问;在排查网站加了了SSL证书以后https协议通过80端口正常访问。

请先确保网站域名解析正确,如果网站使用https访问,确保SSL能够正常使用,SSL证书没有过期

在网站设置中,请查看网站的Cookies 设定服务器URL设定是否正确!

管理界面 -> 服务器配置 -> Cookies 设定

Cookies 作用域改为 .域名.后缀 的形式,例如 .graphicode.org

Cookies 名称保留原样

Cookies 路径保留一个 斜杠 /

管理界面 -> 服务器配置 -> 服务器设置 -> 服务器URL设定

强制设定服务器URL 选“是”

服务协议: http:// (如果没有使用SSL证书也就是说使用http开头访问网站的填写http:// 使用SSL证书也就是说使用http开头访问网站的填写https:// )

域名: 需要和Cookies 作用域填写的域名保持一致,使用的服务器URL设定的服务协议保持一致

其他两项一般默认

填写示例1

这是您的网站访问URL是:http://example.com

您网站的Cookie设置应为:

Cookies 作用域: .example.com(请注意在开头有一个英文输入状态的点!)

Cookie名称: cookiename_example(可以是您想要的任何名称,使用默认即可,不用修改。)

Cookie路径: /(请注意,这始终是斜线号,与您的网站访问的URL是什么无关紧要)

Cookie安全:禁用 (大多数情况下,它是“已禁用”,但是当您的网站使用SSL访问时(即https开头),您必须将其打开,否则将其禁用。)

您网站的服务器URL设定为:

强制设定服务器URL 选“是”

服务协议: http:// 

域名:   http://example.com

服务器端口: 80

其他两项一般默认

填写示例2:

您的网站访问URL是:https://forums.example.com 并且网站已经正确安装了对应域名的证书。

您的Cookie设置应为:

Cookies 作用域: forums.example.com(请注意,填写时开头没有 http://  、 https:// 或者 点,末尾没有斜杠。)

Cookie名称: cookiename_example(可以是您想要的任何名称,使用默认即可,不用修改。)

Cookie路径: /  (请注意,这始终是斜线号,与您的网站访问的URL是什么无关紧要)

Cookie的安全性:启用   (大多数情况下,它是“已禁用”,但是当您的网站使用SSL访问时(即https开头),您必须将其打开,否则将其禁用。)

您网站的服务器URL设定为:

强制设定服务器URL 选“是”

服务协议: https:// 

域名:   https://forums.example.com

服务器端口: 443

其他两项一般默认

填写示例3:

您的网站访问URL是::http://example.co.uk

您的Cookie设置应为:

Cookies 作用域: .example.co.uk(请注意,在这种情况下为三个点,因为tld有两个,并且前面必须有一个点)

Cookie名称: cookiename_example(可以是您想要的任何名称,使用默认即可,不用修改。)

Cookie路径: /  (请注意,这始终是斜线号,与您的网站访问的URL是什么无关紧要)

Cookie的安全性:禁用   (大多数情况下,它是“已禁用”,但是当您的网站使用SSL访问时(即https开头),您必须将其打开,否则将其禁用。)

您网站的服务器URL设定为:

强制设定服务器URL 选“是”

服务协议: http:// 

域名:   http://example.co.uk

服务器端口: 80

其他两项一般默认

更改方法

现在你需要知道如何编辑设置后,你可以通过几种方法来实现。我们将在这里教你如何修改。

方法一、通过网站后台 ACP进行修改

phpBB3可以选择在ACP中手动更改Cookie设置。首先转到对应窗口进行编辑设置。

更改Cookie设置您可以在这里找到它:ACP ==>选项卡“常规” ==>服务器配置==> Cookie设置

在这里,填写新的Cookie设置并保存。

同时更改 服务器 URL 设定 您可以在这里找到它:ACP ==>选项卡“常规” ==>服务器配置==>服务器 URL 设定

方法二、使用特殊PHP文件

当您的cookie设置不正确时,也有可能无法再访问您的面板。因此,我们提出了另一个解决方案。一个特殊的文件,可以更新您的cookie设置。

首先,复制以下代码,并将文件命名为cookie.php,并将其上传到论坛根目录中,该目录也是网站对应的config.php文件所在的相同文件夹位置。

<?php/**
*
* @package Cookie and server settings tool
* @copyright (c) 2008 ktuk.net
* @copyright (c) 2011 phpbb.com
* @license GPL
*
*/// Standard definitions/includes$page_title = 'phpBB3 Cookies';define('IN_PHPBB', true);$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';$phpEx = substr(strrchr(__FILE__, '.'), 1);include($phpbb_root_path . 'common.' . $phpEx);$script_name = (isset($request) && ($request instanceof \phpbb\request\request_interface)) ? $request->server('SCRIPT_NAME', '') : $_SERVER['SCRIPT_NAME'];$cookie_data = array();$server_data = array();$sent = request_var('sent', '');// Gather cookie settings from config array$cookie_data[] = $config['cookie_domain'];$cookie_data[] = $config['cookie_name'];$cookie_data[] = $config['cookie_path'];$cookie_data[] = $config['cookie_secure'];$server_data[] = $config['force_server_vars'];$server_data[] = $config['script_path'];$server_data[] = $config['server_name'];$server_data[] = $config['server_port'];$server_data[] = $config['server_protocol'];$cookie_checked = ($cookie_data[3]) ? "checked = \"checked\"" : '';$force_checked = ($server_data[0]) ? "checked = \"checked\"" : '';if (!$sent){
   print "<html>
   <head><title>$page_title</title></head>
   <body>
   
   <form action=\"" . $script_name . "\" method=\"post\"
   <fieldset>
   <table>
      <tr><h2>Cookie Settings</h2></tr>
      <tr><td>Cookie Domain:</td><td><input type=\"text\" name=\"cookie_domain\" value=\"" . $cookie_data[0] . "\"></td></tr>
      <tr><td>Cookie Name:</td><td><input type=\"text\" name=\"cookie_name\" value=\"" . $cookie_data[1] . "\"></td></tr>
      <tr><td>Cookie Path:</td><td><input type=\"text\" name=\"cookie_path\" value=\"" . $cookie_data[2] . "\"></td></tr>
      <tr><td>Cookie Secure:</td><td><input type=\"checkbox\" name=\"cookie_secure\" value=\"1\" $cookie_checked ></td></tr>
   </table>

   <table>
      <tr><h2>Server Settings</h2></tr>
      <tr><td>Force Server Vars:</td><td><input type=\"checkbox\" name=\"force_server_vars\" value=\"1\"  $force_checked ></td></tr>
      <tr><td>Script Path:</td><td><input type=\"text\" name=\"script_path\" value=\"" . $server_data[1] . "\"></td></tr>
      <tr><td>Server Name:</td><td><input type=\"text\" name=\"server_name\" value=\"" . $server_data[2] . "\"></td></tr>
      <tr><td>Server Port:</td><td><input type=\"text\" name=\"server_port\" value=\"" . $server_data[3] . "\"></td></tr>
      <tr><td>Server Protocol:</td><td><input type=\"text\" name=\"server_protocol\" value=\"" . $server_data[4] . "\"></td></tr>
      <tr><td>Submit:</td><td><input type=\"submit\" name=\"sent\" value=\"submit\"></td></tr>
   </table>
   </fieldset>
   </body>
   <html>
   ";}if ($sent){
   $cookie_domain      = request_var('cookie_domain', '');
   $cookie_name      = request_var('cookie_name', '');
   $cookie_path      = request_var('cookie_path', '');
   $cookie_secure      = request_var('cookie_secure', 0);
   $force_server_vars   = request_var('force_server_vars', 0);
   $script_path      = request_var('script_path', '');
   $server_name      = request_var('server_name', '');
   $server_port      = request_var('server_port', 80);
   $server_protocol   = request_var('server_protocol', 'http://');
   $sql_ary = array(       'cookie_domain'      => $cookie_domain,       'cookie_name'      => $cookie_name,       'cookie_path'      => $cookie_path,       'cookie_secure'      => $cookie_secure,       'force_server_vars'   => $force_server_vars,       'script_path'      => $script_path,       'server_name'      => $server_name,       'server_port'      => $server_port,       'server_protocol'   => $server_protocol
   );
   foreach ($sql_ary as $config_name => $config_value)
   {
      set_config($config_name, $config_value);
   }
   print "Settings are updated!";   print "<meta http-equiv=\"refresh\" content=\"4;./cookie.php\">";}

例如,在Web浏览器中以其URL浏览到脚本 http://www.example.com/forum/cookie.php   然后,PHP文件脚本将加载显示当前服务器和cookie详细信息的表单,您可以将其修改为正确的设置。正确修改设置后,请单击“提交”按钮。完成后,不要忘记从服务器中删除脚本。否则,每个人都可以编辑您的设置。

3.通过修改数据库

另一种可能性是使用数据库运行一些查询以更新您的cookie设置。转到phpMyAdmin并运行以下查询:

UPDATE phpbb_config SET config_value = 'YOUR COOKIE DOMAIN HERE' WHERE config_name = 'cookie_domain';
UPDATE phpbb_config SET config_value = 'YOUR COOKIE NAME HERE' WHERE config_name = 'cookie_name';
UPDATE phpbb_config SET config_value = 'YOUR COOKIE PATH HERE' WHERE config_name = 'cookie_path';
UPDATE phpbb_config SET config_value = '0' WHERE config_name = 'cookie_secure';

请注意,您必须用您的设置替换前三个,对于最后一个,只有在Cookie安全设置为启用的情况下才可以编辑零,否则您不需要对其进行任何操作。还要注意,当您的表前缀不是phpbb_时,您必须将其编辑为对应的数据库表前缀(以上SQL查询语句默认使用的是phpbb_),并且不要忘记删除缓存文件夹中除了index.htm和.htaccess之外的所有文件来清除缓存。

参考文章来源:

https://www.phpbbchinese.com/viewtopic.php?t=898

http://www.phpbb.com/support/docs/en/3.3/kb/article/fixing-incorrect-cookie-settings

版权声明:
作者:WaterBear
链接:https://l-t.top/1085.html
来源:雷霆运维
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>