Solution to the garbled post parameter passed by php: 1. Open the corresponding source code file; 2. Find "$_POST["pro_name"]"; 3. Change "header("Content-Type:text/ html;charset=utf8");" can be changed to "echo'';".
The operating environment of this tutorial: Windows 7 system, PHP version 8.1, Dell G3 computer.
What should I do if PHP passes garbled post parameters?
Problem description:
PHP $_POST submits Chinese garbled characters
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"]; } }
Why is the received $_POST["pro_name"] garbled? I have checked the source code of the page and the hidden field has not become garbled
Solution:
header("Content-Type:text/html;charset=utf8");
is changed to
echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">';
Recommended study: " PHP video tutorial》
The above is the detailed content of What to do if PHP passes garbled post parameters. For more information, please follow other related articles on the PHP Chinese website!