1樓
wangxinxin 發(fā)表于:2010-12-6 12:01:36
在論壇下了個wap插件,發(fā)現(xiàn)有問題自已解決不了:
1,我的密碼有特殊符號,正確輸入,登陸卻不成功。改成字母后可以正常登陸
2,雖然顯示登陸成功,但還是顯示為游客,無法寫日志。
經(jīng)過我試驗是session變量的問題
我沒學過php只能看懂一點代碼
if ($trial['username']==$mlouser && $trial['usergroup']==2) {
$_SESSION['mobileuser']=$mlouser;
$_SESSION['mobilepassword']=md5($mlopassword);
print_wap_error("登入成功。<br/><br/><a href=\"index.php\">[返回首頁]</a>");
} else print_wap_error("登入失敗。<br/><br/><a href=\"index.php\">[返回首頁]</a>");
}
登入成功并給$_SESSION['mobileuser']和$_SESSION['mobilepassword']賦值
我在print_wap_error前邊加了兩行:
echo $_SESSION['mobileuser'];
echo $_SESSION['mobilepassword'];
可以看到已經(jīng)正確賦值。
我又在session_start();后邊加入以兩行
echo $_SESSION['mobileuser'];
echo $_SESSION['mobilepassword'];
什么都不顯示,所以在其后的那個if 沒有給MOBILELOGIN賤上值1,導致顯示為游客,不能寫日志。
可是我不知道是為什么,請教高手指點。
還有為什么這個if,是這樣呢if ($_SESSION['mobileuser'] && $_SESSION['mobilepassword']) {
&&兩邊不是不達試啊
問題1的解決方法:
我的密碼里代有'號,md5運算時沒有將它做為字符用算,而是當作了php的保留字符,導致登陸失敗。
將兩處md5($mlopassword)改成md5(str_replace("\\'", "'",$mlopassword))后問題解決
如果你的密碼含有php的保留字符可以使用相應以下代碼替換 md5($mlopassword)
md5(str_replace("\\\"", "\"",$mlopassword))
md5(str_replace("\\'", "'",$mlopassword))
md5(str_replace("\\\\", "\\",$mlopassword))
這樣改后對于密碼沒有使用特殊字符的帳戶也沒有影響
問題2的解決方法:
原因是編碼問題,用UE打開index.php全選 復制,在記事本里粘貼,保存為index.php然后在linux用iconv命令轉(zhuǎn)換為utf-8,問題解決。
修改了一下insert 語句,使其能支持 2.10正式版
打我修改后的整個wap包傳上來