事情就發生在專案上線的第二天,我遠端呼叫了乙個介面,直接把前台查詢的引數拼接進行傳遞了,一般的也都是這樣吧 ,剛開始能查出資料,也沒在意,覺得調成功了,不用管了,第二天到了公司,產品那邊直接打**急催說那個資料有問題,我說我看看,除錯了幾遍,發現始終是那幾條資料,無論傳遞什麼引數,我突然想到了,引數進行urlencode轉換一下,資料可以正確顯示了,這個urlencode是必要的,看例子把:
這是沒有使用之前的,原來客戶輸入的查詢裡面帶有 while & prog我天,這不是坑人嗎?這樣肯定被php解析成引數了
可以看個例子:
明顯php看到了&就進行了引數解析,使用urlencode進行轉換之後 &變成十六進製制的%26 空格會變成+ 如果使用rawurlencode 空格變成%20:
就是這樣的坑,大家注意了。
引數傳遞方式
1 pass by value 單向傳遞 形參改變 實參不變 2 pass by address pointer 雙向傳遞 形參改變 實參改變 3 pass by reference 雙向傳遞 形參改變 實參改變 c pass by value 單向傳遞 形參改變 實參不變 void swap1 i...
Java引數傳遞方式
如果方法a呼叫方法b,如果方法 的引數是基本資料型別或者string型別,那麼方法 向方法b傳遞引數的值,如果方法 的引數是物件或者陣列,那麼,方法 向方法b傳遞引數的引用。例子如下 public class variabletest changeparameter param1,param2,pa...
python引數傳遞方式
如果函式接收到的引數是乙個可變物件 類型別,列表,字典 就會改變物件的原始值。如果函式接收到的引數是乙個不可變物件,即基本資料型別 數值型,字串,布林 就不會改變物件的原始值。無論什麼引數,都是傳引用,只不過基本資料型別的賦值其實是重新構造並指向了乙個新的物件,記憶體位址不一樣,可以用id 來查詢記...