我的网页网址类似于http://localhost/coursera/instructor/course.php?id=1&name=web%20development§ion=overview
在该页面上我有一个像
这样的表格<form action="<?php echo $_SERVER["PHP_SELF"];?>" method="post">
<div class="form-group">
<textarea class="form-control" placeholder="What will students need to know or do before starting this course? Who is your target student? At the end of my course, students will be able to..." rows="8" required="" name="description"></textarea>
</div>
<button type="submit" class="btn btn-info btn-fill btn-block" name="overview">Save</button>
</form>
但问题是<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>
并且<?php echo $_SERVER["PHP_SELF"];?>
没有返回包含所有$ _Get值的相同网址。
无论如何要使表单返回到同一页面,因为我无法对$ _Get值进行硬编码。
感谢。
编辑:
print_r($_SERVER["PHP_SELF"]);
正在显示/coursera/instructor/course.php
但是我想以http://localhost/coursera/instructor/course.php?id=1&name=web%20development§ion=overview
的方式做任何事情吗?
答案 0 :(得分:4)
更新1:
我希望当我提交表单时,我应该返回相同的URL但是它 不是
您可以简单地将action属性保留为空,以防表单返回同一页面。
<form method="post" action="">
更新2:
虽然它正在运行,但根据W3C文档,它不是有效值。
动作和格式内容属性(如果已指定)必须具有 一个值,它是可能被其包围的有效非空URL 空格。
请注意,PHP_SELF不会返回查询字符串(?x = y&amp; z = d)。只需要dir和文件名。
<强> PHP_SELF 强>
当前正在执行的脚本的文件名,相对于 文件根。例如,$ _SERVER [&#39; PHP_SELF&#39;]在脚本中 地址http://example.com/foo/bar.php将是/foo/bar.php。该 FILE 常量包含当前(即包含)文件的完整路径和文件名。如果PHP作为命令行处理器运行 此变量包含自PHP 4.3.0以来的脚本名称。以前呢 没有。