如何向“?= website-name”等网址添加参数

时间:2016-11-04 00:23:37

标签: url hyperlink

就像问题所说,如何在URL中添加参数?

示例:

当您点击链接以获取产品搜寻中的精选产品时,该网址会附加?ref=producthunt

我可以手动将这样的参数添加到我网站上的几个链接中吗?是否存在可能不太理想的情况?

3 个答案:

答案 0 :(得分:0)

URL中的参数对应于超全局$ _GET数组。 这意味着如果您的网址在表单中 www.domain.com?key1=val1&key2=val2, 然后$ _GET [key1]包含val1,依此类推。

在链接中手动添加这些参数是完全合法的(典型的用例是登录按钮,它会将您重定向到当前URL并附加& todo = login。然后您可以添加一些PHP代码当$ _GET包含值'登录'在键'todo')时触发登录过程。

添加这些参数的另一种方式是表单。在HTML表单中,您可以指定一种方法'哪个可以得到'或者'发布'。 如果您选择“获取”,则在提交表单时,该网址会自动附加表单答案。

注意:直接读取$ _GET中的值通常是不安全的,因为用户可以用任何值填充它(只需更改URL),因此最好使用确保输入安全的过滤器。有关过滤器的更多信息,请查看http://www.w3schools.com/php/php_filter.asp

答案 1 :(得分:0)

添加到网址的参数称为查询字符串,格式为

  • 一定要开始吗?
  • 每个paper都将与&
  • 分开

示例:http://www.yoururl.com?name=myname&age=34&ect=somethingelse

你犯的错误是把你的网络服务器没有转换的?=。 你可以像'?websitename = website-name'

答案 2 :(得分:0)

查询字符串参数是与网址和路径分开的键值对,其中[L]?分开,即&。< / p>

可以通过Web服务器或服务器端语言(PHP,ASP.NET,Java)在客户端(在Javascript中)和服务器端访问这些值。

某些值应使用encodeURIComponent等函数进行编码,以确保它们有效。

<强>风险

您需要注意查询字符串不包含任何敏感信息,例如序列号,即?key=value&key2=value2,因为有人可以手动更改该值以查看其他用户的订单({{1如果没有其他身份验证的话)。订单值应加密,因此无法猜到。此外,不要使用eval()执行查询字符串中传递的任何代码,因为恶意用户可能会更改内容以对其他用户执行crosssite脚本(XSS)攻击并窃取其cookie或登录凭据。