表单提交时丢失我的$ _GET变量

时间:2012-08-20 18:56:05

标签: php html forms url get

我正在创建一个小应用程序,允许潜在的员工列出引用。列出的参考文献会收到一封包含URL的电子邮件,其末尾包含唯一字符串。

(例如:www.the-address.com?url=503241c65b8fe4_07914393)。然后,引用遵循此唯一URL来代表员工上传一封信。

但每次提交任何表单时,URL的随机字符串部分都会消失

(示例:www.the-address.com?url=)。

我不明白为什么会发生这种情况,因为我提交了这样的表格:

<form action="upload_letter.php?url="' . $url . '" id="form_id" method="POST">;

$url = $_GET['url']

这会发生任何一般原因吗?如果需要,我可以提供更多代码。

6 个答案:

答案 0 :(得分:2)

<?php
$data = array('url' => $url);

?>
<form action="upload_letter.php?<?php echo http_build_query($data) ?>" id="form_id" method="POST">

或者您只需将网址添加为隐藏的<input>

即可
<form action="upload_letter.php" id="form_id" method="POST">
    <input type="hidden" name="url" value="<?php echo htmlentities($url); ?>">
    .
    .
    .
</form>

然后,您可以通过$_POST['url']访问网址。

答案 1 :(得分:2)

如果您确实拥有自己编写的代码,那么您将使用第二个action字符提前关闭"属性。试试这个:

echo '<form action="upload_letter.php?url='.urlencode($url).'" id="form_id" method="POST">';

你拥有它的方式最终会像HTML一样:

<form action="upload_letter.php?url="google.de" id="form_id"...>

将google.de置于属性值之外。

答案 2 :(得分:0)

method="POST"更改为method="GET"

答案 3 :(得分:0)

如果你的代码是你在PHP文件上写的:那就错了。不“;”在HTML行的末尾,你不能用“。”连接字符串。在HTML中。您必须打开PHP标记并在其中编写PHP代码。例如:

<form action="upload_letter.php?url=<?php echo $url; ?>" id="form_id" method="POST">

但你也可以像Wolfgang一样使用echo回答

答案 4 :(得分:-1)

可能$ url为空或未定义。 检查HTML代码以查看它是否写入表单的操作。

答案 5 :(得分:-2)

为什么你把单引号括起来:

 . $url . 

编辑:另一种说法: 您确定自己使用的是<?php ?>代码吗?