我想要一个像这样的URL
- www.google.com/
以及用户输入文本区域。
如果用户输入123,链接将为
- www.google.com/123
他们可以点击一个按钮来转到这个链接。
有人能告诉我这在没有javascript的情况下是否可行吗?你能告诉我如何最好地实施它吗?谢谢你抽出时间。
您可以通过将表单发布到PHP页面来实现这一点,PHP将使用header
将用户重定向到该URL。
<form method="post">
<input type="text" name="urlpart" />
<input type="submit" value="go" />
</form>
然后在你的页面顶部放上:
if($_SERVER['REQUEST_METHOD'] == 'POST'){
header('location: http://www.google.ca/'.$_POST['urlpart']);
exit();
}
请在如何实现这一点时格外小心,因为它很容易导致XSS注入。
如果您想要的链接在查询字符串中(例如:http://google.com/search?q=blah+blah+blah
),那么您可以使用一个以url为操作和方法GET
的表单。
您可以使用label
标记模拟链接,当然您只能更改?
符号后的url部分。带有谷歌链接的实时示例(在新窗口中打开,因此您仍然可以拥有fiddle页面):http://jsfiddle.net/xCbSD/
您可以创建一个表单,使用服务器端脚本(如下面使用的PHP)和get方法。下面是这样一个脚本的例子;
<form action="index.php" method="get">
<input type="text" name="input" />
<input type="submit" />
</form>
这个脚本应该创建一个带有文本框和提交按钮的表单。如果用户在文本框中输入123并单击提交,则生成的URL应如下所示;
www.yoursite.com/index.php?输入=123
一个类似于本视频中显示的简单mod_rewrite应该允许您将此URL重写为;
www.yoursite.com/123
注意:出于安全考虑,最好过滤或清除用户输入的任何输入,否则您的网站将容易受到黑客攻击,如SQL注入和跨站点脚本攻击。