1

我卡住了,我有一个网站,它索引玩家的个人资料,现在保持着历史记录。仅当您手动写出 url 时,一切都已实现并正常工作。
跟随表单创建的链接不起作用,因为它index.php?id=然后我想添加&date到这个但?date=需要&date=index.php?id=

普通用户输入的表单顶部 normalyresults 类似: index.php?id=123456789

返回用户配置文件没问题在该页面上,我有“加载历史数据”下拉列表,显示此配置文件的加载日期取决于 id 输入。

<form method='get' action='index.php?id=$data' >

跟随页面上的提交按钮返回:

index.php?id=123456789?date=112012

但是,我可以让它工作的唯一方法是手动改变它到 ID 和 DATE 之间的&对于我的生活,我无法弄清楚!

基本上我需要:
index.php?id=123456789 date=112012

index.php?id=123456789 & date=112012

因此,当页面重新加载时,我可以同时看到 ID 和 DATE,我想我可以通过帖子完成,但是我需要它在 url 中可见,理想情况下
我也尝试过:

<form method='get' action='$_SERVER['PHP_SELF']'>

<form method='get' action='id_$data'> (with a mod rewrite)
4

3 回答 3

0

您可以使用 str_replace() 替换所有 ? 进入 &

   $replacedstring = str_replace ( '?' , '&' , '$stringtobereplaced' )

str_replace()

但是最好在代码中查找并查看'?被添加到字符串并在那里替换它。

最好的问候,卡斯帕

于 2012-11-19T12:29:02.107 回答
0

得到

您不能使用 get 方法发送到已经包含 get 参数的 url,因为您会从不同的浏览器获得混合结果。您需要将它们添加到这样的隐藏字段中,然后在发送表单时将其添加到 URL:

<form method='get' action='index.php'>
<input type='hidden' name='id' value='<?php print $data; ?>' />
<input type='hidden' name='date' value='112012' />
<input type='submit' value='Submit' />
</form>

邮政

如果您需要将表单方法设置为发布,同时在 url 中包含 get 参数,则需要这样做:

<form method='get' action='index.php?id=<?php print $id; ?>&date=112012'>
<input type='text' name='message' value='this is in POST, the other params are in GET' />
<input type='submit' value='Submit' />
</form>

安全

不要这样做:

<form method='get' action='$_SERVER['PHP_SELF']'>

不可以的原因

于 2012-11-19T12:31:12.460 回答
0

我以前遇到过这个问题......这是我的解决方案。使用 & 符号构建一串参数。

$parameters = "&id=9&date=tomorrow&x=y";

然后我只是用问号替换了第一个&符号。

$correct_string = "?" . ltrim($parameters, '&');

于 2012-11-19T12:32:18.847 回答