WordPress中PHP POST提交后页面顶部出现多余>符号求助
问题根源:多余的HTML起始符
我一眼就瞅到问题出在哪了——你代码里有个粗心的小笔误!
看这段输出表格单元格的代码:
echo "<<td><form name='form' method='POST'><input style='background:#6B8E23;' type='submit' name='".$row['Solution_ID']. "' value='This Solution Solved My Problem' /></form></td></tr>";
这里你多写了一个<,也就是<<td>,浏览器解析的时候会把第一个<当成HTML标签的开头,第二个<因为不属于任何合法标签,会被自动转义成>符号,这就是你看到的每个搜索结果页面顶部(或结果行内)出现的“>”的来源。
修复步骤
把那行代码里多余的<删掉,改成:
echo "<td><form name='form' method='POST'><input style='background:#6B8E23;' type='submit' name='".$row['Solution_ID']. "' value='This Solution Solved My Problem' /></form></td></tr>";
刷新页面再测试,那个多余的“>”就会消失了。
额外的安全&优化建议
除了这个笔误,还有几个点可以优化,避免后续踩坑:
- SQL注入风险:你直接把
$_POST['Search']拼进SQL语句里,这是非常危险的,很容易被攻击者利用。建议使用mysqli的预处理语句绑定参数,或者在WordPress里直接用官方的$wpdb类操作数据库,更安全也更符合WordPress规范。 - WordPress数据库连接:WordPress已经自带了数据库连接,不需要自己再用
new mysqli()创建连接,这样可能导致连接冲突或资源浪费,直接用global $wpdb;调用内置连接即可。 - HTML输出可读性:直接在echo里拼接HTML代码很容易出错,建议用PHP的heredoc语法输出大块HTML,或者用WordPress模板标签渲染内容,代码会更清晰,也不容易犯这类字符错误。
内容的提问来源于stack exchange,提问作者Lmason
相关产品推荐
相关产品推荐

