我是PHP新手。在学习PHP语言的过程中,我注意到,有些网站会使用这样的URL:
Www.website.com/profile.php?user=roa3 3&.
我的问题:
发布于 2009-02-22 07:10:47
好问题,简单地说,
发布于 2009-02-22 08:28:22
到目前为止,我看到的大多数答案都是用PHP来回答的,而实际上这并不是特定于语言的。到目前为止,给出的答案都是从PHP的角度出发的,您将使用不同的语言来访问这些信息,但是数据在URL中的格式(称为查询字符串)将保持不变(Ex: page.ext?key1=value&key2=value&.)。
我不知道你的技术背景或知识,所以请原谅我.
网页有两种不同的方法来向web服务器提供数据。这些方法被称为POST或GET方法。也有一些其他的,但这些都不应用于任何类型的网页设计时,处理一个正常的用户。POST方法以不可见的方式发送到服务器,用于“上载”数据,而GET方法作为URL中的查询字符串对用户是可见的,并且仅用于字面意思上的“获取”信息。
并不是所有的网站都遵循这条经验法则,但有理由说明原因。例如,站点可以使用POST来绕过代理服务器或浏览器的缓存,或者因为它们使用双字节语言,并且在试图执行get时会因为编码转换而引起问题。
关于这两种方法的一些资源以及何时使用它们..。
http://www.cs.tut.fi/~jkorpela/forms/methods.html http://weblogs.asp.net/mschwarz/archive/2006/12/04/post-vs-get.aspx 字符串
现在,从一个严格的PHP位置,现在有3个不同的数组,您可以使用它来获取网页发送回服务器的信息。你必须处理好..。
不要因为直接使用$_REQUEST方法而草率行事。除非您有我前面提到的$_REQUEST变量的情况,否则不要使用它。您希望尝试使用‘拒绝所有,并只允许x,y,z’的方法,当涉及到安全性。只需查找您知道您自己的站点将发送的数据,只需查找您所期望的组合,并在使用它之前清除所有信息。例如..。
到目前为止,这并不是PHP安全的最终目标,但我们并不是为了这个而来的。如果你想了解更多,那么这是另一个问题。
希望这会有所帮助,并随时提出任何问题。
发布于 2009-02-22 07:20:13
1)如果用户登录到您的站点,您将使用会话存储用户名,而不是将其传递到url (例如profile.php?username=roa3 )中。
2)在urls中使用?符号的通常被认为不利于Search Engine Optimization。另外,urls看起来有点难看。使用重写,您可以使用profile.php?user=roa3或products.php?id=123&category=toys对site.com/profile/roa3或products/toys/123执行相同的操作。
使用CodeIgniter框架将在默认情况下为您提供友好的urls,并消除URLs中对?的需求。有关示例,请参见此页。
3) ?符号也在php页面的代码中使用。例如,一个if else块,如:
if ($x==1)
$y=2;
else
$y=3;也可以写成:
$y=($x==1) ? 2 : 3;https://stackoverflow.com/questions/574493
复制相似问题