php传递post参数乱码的解决办法:1、打开相应的源代码文件;2、找到“$_POST["pro_name"]”;3、将“header("Content-Type:text/html;charset=utf8");”修改成“echo'<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">';”即可。

本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。

php传递post参数乱码怎么办?

问题描述:

PHP $_POST提交中文乱码

html:
<form action="__APP__/ShoppingCart/add" method="POST">
<br/><b>{$pro_name}</b><br/><br/>
价格:¥{$pro_price}<br/><br/>
已售出:{$pro_sale}件
数量<input type="text" size="2" name="pro_num" value="1"/><input type="submit" value="加入购物车" />
<input type="hidden" name="pro_id" value="{$pro_id}" />
<input type="hidden" name="pro_name" value="{$pro_name}" />
<input type="hidden" name="pro_price" value="{$pro_price}" />
</form>
action:
public function add(){
$user = session("user_name");
if(session("user_name")){
header("Content-Type:text/html;charset=utf8");
request.setCharacterEncoding("UTF-8");
$common = D("Common");
$data["user_id"] = $user[0]["user_id"];
$data["user_name"] = $user[0]["user_name"];
$data["pro_id"] = $_POST["pro_id"];
$data["pro_name"] = $_POST["pro_name"];
$data["pro_price"] = $_POST["pro_price"];
$data["pro_num"] = $_POST["pro_num"];
$data["pro_total"] = $_POST["pro_num"]*$_POST["pro_price"];
dump($data);
echo $data["pro_name"];
}
}

为什么接收的$_POST["pro_name"]是乱码?页面我查看过源代码 那个隐藏域没有变乱码

解决办法:

header("Content-Type:text/html;charset=utf8");

修改为

echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">';


php传递post参数乱码怎么办