使用phpqrcode不能正确的生成二维码问题
黄舟
黄舟 2017-04-10 18:07:09
0
2
514

接收客户端发来的数据,将此数据作为参数加到URL中,然后生成此URL的二维码。可以生成二维码,但是生成的二维码的URL却没有带上我要的参数。

代码如下

$param_str = urldecode($_POST['data']); $param_str = base64_encode($param_str); $url = "http://www.example/order_add.php?data=".$param_str; //url1是将参数直接写入URl中 //$url1 = "http://www.example/order_add.php?data=eyJ1aWQiOiIxMzU5MDE3NjY0N19oaiIsICJtb2JpbGVwaG9uZSI6IjEzNTkwMTc2NDY0IiwgImFyZWEiOiLljJfkuqzluILkuJzln47ljLrkuJzljY7pl6jooZfpgZMiLCAic2hvcExpc3QiOlt7InNob3BQcm9kdWN0ViI6MiwgImFkZGl0aW9uV29yZCI6IiIsICJwb3N0VHlwZSI6MSwgInByaWNlVG90YWwiOjAuMTIsICJwcm9kdWN0TGlzdCI6W3sicHJvZHVjdFZvbHVtZSI6MSwgImNvbWJvSWQiOjAsICJwcm9kdWN0SWQiOjM1fSwgeyJwcm9kdWN0Vm9sdW1lIjoxLCAiY29tYm9JZCI6MCwgInByb2R1Y3RJZCI6NzF9XSwgInNob3BJZCI6MjIsICJwb3N0UHJpY2UiOjAuMH1dLCAiYWRkcmVzcyI6IjY2NjY2NjY2NjY2NjYiLCAiZm9ybUNhcnQiOjEsICJ0ZWxlcGhvbmUiOiJudWxsIiwgImNvbm5lY3ROYW1lIjoiMzMzMzMzMzMzMzMzMzMzMzMzMzMifQ=="; //这个生成二维码链接中data参数为空 echo QRcode::png($url); //这样却可以生成正确的二维码 //echo QRcode::png($url1); //$url与$url1恒等比较过为1,两者编码相同都为ASCII

大致估计是参数传过来时有问题,但是不知道如何排查。

另外这样也可以生成正确的二维码

//手动赋值$param_str $param_str = "eyJ1aWQiOiIxMzU5MDE3NjY0N19oaiIsICJtb2JpbGVwaG9uZSI6IjEzNTkwMTc2NDY0IiwgImFyZWEiOiLljJfkuqzluILkuJzln47ljLrkuJzljY7pl6jooZfpgZMiLCAic2hvcExpc3QiOlt7InNob3BQcm9kdWN0ViI6MiwgImFkZGl0aW9uV29yZCI6IiIsICJwb3N0VHlwZSI6MSwgInByaWNlVG90YWwiOjAuMTIsICJwcm9kdWN0TGlzdCI6W3sicHJvZHVjdFZvbHVtZSI6MSwgImNvbWJvSWQiOjAsICJwcm9kdWN0SWQiOjM1fSwgeyJwcm9kdWN0Vm9sdW1lIjoxLCAiY29tYm9JZCI6MCwgInByb2R1Y3RJZCI6NzF9XSwgInNob3BJZCI6MjIsICJwb3N0UHJpY2UiOjAuMH1dLCAiYWRkcmVzcyI6IjY2NjY2NjY2NjY2NjYiLCAiZm9ybUNhcnQiOjEsICJ0ZWxlcGhvbmUiOiJudWxsIiwgImNvbm5lY3ROYW1lIjoiMzMzMzMzMzMzMzMzMzMzMzMzMzMifQ=="; $url = "http://www.example/order_add.php?data=".$param_str; echo QRcode::png($url); //增加路径 //增加路径的话会生成实体的图片文件,如果有多人同时访问,前者就会被覆盖。所以不适合实际用 QRcode::png($url,"order_qr.png");*/
黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回覆 (2)
巴扎黑

自己解答,只找到了错误的地方,没找到为什么。
这个问题是客户端用JQuery的$.ajax传过来的参数,导致phpqrcode不能获取(服务器端是确实获取到了数据的,phpqrcode在编码的前一步,url都是正确的),客户端如果换成用form表单提交的形式就可以。

    洪涛

    jquery的ajax操作不需要urldecode呀,其实一般用到的是urlencode,浏览器会自动decode的。
    你试试看是不是这个原因导致的拿不到参数。

      最新下載
      更多>
      網站特效
      網站源碼
      網站素材
      前端模板
      關於我們 免責聲明 Sitemap
      PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!