我想在多个页面上发布表单中的数据,但主要操作仍应为“”。
所以在我点击之后,它应该刷新在同一页面上,但POST数据也会转到另一个.php
。我需要这个,因为在另一个.php文件中,创建了一个嵌入到原始表单页面的图形。
我尝试过使用隐藏字段。我也可以做graph.php?var1=3&var2=3
等等,但我不想那样显示它。
我对javascript不太熟悉,但我觉得这样就好了?
答案 0 :(得分:1)
是的,听起来你应该做一个jQuery .ajax调用或使用XMLHTTPRequest。发布到您需要的URL,并在获得结果后重新加载页面。
var i = 0
var pages = 3
var fd = new FormData();
fd.append( 'value1', $('form input').val() );
fd.append( 'value2', $('form textarea').val() );
$.ajax({
url: 'http://example.com/page1.php',
data: fd,
processData: false,
contentType: false,
type: 'POST',
success: function(data){
i++;
captureFunction();
}
});
$.ajax({
url: 'http://example.com/page2.php',
data: fd,
processData: false,
contentType: false,
type: 'POST',
success: function(data){
i++;
captureFunction();
}
});
$.ajax({
url: 'http://example.com/page3.php',
data: fd,
processData: false,
contentType: false,
type: 'POST',
success: function(data){
i++;
captureFunction();
}
});
var captureFunction = function() {
if(i != pages) return;
location.reload()
}
我认为这不会开箱即用,但对于你开始攻击来说将是一个很好的起点。
答案 1 :(得分:0)
由于您使用的是PHP
在页面重新加载时将POST请求卷曲到每个所需页面。
e.g。
class Asynchronous {
public function add($url, $params)
{
foreach ($params as $key => &$val) {
if (is_array($val)) $val = implode(',', $val);
$post_params[] = $key.'='.urlencode($val);
}
$post_string = implode('&', $post_params);
$parts=parse_url($url);
$fp = fsockopen($parts['host'],
isset($parts['port'])?$parts['port']:80,
$errno, $errstr, 30);
$out = "POST ".$parts['path']." HTTP/1.1\r\n";
$out.= "Host: ".$parts['host']."\r\n";
$out.= "Content-Type: application/x-www-form-urlencoded\r\n";
$out.= "Content-Length: ".strlen($post_string)."\r\n";
$out.= "Connection: Close\r\n\r\n";
if (isset($post_string)) $out.= $post_string;
fwrite($fp, $out);
fclose($fp);
}
}