URL和phpmyadmin自动增量

flvlnr44  于 2023-11-16  发布在  PHP
关注(0)|答案(2)|浏览(112)

我正在寻找最好的方法来解决这个问题,我有,我一直在寻找一种方法来尝试和解决它。
我有一个名为products的数据库表,在这个表中,我有我所有的产品,如鞋,衣服,帽子等
我有一个单一的网页,我用来回显到其基于产品ID的一切,我使用的代码看起来像这样

<a href="product.php?ID=<?php echo $row['ID']; ?>">View</a>

字符串
URL看起来像这样

http://www.example.x10.mx/product.php?ID=1


问题是,有人可以只改变ID到2或3或4.这不应该发生.我不知道这个问题是,它不是使用付费域名或它只是在x10托管.

问题

我想提供从改变ID在网址中的使用,以任何随机数,他们想要的,可以有人请告诉我如何做到这一点。

Another Question这是phpMyadmin生成随机字母和数字的一种方法吗?因为这是我唯一能想到的解决问题的方法。

谢谢

oknwwptz

oknwwptz1#

我在做我们的商务系统时遇到过类似的问题,我们处理它的方式是提供用户查询中的值的散列。
如果你用salt加密查询字符串,并使你的urls /product.php?id=1&hash= ajk 23 j 4aksdljfklasdjf 2345 j-然后在product.php上验证哈希值是否正确匹配。如果哈希值不匹配,则意味着用户改变了一些东西。

2vuwiymt

2vuwiymt2#

这不是一个真正的答案,但我觉得被迫张贴在这里,因为我觉得是一个穷人的应用程序设计的情况。
从评论线程的主要问题:
很抱歉让你困惑,但他们是没有什么真正的困惑。例如,帽子,鞋使用product.php页面和手套,衬衫使用itemview.php页面两个页面使用产品ID(ID)当你点击视图。希望这是有意义的
这仍然没有意义。你提到的所有这些东西实际上都是产品。只是不同类型的产品。在任何理智的设计中,它们都将使用相同的URL格式。基于产品类型的逻辑属于你用作控制器的任何东西-在你的情况下,我假设URL中的.php页面。你只需要其中一个。从那里你可以做不同的事情。
最基本的例子:

// This is product.php

if(!isset($_GET['id'])) {
  // 404 or some other error
}

$product = get_item_by_id($_GET['id']);

if(!$product) {
   // 404 or other error
}

switch($product['type']) {
    case 'cap':
    case 'shoes':
       // for cap and shoes use the product_view template
       include 'product_view.php';
       break;

    case 'gloves':
    case 'shirts':
        // for gloves and shirts use the item_view template
       include 'item_view.php';
       break;

    default:
       // otherwise use the default product view template
       include 'default_view.php';
   
}

// anything else you need to do that isn't done in the view specific file

字符串
假设这些都是特定的产品,但你的例子听起来更像是类别,通常你会有一个单独的类别页面,它做的事情和产品几乎一样,但以某种视觉方式输出产品实体的“集合”。

相关问题