Javascript POST/重定向引发“连接已重置”浏览器错误
我正在为我们的客户建立一个一页的结账。此签出应包含凭证、装运和付款的所有表单。还可以编辑以前输入的值。除了一件事,一切都很顺利 我的页面由多个部分组成,包括:Javascript POST/重定向引发“连接已重置”浏览器错误,javascript,php,forms,.htaccess,Javascript,Php,Forms,.htaccess,我正在为我们的客户建立一个一页的结账。此签出应包含凭证、装运和付款的所有表单。还可以编辑以前输入的值。除了一件事,一切都很顺利 我的页面由多个部分组成,包括: 证书 装运 付款 在每个包含中,我检查相关数据是否在会话中,如果在会话中,我将显示不同的视图。这里没什么特别的 例如: <?php if (is_array($_SESSION['credentials'])) { ... show filled in values ... } else { ... show f
- 证书
- 装运
- 付款
<?php
if (is_array($_SESSION['credentials'])) {
... show filled in values ...
} else {
... show form ...
}
?>
index.php
进展
- 我已经转储了会话变量,以查看会话中是否有奇怪的内容。(这里没什么奇怪的)
- 我已经为firefox安装了一个
插件来检查篡改数据
数据。(这里也没什么奇怪的)POST
<script type="text/javascript">
window.history.forward();
function noBack() {
window.history.forward();
}
</script>
</head>
<body onload="noBack();" onpageshow="if (event.persisted) noBack();" onunload="">
action=“/checkout/payment/”
定义得好吗?我的意思是你可以尝试一个解析的url,我在/
末尾看到一个可疑的斜杠,你也可以用method=“POST”
定义表单方法,在index.php上你应该用$\u POST[]
检索所有内容,如果这会影响连接被重置”
有时可能意味着php崩溃。如果看不到确切的文件,很难猜测是否会发生这种情况以及为什么会发生这种情况
确保检查错误日志,键入:php--info | grep error以查看它被记录到的文件(如果您在linux/unix上)
我猜是一次偶然的休息;在某个地方看到这个答案有一个可能的原因:
不过,您会在错误日志中找到一些这方面的痕迹。如果您能提供这一点,我可能会提供更多帮助。我会检查您的建议。在处理具有某种防火墙的共享主机时,我遇到过一些“连接被重置”的情况。您是否启用了ModSecurity?是否需要很长时间才能重置连接?ie,可能的超时?@Xeli不,它实际上马上就出现了
<div class="left-column">
<h1 class="title-left">Step 2 - Shipment</h1>
<i>Select a shipment method</i>
<form method="POST" action="/checkout/payment/">
<input type="radio" value="0" name="shipmentmethod"> Collect<br />
<input type="radio" value="1" name="shipmentmethod"> Deliver<br />
<input type="submit" value="Go to Step 3" class="sexybutton sexysimple sexybestel pull-right" name="shipment">
</form>
</div>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
order allow,deny
allow from all
RewriteCond %{HTTP_HOST} ^tapijttegelhandel\.nl
RewriteRule ^(.*)$ http://www.tapijttegelhandel.nl/$1 [R=permanent,L]
AddDefaultCharset utf-8
RewriteRule ^checkout/ /index.php?mod=checkout&action=show [NC,L,QSA]
case 'checkout':
$action = isset($_GET['action']) ? $_GET['action'] : '';
switch ($action) {
case 'completed':
# ...
break;
case 'cancelled':
# ...
break;
case 'credentials':
case 'shipment':
case 'payment':
case 'edit':
default:
include $_SERVER['DOCUMENT_ROOT'].'checkout/show.php';
break;
}
break;
<script type="text/javascript">
window.history.forward();
function noBack() {
window.history.forward();
}
</script>
</head>
<body onload="noBack();" onpageshow="if (event.persisted) noBack();" onunload="">
/cart GET 200 OK
/checkout/credentials/ GET 304 OK
/checkout/credentials/ POST 304 OK
# edit
/checkout/credentials/ POST - Error 'Connection was reset'
# Refresh
/checkout/credentials/ POST 200 OK