為什麼POST過來的sha1加密字串相等的判斷不對呢。

來源:互聯網
上載者:User
比如我表單post過來了sha1('1')這個加密後的字串356a192b7913b04c54574d18c28d46e6395428ab。
然後我if($_POST['s']=='356a192b7913b04c54574d18c28d46e6395428ab')
為什麼判斷為false?
echo $_POST['s']也是356a192b7913b04c54574d18c28d46e6395428ab啊。。


回複討論(解決方案)

仔細檢查一下 $_POST['s'] 是不是那個值

仔細檢查一下 $_POST['s'] 是不是那個值 我對過的沒錯阿。。。我在BAE試的。。一直不明白為什麼。。。

你不如用 var_dump() 看看是否包含了空格換行什麼的

你不如用 var_dump() 看看是否包含了空格換行什麼的
沒有的。。而且我也用trim()過濾了的說。。你能不能幫我看看呢。http://hole.icnu.me/t1.php

我複製他的var_dump()輸出的引號+值就可以是true。
自己手打引號就是false。。。這是為什麼啊??

貼出你的代碼,可能不是你說的原因

貼出你的代碼,可能不是你說的原因
t.php的代碼。。

';var_dump($_POST['set']);if($_POST['set']=="f45918a75f152c9ce0b58043d5e5d7f22358665c")echo 'qw';?>

就是if裡面那個雙引號手打就false。。不知為什麼。。。
http://hole.icnu.me/t1.php 這裡post到t.php

貼出你的代碼,可能不是你說的原因
應該是編碼問題了。轉換編碼可以了。。


貼出你的代碼,可能不是你說的原因
應該是編碼問題了。轉換編碼可以了。。

錯了錯了。。。我也不知道為什麼了。。。

我要重新描述一下了。。。
sha1加密後的字元應該是40個的
post過來後的怎麼就變成43個字元了。。。?
在後面的頁面重新加密的也是40個字元的。。
但是如果直接把指標指定一個那個加密後的字串也是43個字元。。。
為什嗎?

var_dump()post過來的資料
string(43) "?356a192b7913b04c54574d18c28d46e6395428ab"
var_dump(sha1('1'))
string(40) "356a192b7913b04c54574d18c28d46e6395428ab"
var_dump('356a192b7913b04c54574d18c28d46e6395428ab')
string(43) "?356a192b7913b04c54574d18c28d46e6395428ab"

你 echo pack('H*', $_POST['set']); 看一下結果

你 echo pack('H*', $_POST['set']); 看一下結果

不好意思,我弄錯了!
這樣:
print_r(unpack('H*', $_POST['set']));

不好意思,我弄錯了!
這樣:
print_r(unpack('H*', $_POST['set']));

Array ( [1] => efbbbf33353661313932623739313362303463353435373464313863323864343665363339353432386162 )

Array ( [1] => efbbbf33353661313932623739313362303463353435373464313863323864343665363339353432386162 )

這個 efbbbf 是 utf-8 的 BOM 頭
你去掉相關檔案的 BOM 頭就可以了

Array ( [1] => efbbbf33353661313932623739313362303463353435373464313863323864343665363339353432386162 )

這個 efbbbf 是 utf-8 的 BOM 頭
你去掉相關檔案的 BOM 頭就可以了

謝了~~

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.