【问题标题】:Post php qr color code values not working with form发布 php qr 颜色代码值不适用于表单
【发布时间】:2021-03-08 15:22:00
【问题描述】:

我正在尝试使用phpqrcode 生成彩色二维码。

如果我直接将值赋予前景色和背景色,则效果很好。当我尝试发布它不起作用的值时。

我的代码:

$textname = $_POST["text"];
$filename = $_POST["filename"];
$level = $_POST["level"];
$size = $_POST["size"];
$margin = $_POST["margin"];
$backcolor = $_POST["backcolor"];
$forecolor = $_POST["forecolor"];
QRcode::png($textname , $filename, $level, $size, $margin, false,  $backcolor, $forecolor); 

效果很好:

 $backcolor = 0xFFFFFF;
 $forecolor = 0x00000;

无效:

$backcolor = $_POST["backcolor"];
$forecolor = $_POST["forecolor"];  

【问题讨论】:

  • 尝试使用检查器,看看 postvars 传递了什么。
  • @RobertSaylor 没关系。我认为这是因为字符串转换。但我不知道将该字符串转换为十六进制
  • 也许它正在被编码。你可以试试 urldecode。 php.net/manual/en/function.urldecode.php
  • @RobertSaylor 感谢您的解决方案,但还是一样。直接十六进制值工作得很好,只是传递了麻烦的值。表格也很好用。我测试了输入值没问题。
  • 我建议切换到一个新的(维护的)库,接受简单的十六进制代码作为字符串。由于该软件自 2016 年 11 月以来几乎没有维护......(替代方案:packagist.org/?query=qrcode)如果您必须使用它,您能否为您的手动值和 POST 值提供 var_dump 输出?

标签: php forms qr-code


【解决方案1】:

您需要将颜色代码转换为十六进制值。替换您的代码如下

$backcolor = hexdec(str_replace('#','0x',$_POST["backcolor"]);

$forecolor = hexdec(str_replace('#','0x',$_POST["forecolor"]);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-01
    • 2015-09-19
    • 1970-01-01
    • 1970-01-01
    • 2021-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多