HTML表单转PDF时含计算逻辑报错求助(附代码)
问题解决:PDF生成中实现年龄半值计算
你当前的代码只是将提交的年龄和/2拼接成字符串输出,并没有执行除法计算,所以PDF里会显示类似30/2的文本,而非实际计算结果。以下是修正方案:
核心修改点
- 提前对输入的年龄做合法性校验,确保为有效数字
- 完成年龄半值的计算后,再将结果插入PDF的HTML模板中
修正后的完整PHP代码
<?php namespace Dompdf; require_once 'dompdf/autoload.inc.php'; if(isset($_POST['submit_val'])) { // 初始化半年龄变量 $halfAge = ''; // 校验输入是否为有效数字 if(isset($_POST['age']) && is_numeric($_POST['age'])) { $age = (float)$_POST['age']; $halfAge = $age / 2; } else { $halfAge = '请输入有效数字'; } $dompdf = new Dompdf(); $dompdf->loadHtml(' <table border=1 align=center width=400> <tr><td>年龄 : </td><td>'.htmlspecialchars($_POST['age']).'</td></tr> <tr><td>年龄的一半 : </td><td>'.$halfAge.'</td></tr> </table> '); $dompdf->setPaper('A4', 'landscape'); $dompdf->render(); $dompdf->stream("",array("Attachment" => false)); exit(0); } ?>
额外优化说明
- 加入
htmlspecialchars()处理输入内容,避免XSS注入风险 - 增加输入校验逻辑,当用户输入非数字内容时,会显示错误提示,防止计算报错
- 用
(float)转换年龄为浮点数,支持小数年龄的计算(比如10.5岁的半值为5.25)
内容的提问来源于stack exchange,提问作者user2021672
相关产品推荐
相关产品推荐

