【问题标题】:how to base32 encode url如何base32编码网址
【发布时间】:2013-07-30 18:12:58
【问题描述】:

首先,对不起标题。

请有人帮我解决这个问题。我在下面有以下声明,我想让我的pid 成为随机数字和字母,所以我使用了function id_encode($id)

http://www.testing/details.php?Sef=canda&ppid=1

我不想显示 ppid,这样用户就无法猜测我的数据库中有多少产品。这就是我使用该功能的原因。

          $stmt = $conn->prepare(" 
          SELECT * FROM Product
          ");
          $stmt->execute();
            $i = 0;
            $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); 
        foreach ($rows as $row) {
           $id = $row["ppid"]; //id

    function id_encode($id) {
        return base_convert((9999999999 - (float) $id) , 10 , 32 );
        }
    $qstr = http_build_query(array("Sef"=>$row["Sef"], "ProdID"=>$id));

我有一个链接到另一个页面的查看按钮

<a href="<?php fetchdir($apages) ?>product.php?<?= $qstr ?>">View item</a>

在我的其他页面中

<?php   
 if (isset($_GET['Sef']) && isset($_GET['ppid'])) {
    $id = $_GET["ppid"];
    $id2 = $_GET['Sef'];

错误 我收到Fatal error: Cannot redeclare id_encode() (previously declared in

我这样做的方式也是其他页面能够获取此信息吗?因为如果我记得function 其他页面确实会收到该产品的信息。

请帮忙。

【问题讨论】:

    标签: php function base32


    【解决方案1】:

    您需要一个函数 id_decode( $encoded_id ) 来反转您对编码函数中的数字所做的任何操作。

    因此,如果在编码中您执行 (N - id) 然后 base10 到 base32,在解码中您将执行 base32 到 base10 然后 (N - id),因为 (N - (N - id)) = id。

    【讨论】:

    • 您能否使用我上面提供的代码发布完整的解释,因为我发现很难理解您的意思。谢谢
    猜你喜欢
    • 2019-06-13
    • 2011-07-14
    • 2014-02-24
    • 1970-01-01
    • 2020-02-26
    • 2012-06-16
    • 2011-08-22
    • 2010-10-13
    • 1970-01-01
    相关资源
    最近更新 更多