標籤:合并 php merger ber visit com ted pos string
用萬能架構寫了一個DZ帶驗證碼POST登入一直錯誤 http://www.sufeinet.com/thread-17795-1-1.html 調試半天發現是架構GetMergeCookie的問題,,,真坑。。。
OldCookie
F9ZL_2132_saltkey=oHLnJLwj;
F9ZL_2132_lastvisit=1477040054;F9ZL_2132_sid=ZsTR8p;F9ZL_2132_lastact=1477043654%09member.php%09logging;F9ZL_2132_pc_size_c=0;F9ZL_2132_stats_qc_reg=deleted
NewCookie
F9ZL_2132_lastact=1477043656%09misc.php%09seccode
HttpHelper.GetMergeCookie 合并更新後 導致有兩個 F9ZL_2132_lastact=
F9ZL_2132_saltkey=oHLnJLwj ;F9ZL_2132_lastvisit=1477040054 ;F9ZL_2132_sid=ZsTR8p ;F9ZL_2132_lastact=1477043654%09member.php%09logging ;F9ZL_2132_pc_size_c=0 ;F9ZL_2132_stats_qc_reg=deleted ;F9ZL_2132_lastact=1477043656%09misc.php%09seccode
正確更新:
F9ZL_2132_saltkey=oHLnJLwj;F9ZL_2132_lastvisit=1477040054;F9ZL_2132_sid=ZsTR8p;F9ZL_2132_lastact=1477043656%09misc.php%09seccode;F9ZL_2132_pc_size_c=0;F9ZL_2132_stats_qc_reg=deleted
找了個方法解決了這個,帳號也登入成功了。勿噴,,不知道架構那個是不是BUG。。。
public static string MergerCookies(string OldCookie, string NewCookie) { if (!string.IsNullOrEmpty(OldCookie) && !string.IsNullOrEmpty(NewCookie)) { if (OldCookie == NewCookie) return OldCookie; else { List<string> Old = new List<String>(OldCookie.Split(‘;‘)); List<string> New = new List<String>(NewCookie.Split(‘;‘)); foreach (string n in New) { foreach (string o in Old) { if (o == n || o.Split(‘=‘)[0] == n.Split(‘=‘)[0]) { Old.Remove(o); break; } } } List<string> list = new List<string>(Old); list.AddRange(New); return string.Join(";", list.ToArray()); } } else if (!string.IsNullOrEmpty(OldCookie)) return OldCookie; else if (!string.IsNullOrEmpty(NewCookie)) return NewCookie; else return ""; }
HttpHelper萬能架構GetMergeCookie的問題