代码如下
$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的。
你试试看是不是这个原因导致的拿不到参数。
