我正在處理重置密碼功能,該功能與哈希匹配以允許用戶重置。唯一的麻煩是創建的散列不能通過URL傳遞而不會破壞頁面。例如,我的哈希值是這樣的:如何在CakePHP 3中通過URL發送加密哈希?
http://localhost/users/changeResetPassword/e0b4ab1d2cdc5742c7b5f72ef6c2935dadfe458dc275b7419d9f1ac66461aa20%0F5%3A%C6%5C%26%2A%E4%D5%ACA%94%ADV%BF%EB%CAz%97O%1F%7D%F0h~%E3-.%FF%B4z%5E%1AQ%B8%8Ca%BC500%2A%EC%7B%FA%AF8%E3%2A%7F%BA%A4y%03%AE%29%94%09%26%9E%29e%E5%DEn%1At%C1%EC%F7%D4x%EAvlA%BE%5B%0D%CF
所有這些%似乎打破了網頁,因爲我得到這個錯誤:
Object not found!
The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again.
如果我帶走一切,直至最後%和嘗試它再次,頁面加載正常。這只是一些在URL中的字符似乎錯過了一切:
http://localhost/users/changeResetPassword/e0b4ab1d2cdc5742c7b5f72ef6c2935dadfe458dc275b7419d9f1ac66461aa20
這加載好,所以我知道這只是一個URL的問題。有任何想法嗎?
這正是答案。你搖滾。 :) – cg22 2014-08-27 17:51:14
雖然使用base64是一個合適的解決方案,但您必須注意,base64編碼可能會產生URL中存在問題的字符,即'+','='和'/',您必須確保它們正在被URL編碼或替換爲替代品,請參閱** http://stackoverflow.com/questions/1374753/passing-base64-encoded-strings-in-url** @ cg22 – ndm 2014-08-28 14:44:41