【问题标题】:Fake HTML URL address when mouse is over a form鼠标悬停在表单上时的虚假 HTML URL 地址
【发布时间】:2024-01-03 06:44:01
【问题描述】:

假设我有以下表格:

<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 数据不会正确更新。任何帮助将不胜感激。

【问题讨论】:

    标签: forms if-statement header href


    【解决方案1】:

    如果我没听错,您想更改表单操作属性,不是吗?

    如果是这样,请使用这个小 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 参数,并在您在第一个页面收到它们后最终将它们发送到第二个页面;))

    【讨论】:

    • 这不是我想要做的。我更新了我的帖子,使其更加清晰。
    • 还有其他人得到答案吗?
    • 给我一点,我昨天已经编码了 22 个小时,从那以后没有睡多少,目前正在为大学 atm 处理一些 SQL 的东西。我将在大约一两个小时内更新我的解决方案!编辑:我现在再次检查了您更新的描述,它实际上应该仍然适用于我的代码。如果您使用按钮而不是提交按钮,则可以在 JavaScript 中获取数据,对其进行处理,然后将用户重定向到 google。
    • 但是正如我已经说过的,“action=" 必须保持空白,否则表单的 PHP 将无法正确执行。编辑:不是在“onclick =”上激活 JAVASCRIPT 函数,我可以激活 PHP 函数吗?这样它就可以工作了。
    • 您不能直接调用php函数,因为Javascript是在客户端执行的,但您可以通过jquery(或一般的ajax)调用它并等待响应(并处理响应)跨度>
    最近更新 更多