人
我想知道如何提交没有显示操作属性的表单。 喜欢这个
<form action="someact.php" method="post">
...
</form>
有人建议使用$_PHP['SELF']
,但是我希望使用另一个php文件处理我的表单,例如分离UI部分和处理部分,以便任何人都看不到我的处理文件?
我想要这样
<form method="post">
...
</form>
但它处理到我想要的文件。
请帮忙吗?
答案 0 :(得分:3)
为什么你需要一个“隐藏”的过程文件?这是不可能的:浏览器必须知道应该发送请求的位置。
如果您首先解释了您遇到的问题,而不是解决问题所引起的问题,那么其他人也许可以帮助您。
答案 1 :(得分:3)
首先,我不太明白你为什么要这样做。 action
属性的重点是告诉浏览器将请求发送到哪里,并且“隐藏”它什么都没有 - 任何中途能干的黑客(甚至不到一半)仍然可以找到信息无论你做什么,你都在躲藏。
话虽如此,你可以这样做:
<form id="hidden_action_form" method="post">
<!-- ... -->
</form>
<script type="text/javascript">
document.getElementById('hidden_action_form').action = 'someact.php';
</script>
答案 2 :(得分:0)
如果没有javascript,你将无法隐藏它。即使是javascript也不会隐藏它,但是当用户被定向到表单操作中定义的(公共)文件时,它可以将数据发布到另一个文件。
您可以使用ajax post()
调用将数据POST到另一个文件。请参阅提供的链接以使用jQuery执行此操作,并确保ajax首先发送帖子,然后重定向/加载用户内容。
请注意,如果客户端禁用了javascript,则整个POST将不执行。此外,如果有人查看你的js,你也可以看到隐藏的文件名,除非你用密码保护js文件。
答案 3 :(得分:0)
你做不到。表单必须始终具有action属性。 没有人可以看到将要处理表单数据的文件的内容(如果这是你的问题)。
答案 4 :(得分:0)
我觉得你混淆了两件事。 PHP文件仅在您的服务器上,不会发送到浏览器。服务器(通常是apache httpd)处理文件并从中生成HTML代码。然后将此代码发送到浏览器。
当你有一个表格时,你必须有一个相关的动作,因为CodeCaster指出:浏览器需要知道在哪里发送数据。它就像是超链接而没有设置href-Attribute。什么都不会发生,因为浏览器现在不做什么。