Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.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
如何避免使用php使用(php?id=idNumber)_Php - Fatal编程技术网

如何避免使用php使用(php?id=idNumber)

如何避免使用php使用(php?id=idNumber),php,Php,我需要知道从数据库中检索数据的更好方法。例如,在我正在开发的页面中,当我单击CheckProduct按钮时,该特定产品的id被传递到产品页面,如。 显然,这是一种检索数据的糟糕方法。如何将此id值传递到产品页面而不使用?id=1 谢谢 显然,这是一种检索数据的糟糕方法 这是完全不真实的。在本例中,使用$\u POST而不是$\u GET会使特定产品的页面无法通过纯URL访问。如果我想将id为2321的产品链接分享给我在facebook上的朋友,该怎么办 看看这个网站,例如londonperful

我需要知道从数据库中检索数据的更好方法。例如,在我正在开发的页面中,当我单击CheckProduct按钮时,该特定产品的id被传递到产品页面,如。 显然,这是一种检索数据的糟糕方法。如何将此id值传递到产品页面而不使用?id=1

谢谢

显然,这是一种检索数据的糟糕方法

这是完全不真实的。在本例中,使用$\u POST而不是$\u GET会使特定产品的页面无法通过纯URL访问。如果我想将id为2321的产品链接分享给我在facebook上的朋友,该怎么办


看看这个网站,例如londonperfulmeshop.co.uk/diesel-zero-plus-men。我猜产品是从数据库中检索到的,但是没有通过域传递的id。这在php中是如何实现的用户2257461

这称为“URL重写”。基本上,它不是PHP特性。它是一种web服务器功能。URL重写背后的概念是将一个URL模式映射到另一个URL模式。例如我想要地图

  • products/(.*)->products.php?别名=$1
如果有人试图访问以下链接:

  • 产品/虚拟url重写
  • 产品/首件网络手机
它将映射到以下链接:

  • products.php?alias=为dummy重写url
  • products.php?alias=headfirstwebmobile
所以基本上,这仍然是一个美元。虽然使用alias使您的URL看起来更漂亮、更友好,但存在一个小问题。别名可以更改。假设您想重命名产品,那么别名也应该更改。它会导致旧链接无效。要解决此问题,可以将别名与id结合使用

  • products/([0-9]+)-(.*)->products.php?id=$1
如果有人试图访问以下链接:

  • 产品/1-url-rewrite-for-dummy
  • 产品/2-head-first-web-mobile
它将映射到以下链接:

  • products.php?id=1
  • products.php?id=2

使用别名ID,提高查询速度;产品的ID将始终保持不变(产品ID被更改是不寻常的)

而不是使用
$\u GET
如何
$\u POST
显然,这是一种检索数据的糟糕方式谁告诉你这些废话的?你可以用加密算法对url参数进行编码这会让url有点难看,但这并不比使用PATH_INFO和类似
/products.php/1
的URL更糟糕。你需要做一些URL重写来获得一个漂亮的URL,但这通常是不值得的。我猜产品是从数据库中检索到的,但是没有通过域传递的id。在php中是如何实现的?对于Apache,使用.htaccess。对于IIS,请使用URL重写。它不使用ID,而是使用别名。@user2257461如果URL被重写,请搜索
漂亮的URL
。有趣的是,他们正在使用
$\u GET
:关于URL重写的过时解释。