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
。
共有 0 条评论