我将php array
编码为json
格式,其中包含来自表格的数据。
我的json_encode
生成的结果包含该表的实际列名。我想在column
一侧使用真实的php
名称,在编码为json
格式之后,我希望使用其他一些自定义名称,如果某个用户签入.js
文件,那对我来说就不会有任何问题。下面的代码是json_encode
的结果。
现在是什么: -
{"result":[{"pals_id":"20","from_user":"hancy061","to_user":"hari061","username":"hancy061"}
我想要的: -
{"result":[{"pid":"20","fu":"hancy061","tu":"hari061","un":"hancy061"}
Ya,没有任何需要显示用户列名称,它似乎也不安全。你们可以看到我想要的json_encode格式,我希望它是什么。是否可以从php
方面?我的意思是在将php
编码为array
格式之前json
方面,我们可以首先制作这些列的自定义名称吗?
答案 0 :(得分:3)
您无法在客户端安全地替换这些列,因为它会以某种方式提供给用户。如果您希望用户永远不知道列的实际命名方式,则应在服务器端执行此操作 最常见的方法是使用SQL别名。
在PHP中将SQL查询更改为以下内容:
SELECT pals_id AS pid, from_user AS fu, to_user AS tu, username AS un FROM YourTable ...
然而,这是一个security through obscurity,并没有提供任何安全性
如果您有SQL注入漏洞,那么黑客将能够从系统表或SELECT *
查询您的数据结构。
答案 1 :(得分:1)
您也可以在编码之前以所需的格式手动设置数组键,例如:
foreach ($result as $ind => $r) {
$result[$ind] = [ // For PHP Versions < 5.4 use 'array('
"pid" => $r['pals_id'],
"fu" => $r['from_user'],
"tu" => $r['to_user'],
"un" => $r['username'],
]; // For PHP Version < 5.4 use ');'
}
但是,如果要将数据从客户端发送回服务器以进行更新,则必须撤消此操作。
如果需要,则可以设置地图以在两者之间切换。