PHP Get snd Post都已设置

时间:2018-08-18 19:20:10

标签: php html

从javascript中加载的页面。经过GET&POST测试。仅按预期设置GET;

window.location.href = "medications_edit_revised.html?recordId="+id ;

从GET []检索和使用数据

已从SUBMIT重新加载页面,如下所示。

    <form method="post" action="">
<table id="detailsDivTable">
    <?php
$editClass->selectTheRecord();
    ?>
</table>
<fieldset name="Group1">
<legend>Group box</legend>
    <input name="saveButton" type="submit" value="Save" />
    <input name="deleteButton" type="submit" value="Delete" />
    <input name="cancelButton" type="submit" value="Cancel" />          
</fieldset>
</form>`

经过测试的GET []和SET []

    if  (isset($_GET['recordId']) ) {
    $recordId = $_GET['recordId'];
    require_once "medications_edit_revised.class.php";
    $editClass = new editRevisedClass($DBH, $recordId);
    }

    if(isset($_POST['saveButton'])) {

两者均测试为TRUE。这是正常现象吗?我希望GET []在发布表单时会被清除

如果是,则可以在发送SUBMIT之前清除GET

谢谢

3 个答案:

答案 0 :(得分:0)

您似乎在混淆POST / GET请求以及PHP $_POST$_GET超全局变量。

PHP将使用发出请求的URL的查询字符串中的数据填充$_GET

如果在POST请求的请求正文中使用受支持的编码对PHP进行编码,则PHP将使用该数据填充$_POST

请求是由JavaScript,表单提交还是其他原因引起的。

  

是正常现象吗?

  

如果是,则可以在发送SUBMIT之前清除GET

将表单提交给没有查询字符串的URL。

提交表单的URL将由action属性指定。

如果您没有action属性,它将被提交到当前页面的URL。如果该URL具有查询字符串,那么提交表单的URL也会是查询字符串(因此将填充$_GET)。

如果要避免这种情况,请明确指定action

答案 1 :(得分:0)

当您这样设置URL时:

window.location.href = "medications_edit_revised.html?recordId="+id ;

您已经设置了URL参数。然后,当您执行此操作时:

  

从SUBMIT重新加载页面,如下所示。

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

由于action为空,因此将保留URL参数,因为这是空的,并且$_SERVER['PHP_SELF']会这样做-它们发送到当前URL,参数和所有参数。

您已经知道该URL,因此只需根据需要进行设置:

action="medications_edit_revised.html"

答案 2 :(得分:-2)

能否请您跳过一些代码?

如果您使用GET来查询您的变量,它将通过以下网址获取它:example.com?name=jesper&lastname=kaae

区别是:

  

GET请求表示指定资源。请注意,不应将GET用于引起副作用的操作,例如将其用于在Web应用程序中执行操作。原因之一是,GET可能会被机器人或爬虫任意使用,而这些机器人或爬虫无需考虑请求应引起的副作用。

  

POST将要处理的数据(例如,从HTML表单)提交到标识的资源。数据包含在请求的正文中。这可能会导致创建新资源或对现有资源进行更新,或者两者都进行。

You can read more about them here