提交隐藏了操作属性的表单

Submit form with action attribute hidden

本文关键字:表单 属性 操作 隐藏 提交      更新时间:2023-09-26

人员

我想知道如何在不显示动作属性的情况下提交表单。像这个

<form action="someact.php" method="post">
...
</form>

有些人建议使用$_PHP['SELF'],但我希望使用另一个php文件来处理我的表单,比如分离UI部分和流程部分,这样任何人都看不到我的流程文件?

我想要这个

<form method="post">
...
</form>

但它处理到了我想要的文件。

请帮忙?

首先,我不太明白你为什么想要这个。action属性的全部目的是告诉浏览器将请求发送到哪里,而"隐藏"它不会起到任何作用——无论你做什么,任何半途而废的黑客(甚至不到半途而废(仍然可以找到你隐藏的信息

话虽如此,你可以这样做:

<form id="hidden_action_form" method="post">
  <!-- ... -->
</form>
<script type="text/javascript">
  document.getElementById('hidden_action_form').action = 'someact.php';
</script>

您究竟为什么需要一个"隐藏"的过程文件?这是不可能的:浏览器必须知道请求应该发送到哪里。

如果你一开始就解释你遇到的问题,而不是你独自面对这个问题时出现的问题,其他人可能会帮助你。

我觉得你把两件事搞混了。PHP文件仅在您的服务器上,不会发送到浏览器。服务器(通常是apachehttpd(处理文件并从中生成HTML代码。然后将这些代码发送到浏览器。

当你有一个表单时,你必须有一个相关的操作,因为正如CodeCaster所指出的:浏览器需要知道将数据发送到哪里。这就像一个没有设置href属性的超链接。任何事情都不可能发生,因为浏览器不知道该做什么。

你不能那样做。表单必须始终具有操作属性。没有人可以看到将要处理表单数据的文件的内容(如果这是您的问题(。

如果没有javascript,您将无法隐藏它。即使是javascript也不会隐藏它,但可以将数据发布到另一个文件,同时用户被引导到表单操作中定义的(公共(文件。

您可以使用ajax post()调用将数据POST到另一个文件。请参阅jQuery提供的链接,并确保ajax首先发送帖子,然后重定向/加载用户内容。

但是请注意,如果客户端禁用了javascript,那么整个POST将不会被执行。此外,如果有人查看了你的js,你也可以在那里看到隐藏的文件名,除非你对js文件进行密码保护。