接收用戶端發來的資料,將此資料作為參數加到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");*/
回複內容:
接收用戶端發來的資料,將此資料作為參數加到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");*/
自己解答,只找到了錯誤的地方,沒找到為什麼。
這個問題是用戶端用JQuery的$.ajax傳過來的參數,導致phpqrcode不能擷取(伺服器端是確實擷取到了資料的,phpqrcode在編碼的前一步,url都是正確的),用戶端如果換成用form表單提交的形式就可以。
jquery的ajax操作不需要urldecode呀,其實一般用到的是urlencode,瀏覽器會自動decode的。
你試試看是不是這個原因導致的拿不到參數。