我有一个像这样的PHP表单。
<form name="form1" id="mainForm" method="post"enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF'];?>">
</form
在表单操作中,我想使用带有参数的页面名称。比如house.php?p_id=10111
。但$ _SERVER ['PHP_SELF']仅提供house.php
(我的页面完整网址为house.php?p_id=10111
,如下所示)请帮我解决此问题。感谢。
答案 0 :(得分:77)
如何将它留空,这有什么问题?
<form name="form1" id="mainForm" method="post" enctype="multipart/form-data" action="">
</form>
此外,您可以省略action属性,它将按预期工作。
答案 1 :(得分:15)
您可以将操作留空或使用此代码:
<form name="form1" id="mainForm" method="post" enctype="multipart/form-data" action="<?php echo $_SERVER['REQUEST_URI'];?>">
</form>
答案 2 :(得分:8)
将操作值保留为空白将导致表单回发给自己。
答案 3 :(得分:4)
您也可以使用回音快捷方式,而不是输入“echo blah;”如下图所示:
<form method="POST" action="<?=($_SERVER['PHP_SELF'])?>">
答案 4 :(得分:2)
这是完美的。试试这个:)
<form name="test" method="post" enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>">
/* Html Input Fields */
</form>
答案 5 :(得分:2)
如果您不想依赖__FILE__
变量,则另一种(在我认为合适的)方法中使用$_SERVER
常量。
$parts = explode(DIRECTORY_SEPARATOR, __FILE__);
$fileName = end($parts);
echo $fileName;
答案 6 :(得分:1)
最简单的方法是将 action 留空 action=""
或从表单标签中完全省略它,但这是不好的做法(如果您真的关心它)。
如果你真的关心它,你能做的最好的事情就是:
<form name="form1" id="mainForm" method="post" enctype="multipart/form-data" action="<?php echo($_SERVER['PHP_SELF'] . http_build_query($_GET));?>">
使用它最好的一点是,即使是数组也会被转换,因此无需对任何类型的数据做任何其他事情。
答案 7 :(得分:0)
如果您想确保安全,请使用以下命令:<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">