0

假设我有以下形式:

<form method="post" action="" autocomplete="off"><input name="checking2" type="submit" value="Name" class="ssd"></form>

当用户提交表单时,会发生此 PHP 代码:

if(isset($_POST['checking2'])){
$xmla = new SimpleXMLElement('passwords/' . views . '.xml', 0, true);
$plus = $xmla->goodx;
$result = $plus + 1;
$xmla->goodx = $result;
$xmla->asXML('passwords/' . views . '.xml');
header( 'Location: http://google.com' ) ;
}

以及下面的 CSS 来设计表单: 代码:

.ssd {
border: none;
background-color: transparent;
padding: 0;
cursor: pointer;
font-size:89%;
display:inline;
text-decoration: underline; 
color: #00c;  
}

现在,每次用户点击表单时,他都会被重定向到谷歌。每次有人提交表单时,PHP 代码都应该为 xml 文件的值添加 +1(它有效)。我的问题是,每当有人将鼠标放在表单的值上时,他看到的 URL 是他当前所在页面的 URL 地址,而不是他将实际重定向到的 URL - Google。我试图伪造 URL 地址,所以他不会看到当前页面的 URL 地址(即 action=""),而是会看到 google 的 URL 地址。不,不建议只将 google 的 URL 地址放在“action=”中,因为每当我这样做时,由于某种原因,PHP 数据不会正确更新。任何帮助将不胜感激。

4

1 回答 1

0

万一我说对了,您想更改表单操作属性,不是吗?

如果是这样,请使用这个小 javascript 代码:

 <script>
function fake_action(){
    document.forms["myform"].action="http://example.com";
    document.forms["myform"].submit();
}
</script>
<form id="myform" action="http://google.com">
    <input type="text" placeholder="placehold.it"/>
    <input type="button" value="send" onclick="fake_action();"/>
</form>

只是一个快速的解释:我用标准按钮替换了提交按钮并指定了 fake_action(); 用作它的 onclick 事件处理程序。fake_action 函数只是改变表单的动作并在之后提交。所以你可以毫无问题地做你的事情。

(您应该在页面加载时检查 GET / POST 参数,并在您在第一个页面收到它们后最终将它们发送到第二个页面;))

于 2013-01-22T04:00:55.143 回答