亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于使用預處理防止sql注入的問題。

關于使用預處理防止sql注入的問題。

紫宸丶 2015-12-11 14:41:56
header("Content-type:text/html charset=utf8");$mysqli=new mysqli('localhost','root','***','test');if($mysqli->connect_errno){ ? ?die("Connect Error:".$mysqli->connect_error);}$mysqli->set_charset('utf8');$username=$_POST['username'];$password=md5($_POST['password']);$sql="SELECT * FROM t1 WHERE username=? AND password=?";$mysqli_stmt=$mysqli->prepare($sql);$mysqli_stmt->bind_param('ss',$username,$password);if($mysqli_stmt->execute()) { ? ?$mysqli_stmt->store_result(); ? ?if($mysqli_stmt->num_rows>0){ ? ? ? ?echo "登陸成功"; ? ?}else{ ? ? ? ?echo "登陸失敗"; ? ?}}如以上代碼,為什么給password加上md5數據庫就獲取密碼失敗并且登錄失敗,而把md5去掉并且不使用md5加密passwrod就可以登陸成功,這是為什么?
查看完整描述

2 回答

已采納
?
lynhao

TA貢獻81條經驗 獲得超57個贊

因為你加密后你的密碼已經變成加密后的樣子,要加密的話你就在數據庫創表時的字段也給它用md5加密,保持一致

查看完整回答
反對 回復 2015-12-11
  • 紫宸丶
    紫宸丶
    不行誒,我之前插入該密碼的時候已經加密過了,是不是因為md5的加密不可逆的關系?
  • 紫宸丶
    紫宸丶
    已經解決了,不過還是謝謝你的回答!
  • lynhao
    lynhao
    ^_^
?
慕冬雪

TA貢獻16條經驗 獲得超3個贊

樓上說的對,因為你數據庫中的值并沒有加密,但是你程序中向數據庫請求時加密了密碼,這樣當然找不到,建議注冊的時候就向數據庫中存入加密后的密碼

查看完整回答
反對 回復 2015-12-11
  • 2 回答
  • 0 關注
  • 2007 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號