我需要获得一个随机的用户名并转到view.php?name=USERNAME
我错了吗?
<form action="view.php?name=<?php $getname; ?>" method="get">
<input class="button" type="submit" name="submit" value="RANDOM SKIN" />
</form>
<?php
include('config.php');
if ($_POST['submit']) {
$sql1 = mysql_query("SELECT * FROM `skins` ORDER BY rand() limit 1") or die(mysql_error());
while ($row2 = mysql_fetch_assoc($sql1)) {
$getname = $row2['username'];
echo $getname;
}
}
?>
答案 0 :(得分:0)
表单的方法设置为GET,但您正在检查$_POST
。在表单中使用method="post"
或在PHP代码中使用$_GET
。
答案 1 :(得分:0)
除了$_GET
和$_POST
之间的交替问题之外,如果您想保留GET请求中的键值对,这不是一个大问题。您有多种选择:
<强>推荐强>
结帐parse_url()
。这可以从PHP 4开始提供。文档中有很多例子:
$url = 'http://username:password@hostname/path?arg=value#anchor';
print_r(parse_url($url));
echo parse_url($url, PHP_URL_PATH);
<强>替代强>
在var_dump()
个变量上试用$_SERVER
。您应该能够看到QUERY_STRING
属性,您可以使用$_SERVER['QUERY_STRING']
访问该属性。在这里,您可以使用手动拆分键/值。猜猜看,这也有功能!
结帐:parse_str()
。你给它一个查询字符串,就像来自GET的查询字符串,它将为你整理所有的键值。查看文档,它给出了以下示例:
$str = "first=value&arr[]=foo+bar&arr[]=baz";
parse_str($str);
echo $first; // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz
非常简单!尝试这两个功能 - 它们可以解决您的确切问题。为了让你的上述工作,我会先尝试:
var_dump(parse_str($_SERVER['QUERY_STRING']));
最后,我将成为讨论MySQL弃用问题的人。这是我复制/粘贴给新手的内容:
Please, don't use mysql_*
functions in new code。它们不再受到维护,officially deprecated,可以是dangerous in live code。请参阅red box?转而了解prepared statements,并使用PDO或MySQLi - this article将帮助您确定哪个。如果您选择PDO here is a good tutorial。