修改一个已经做好的系统,参数获取方式看不懂,请大神指教
页面提交到Action处理后
结尾部分参数代码是这样写的
echo '{"code":"0","giftPath":"' . $smallIcon . '","giftStyle":"' . $giftinfo['giftStyle'] . '","giftGroup":"' . $giftinfo['sid'] . '","giftType":"' . $giftinfo['giftType'] . '","toUserNo":"' . $emceeinfo['curroomnum'] . '","isGift":"0","giftLocation":"[]","giftIcon":"' . $giftinfo['giftIcon'] . '","giftSwf":"' . $giftinfo['giftSwf'] . '","toUserId":"' . $_REQUEST['toid'] . '","toUserName":"' . $emceeinfo['nickname'] . '","userNo":"' . $_SESSION['roomnum'] . '","giftCount":"' . $_REQUEST['count'] . '","userId":"' . $_SESSION['uid'] . '","giftName":"' . $giftinfo['giftname'] . '","userName":"' . $_SESSION['nickname'] . '","giftId":"' . $giftinfo['id'] . '"}';exit;
然后处理参数是在JS里完成的
var obj_box=data["ct"]; //这里不明白这个data["ct"]代表什么,查找整个项目也找不到相关代码obj_box=obj_box.replace(/\+/g,"%20");obj_box=evalJSON(decodeURIComponent(obj_box));var giftIcon=obj_box.giftIcon,giftNum=obj_box.giftCount,giftName=obj_box.giftName,giftimg='',isGift=obj_box.isGift || 0,ugood=obj_box["userNo"],uid=obj_box["userId"],uname=decodeURIComponent(obj_box["userName"]),cugood=this.chatgnum(obj_box["userNo"]),tougood=obj_box["toUserNo"],touid=obj_box["toUserId"],touname=decodeURIComponent(obj_box['toUserName']),tocugood=this.chatgnum(obj_box["toUserNo"]),gifttop=parseInt($('#gift_history li').size()) || 0;
上面这里也不明白,obj_box.giftIcon 和obj_box["userName"] 是一样的么?
最后,最大的问题来了,我在ACTION末端参数中加了一个参数,在ACTION里测试是有数值的,但是就是传不到JS里,不知道哪里出的问题
回复讨论(解决方案)
zjcoin这个就是自己加的参数
echo '{"code":"0","zjcoin":"' . $zjcoin . '","giftPath":"' . $smallIcon . '","giftStyle":"' . $giftinfo['giftStyle'] . '","giftGroup":"' . $giftinfo['sid'] . '","giftType":"' . $giftinfo['giftType'] . '","toUserNo":"' . $emceeinfo['curroomnum'] . '","isGift":"0","giftLocation":"[]","giftIcon":"' . $giftinfo['giftIcon'] . '","giftSwf":"' . $giftinfo['giftSwf'] . '","toUserId":"' . $_REQUEST['toid'] . '","toUserName":"' . $emceeinfo['nickname'] . '","userNo":"' . $_SESSION['roomnum'] . '","giftCount":"' . $_REQUEST['count'] . '","userId":"' . $_SESSION['uid'] . '","giftName":"' . $giftinfo['giftname'] . '","userName":"' . $_SESSION['nickname'] . '","giftId":"' . $giftinfo['id'] . '"}';
var zjcoin = obj_box["zjcoin"];//或者var zjcoin = obj_box.zjcoin;都无法获得值,提示未定义
这个php代码是ajax里后台向页面返回值的,在前台取json的值,看看js 的ajax是怎么取json的值就OK
这个php代码是ajax里后台向页面返回值的,在前台取json的值,看看js 的ajax是怎么取json的值就OK
能给一段正常json取值的代码么?我好对比一下。
在这段代码中,唯一看到跟取值有关的就是一句 var obj_box=data["ct"]; 这个data从哪来的 "ct"又代表什么,完全没有头绪
查了一些json的资料,例如:
function showJSON() { var user = { "username":"andy", "age":20, "info": { "tel": "123456", "cellphone": "98765"}, "address": [ {"city":"beijing","postcode":"222333"}, {"city":"newyork","postcode":"555666"} ] } alert(user.username); alert(user.age); alert(user.info.cellphone); alert(user.address[0].city); alert(user.address[0].postcode); user.username = "Tom"; alert(user.username); }
上例代码中,至少还有一个var user={ ... } 来存储json的代码,但是直接{...}这样编写的话,又该如何取值?
查了一些json的资料,例如:
function showJSON() { var user = { "username":"andy", "age":20, "info": { "tel": "123456", "cellphone": "98765"}, "address": [ {"city":"beijing","postcode":"222333"}, {"city":"newyork","postcode":"555666"} ] } alert(user.username); alert(user.age); alert(user.info.cellphone); alert(user.address[0].city); alert(user.address[0].postcode); user.username = "Tom"; alert(user.username); }
上例代码中,至少还有一个var user={ ... } 来存储json的代码,但是直接{...}这样编写的话,又该如何取值?
遍历获取
user[0].username
5楼的朋友没明白我的问题,
我这样说吧
在 thinkphp3.1的框架下
tpl中的 show.html 页面中进行了一些动作的提交,
提交到了lib中的showAction.class.php的其中一个方法sendMsg()代码如下
public funciton sendMsg()
{
//处理代码....忽略...
echo '{"code":"0","msg":"message1"}'; //这一段就是返回给Html信息的代码了,直接echo{参数...}
exit;
}
取值的时候,是在Javascript中的
var obj_box=data["ct"];
按照原来的代码,
obj_box.code 或者 obj_box["code"]都能取到值,可是我自己手动新增一个参数的话,就无法取值了,查过在action中是有值的,那么就是传输中出的问题,不知道大家有没有用过这种编写方式?
你自己增加的参数是怎么写的?
你自己增加的参数是怎么写的?
原先的action中的代码是
public funciton sendMsg()
{
//处理代码....忽略...
echo '{"code":"0","giftPath":"' . $smallIcon . '"......}';
exit;
}
增加参数后代码是
public funciton sendMsg()
{
//处理代码....忽略...
echo '{"code":"0", “zjcoin”:"'.$zjcoin.'","giftPath":"' . $smallIcon . '"......}';//红色的部分是增加的参数
exit;
}
在JS中,其他的参数可以用obj_box[""]来获取,可我自己添加的这个参数就是取不到,数值是有的,添加到数据库都看到值了。
又有了新的发现,另外一个js文件中
var GiftCtrl={ sendGift:function(){ var url="/index.php/Show/show_sendGift/eid/"+_show.emceeId+"/toid/"+GiftCtrl.gift_to_id+"/count/"+giftNum+"/gid/"+GiftCtrl.gift_id+"/t/"+Math.random(); var tmpgid=GiftCtrl.gift_id; GiftCtrl.clearGiftCfg(); $.getJSON(url,function(json){ if(json){ if(json.code==0){ GiftCtrl.gift_to_id=_show.emceeId; $('#giftto').html(_show.emceeNick); Chat.getUserBalance();//用户秀币更新 Dom.$swfId("flashCallChat")._chatToSocket(0, 2, '{"_method_":"sendGift","giftPath":"' + json.giftPath + '","giftStyle":"' + json.giftStyle + '","giftGroup":"' + json.giftGroup + '","giftType":"' + json.giftType + '","toUserNo":"' + json.toUserNo + '","isGift":"' + json.isGift + '","giftLocation":"' + json.giftLocation + '","giftIcon":"' + json.giftIcon + '","giftSwf":"' + json.giftSwf + '","toUserId":"' + json.toUserId + '","toUserName":"' + json.toUserName + '","userNo":"' + json.userNo + '","giftCount":"' + json.giftCount + '","userId":"' + json.userId + '","giftName":"' + json.giftName + '","userName":"' + json.userName + '","giftId":"' + json.giftId + '","zjcoin":"' + json.zjcoin + '"}');//这一段参数的顺序跟action中的顺序一样,末尾也加了zjcoin,结果还是无法获取 }}
最后那一段参数的顺序跟action中的顺序一样,我在末尾也加了zjcoin,结果还是无法获取
此楼,30分即可.
此楼,30分即可.
请指教?
终于知道原因了,原来参数传递还要通过一个swf文件, 网上下了几个能编辑swf代码的工具,能打开修改,但是一保存就弹出错误,不知道哪位大神有这样的工具,能编辑swf里面代码的工具
被保护?

要保護應用免受與會話相關的XSS攻擊,需採取以下措施:1.設置HttpOnly和Secure標誌保護會話cookie。 2.對所有用戶輸入進行輸出編碼。 3.實施內容安全策略(CSP)限制腳本來源。通過這些策略,可以有效防護會話相關的XSS攻擊,確保用戶數據安全。

优化PHP会话性能的方法包括:1.延迟会话启动,2.使用数据库存储会话,3.压缩会话数据,4.管理会话生命周期,5.实现会话共享。这些策略能显著提升应用在高并发环境下的效率。

theSession.gc_maxlifetimesettinginphpdeterminesthelifespanofsessiondata,setInSeconds.1)它'sconfiguredinphp.iniorviaini_set().2)abalanceisesneededeededeedeedeededto toavoidperformance andunununununexpectedLogOgouts.3)

在PHP中,可以使用session_name()函數配置會話名稱。具體步驟如下:1.使用session_name()函數設置會話名稱,例如session_name("my_session")。 2.在設置會話名稱後,調用session_start()啟動會話。配置會話名稱可以避免多應用間的會話數據衝突,並增強安全性,但需注意會話名稱的唯一性、安全性、長度和設置時機。

會話ID應在登錄時、敏感操作前和每30分鐘定期重新生成。 1.登錄時重新生成會話ID可防會話固定攻擊。 2.敏感操作前重新生成提高安全性。 3.定期重新生成降低長期利用風險,但需權衡用戶體驗。

在PHP中設置會話cookie參數可以通過session_set_cookie_params()函數實現。 1)使用該函數設置參數,如過期時間、路徑、域名、安全標誌等;2)調用session_start()使參數生效;3)根據需求動態調整參數,如用戶登錄狀態;4)注意設置secure和httponly標誌以提升安全性。

在PHP中使用會話的主要目的是維護用戶在不同頁面之間的狀態。 1)會話通過session_start()函數啟動,創建唯一會話ID並存儲在用戶cookie中。 2)會話數據保存在服務器上,允許在不同請求間傳遞數據,如登錄狀態和購物車內容。

如何在子域名間共享會話?通過設置通用域名的會話cookie實現。 1.在服務器端設置會話cookie的域為.example.com。 2.選擇合適的會話存儲方式,如內存、數據庫或分佈式緩存。 3.通過cookie傳遞會話ID,服務器根據ID檢索和更新會話數據。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

Atom編輯器mac版下載
最受歡迎的的開源編輯器

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。