我可以在没有javascript的情况下创建一个根据用户输入更改结尾的链接吗


Can I make a link which changes ending based on user input without javascript?

我想要一个像这样的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注入和跨站点脚本攻击。