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