2017-01-26 24 views
-1

我的页面的URL是一样的东西http://localhost/coursera/instructor/course.php?id=1&name=web%20development&section=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值返回相同的URL。

无论如何,使表单返回到同一页面,因为我不能硬编码$ _Get值。

谢谢。

编辑:

print_r($_SERVER["PHP_SELF"]); 

是显示/coursera/instructor/course.php 但我想http://localhost/coursera/instructor/course.php?id=1&name=web%20development&section=overview任何方式做到这一点?

+0

'的print_r($ _ SERVER)',看看你可以用什么 –

+0

@Federkun我想,当我提交表单我应该返回到相同的URL,但它不是 – Phoenix

回答

4

更新1:

我想,当我提交表单我应该返回到相同的URL,但它 不是

你可以简单地保持动作的属性空您希望表单返回到同一页面。

<form method="post" action=""> 

更新2:

虽然它的工作,根据W3C文档,它不是一个有效的值。

的动作和formaction内容属性,如果指定,必须有 的值是一个有效的非空URL由 空间可能包围。


请注意,PHP_SELF没有。只是在目录和文件名返回的查询字符串(?X = Y & Z = d)。

PHP_SELF

当前正在执行的脚本,相对于 文档根的文件名。例如, 地址http://example.com/foo/bar.php的脚本中的$ _SERVER ['PHP_SELF']将是/foo/bar.php。常量包含当前(即包含)文件的完整路径和文件名。如果PHP以命令行处理器 的形式运行,则此变量包含自PHP 4.3.0起的脚本名称。以前它 不可用。

+0

是很好的做法,让它空上提交? – Phoenix

+0

谢谢。加工。 – Phoenix