0

我想知道它们是否是一种更改 url 的方法,因此它最终不会显示产品id。因为通过这种方式,某人可以更改 pid,如果该 pid 在数据库中,它可能会将他们定向到不同的页面。

<a href="<?php fetchdir($apages) ?>item.php?pid=<?php echo $row['pid']; ?>">View</a>

http://WWW.testexample.x10.mx/item/item.php?pid=2

4

1 回答 1

0

您可以执行以下任何操作:

1)在href点击上发布,然后从服务器端的$_POST访问pid

2)对pid值做base64或者自定义加密(可以加上1)

3)在业务方面处理手动更改pid,所以这对你来说不是问题,只要他们愿意就让他们去做。

我会选择选项 2),但这里是选项 1 的示例)

        <html><body id="body"><script> function postData(val) {
        var frm = document.createElement("form")
        frm.action="/data.php";
        frm.method="post";

        var input=document.createElement("input")
        input.name="pid";
        input.value = val; 
        input.type = "hidden";

        frm.appendChild(input);

        var body= document.getElementById("body");
        body.appendChild(frm);
        frm.submit();
    } </script><a href="javascript:void(0)" onclick="postData(<?php echo $pid; ?>)">View</a></body></html>

这是使用 base64 编码的选项 2 的示例:

<a href="<?php fetchdir($apages) ?>item.php?pid=<?php echo base64_encode($row['pid']); ?>">View</a>

然后在 item.php 中:

$pid=base64_decode($_GET['pid']);
于 2013-06-24T22:07:42.353 回答