Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这是什么&引用;URL中的符号在php中用于?_Php_Url - Fatal编程技术网

这是什么&引用;URL中的符号在php中用于?

这是什么&引用;URL中的符号在php中用于?,php,url,Php,Url,我是PHP新手。在学习PHP语言的过程中,我注意到,有些网站会使用这种URL: www.website.com/profile.php?user=roa3& 我的问题是: “?”符号用于什么 如果我要开发一个php网站,我必须在我的URL中使用它吗?例如,在用户(roa3)成功登录后,我将重定向到“www.website.com/profile.php?user=roa3”,而不是“www.website.com/profile.php” 使用它的优点和缺点是什么 从服务器的角度来看,是什么?这

我是PHP新手。在学习PHP语言的过程中,我注意到,有些网站会使用这种URL:

www.website.com/profile.php?user=roa3&

我的问题是:

  • “?”符号用于什么

  • 如果我要开发一个php网站,我必须在我的URL中使用它吗?例如,在用户(roa3)成功登录后,我将重定向到“www.website.com/profile.php?user=roa3”,而不是“www.website.com/profile.php”

  • 使用它的优点和缺点是什么


  • 从服务器的角度来看,是什么?这只是另一个角色。PHP为URL的一部分提供了简单的方法?字符,例如对于“/profile.php?user=roa3”,php将设置$\u GET['user']='roa3'


    原因是什么?URL中的有用之处在于浏览器可以使用表单构建动态URL——在上面的例子中,我希望URL是由一个HTTP表单构建的,该表单带有一个字段“user”,人类用户在其中键入了“roa3”。

    简单地说,好问题

  • “?”代表查询的开始 字符串,其中包含要删除的数据 传递给服务器。在这种情况下 您正在将user=roa3传递给 php页面。你可以得到 在中使用$\u GET['user']获取数据 profile.php。querystring是从客户端代理向服务器发送数据的方法之一。另一个将数据放在HTTP正文中并发送到服务器,您不会看到HTTP POST 直接从浏览器获取数据

  • 查询字符串可由用户编辑 而且它对公众是可见的。如果 www.website.com/profile.php?user=roa3 是要公开的,那就公开了 很好,否则您可能需要使用 会话以获取当前用户的 上下文

  • 这是一种向用户传递数据的灵活方式 服务器,但它是可见的并且 对于某些用户,可对其进行编辑 敏感数据,至少产生 附加之前的某种哈希 将其发送到查询字符串,这将防止 用户可以编辑或理解它 它的意义。然而这 不会阻止一个正派的黑客 对你的工作做些错事 网站。不同的浏览器支持不同的URL最大长度,长URL由这些查询字符串参数组成。如果要发送大量数据,请将数据放在HTTP正文中并发送到服务器

  • “?”用于分隔URL和参数。例如,它就像。在这种情况下,a=b类似于request\u参数=request\u值

  • 是的,不建议使用很多参数,因为url的总大小是有限的,就像GET请求一样,所有参数都显示在url上,用户可以修改它。在您的示例中,假设用户将url修改为“user=techmaddy”

  • 优点是它可以用于GET类请求,缺点是安全性低,大小有限

  • 1)如果用户登录到您的站点,您将使用存储在那里的用户名,而不是在url中传递它,例如
    profile.php?username=roa3

    2)在URL中使用
    符号通常被认为不利于
    搜索引擎优化
    。此外,URL看起来有点难看。使用URL可以做与
    profile.php?user=roa3
    products.php?id=123&category=toys
    相同的事情:
    site.com/profile/roa3
    products/玩具/123

    默认情况下,使用该框架将为您提供友好的URL,并消除URL中对
    的需要。有关示例,请参阅

    3)php页面的代码中也使用了
    符号。例如,
    if-else
    块,例如:

    if ($x==1)
       $y=2;
    else
       $y=3;
    
    也可以写成:

    $y=($x==1) ? 2 : 3;
    
    “?”表示要遵循一些GET变量。您的示例使用了一个名为“user”的变量,并分配了一个名为“roa3”的变量

    使用GET变量的优点:

    • 它们可以作为URL的一部分添加书签
    缺点

    • 它们是公开的。任何人都可以截取和查看此信息。这些url请求甚至会在旅途中被服务器缓存。因此,任何人都可以通过手动键入该信息来模拟您的roa3用户…他们还可以将roa3更改为其他用户并模拟他们
    您还可以使用“&”符号分隔许多变量,例如:
    www.website.com/profile.php?user=roa3&fav_color=blue

    其他选择:

    • 后置变量

      • 您可以通过POST变量发送变量。这些变量在请求的标头中传递,而不是在请求的url中传递。这些变量不是立即可见的,并且不会在旅途中被服务器缓存,但仍然可以读取。除非您建立了HTTPS连接
      • 表单中的变量可以通过POST或GET方法发送。您可以在表单的“方法”中指定它。
    • 会话变量

      • 会话变量存储在服务器上。会话id会传递给用户,每次用户发出另一个请求时,此会话id会传递回服务器。然后,此会话id可用于获取存储的会话变量。因此,您可以存储用户最喜欢的颜色、名称和ip地址等。但您可以将其存储在服务器上,而不是用户的家用电脑上。
        会话ID可以被模拟,所以最好检查用户的IP,或者将它们包装在一个安全连接中。例如https
      • 拦截请求的人无法更改会话变量
    • COOKIE变量:
      与会话变量类似,只是它们存储在用户的PC上,而不是服务器上。它们存储在一个域上,当它们进入该域时,它们会将请求头中的变量重新提交给服务器。这意味着用户可以更改和破解变量,或者其他人可以