復(fù)制代碼 代碼如下:
/**
 * 用戶請求重置密碼的接收器
 */
function requestResetPassword() {
    //檢查用戶是否存在
    if( !checkUserExists( $_GET['userid'] ) ) {
        exit('抱歉,用戶不存在,請確認用戶帳號。');
    }
    resetPassword( $_GET['userid'] );
    //最后向用戶發(fā)送一封郵件
    sendEmail( $_GET['userid'], '重置密碼成功', '新的密碼是xxxx' );
    exit('新密碼已經(jīng)發(fā)送到你的郵箱。');
}
/**
 * 幫助用戶重置密碼
 */
function resetPassword( $userid ) {
    //檢查用戶是否存在
    if( !checkUserExists( $userid ) ) {
        return false;
    }
    //進行重置用戶密碼的操作
    //略...
    return true;
}
/**
 * 向用戶發(fā)送一封郵件
 */
function sendEmail( $userid, $title, $content ) {
    //檢查用戶是否存在
    if( !checkUserExists( $userid ) ) {
        return false;
    }
    //發(fā)送郵件操作
    //略...
    return true;
}
/**
 * 檢查某個用戶是否存在
 */
function checkUserExists( $userid ) {
    $user = getUserInfo( $userid );
    return !empty( $user );
}
/**
 * 獲取某個用戶的數(shù)據(jù)
 */
function getUserInfo( $userid ) {
    //假設(shè)我有一個query的函數(shù),它用來查詢數(shù)據(jù)庫并返回數(shù)據(jù)
    $user = query( "SELECT * FROM `user` WHERE `uid`=" . intval( $userid ) );
    return is_array( $user ) ? $user : array() ;
}
復(fù)制代碼 代碼如下:
/**
 * 檢查某個用戶是否存在
 */
function checkUserExists( $userid ) {
    //增加一個緩存,用以記錄檢查用戶的結(jié)果
    static $cache = array();
    //檢查當前用戶是否已經(jīng)檢查過一次
    if( isset( $cache[ $userid ] ) ) {
        return $cache[ $userid ];
    }
    $user = getUserInfo( $userid );
    //把結(jié)果記錄到緩存中
    $cache[ $userid ] = !empty( $user );
    return $cache[ $userid ];
}
新聞熱點
疑難解答