• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    一個用于網站用戶管理的函數庫

    發布: 2007-7-14 19:53 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 8次 | 進入軟件測試論壇討論

    領測軟件測試網 <?php

    $hidden_hash_var='your_password_here';

    $LOGGED_IN=false;
    //clear it out in case someone sets it in the URL or something
    unset($LOGGED_IN);

    /*

    create table user (
    user_id int not null auto_increment primary key,
    user_name text,
    real_name text,
    email text,
    password text,
    remote_addr text,
    confirm_hash text,
    is_confirmed int not null default 0
    );

    */

    function user_isloggedin() {
    global $user_name,$id_hash,$hidden_hash_var,$LOGGED_IN;
    //have we already run the hash checks?
    //If so, return the pre-set var
    if (isset($LOGGED_IN)) {
    return $LOGGED_IN;
    }
    if ($user_name && $id_hash) {
    $hash=md5($user_name.$hidden_hash_var);
    if ($hash == $id_hash) {
    $LOGGED_IN=true;
    return true;
    } else {
    $LOGGED_IN=false;
    return false;
    }
    } else {
    $LOGGED_IN=false;
    return false;
    }
    }

    function user_login($user_name,$password) {
    global $feedback;
    if (!$user_name || !$password) {
    $feedback .= ' ERROR - Missing user name or password ';
    return false;
    } else {
    $user_name=strtolower($user_name);
    $password=strtolower($password);
    $sql="SELECT * FROM user WHERE user_name='$user_name' AND password='". md5($password) ."'";
    $result=db_query($sql);
    if (!$result || db_numrows($result) < 1){
    $feedback .= ' ERROR - User not found or password incorrect ';
    return false;
    } else {
    if (db_result($result,0,'is_confirmed') == '1') {
    user_set_tokens($user_name);
    $feedback .= ' SUCCESS - You Are Now Logged In ';
    return true;
    } else {
    $feedback .= ' ERROR - You haven\'t Confirmed Your Account Yet ';
    return false;
    }
    }
    }
    }

    function user_logout() {
    setcookie('user_name','',(time()+2592000),'/','',0);
    setcookie('id_hash','',(time()+2592000),'/','',0);
    }

    function user_set_tokens($user_name_in) {
    global $hidden_hash_var,$user_name,$id_hash;
    if (!$user_name_in) {
    $feedback .= ' ERROR - User Name Missing When Setting Tokens ';
    return false;
    }
    $user_name=strtolower($user_name_in);
    $id_hash= md5($user_name.$hidden_hash_var);

    setcookie('user_name',$user_name,(time()+2592000),'/','',0);
    setcookie('id_hash',$id_hash,(time()+2592000),'/','',0);
    }

    function user_confirm($hash,$email) {
    /*
    Call this function on the user confirmation page,
    which they arrive at when the click the link in the
    account confirmation email
    */

    global $feedback,$hidden_hash_var;

    //verify that they didn't tamper with the email address
    $new_hash=md5($email.$hidden_hash_var);
    if ($new_hash && ($new_hash==$hash)) {
    //find this record in the db
    $sql="SELECT * FROM user WHERE confirm_hash='$hash'";
    $result=db_query($sql);
    if (!$result || db_numrows($result) < 1) {
    $feedback .= ' ERROR - Hash Not Found ';
    return false;
    } else {
    //confirm the email and set account to active
    $feedback .= ' User Account Updated - You Are Now Logged In ';
    user_set_tokens(db_result($result,0,'user_name'));
    $sql="UPDATE user SET email='$email',is_confirmed='1' WHERE confirm_hash='$hash'";
    $result=db_query($sql);
    return true;
    }
    } else {
    $feedback .= ' HASH INVALID - UPDATE FAILED ';
    return false;
    }
    }

    function user_change_password ($new_password1,$new_password2,$change_user_name,$old_password) {
    global $feedback;
    //new passwords present and match?
    if ($new_password1 && ($new_password1==$new_password2)) {
    //is this password long enough?
    if (account_pwvalid($new_password1)) {
    //all vars are present?
    if ($change_user_name && $old_password) {
    //lower case everything
    $change_user_name=strtolower($change_user_name);
    $old_password=strtolower($old_password);
    $new_password1=strtolower($new_password1);
    $sql="SELECT * FROM user WHERE user_name='$change_user_name' AND password='". md5($old_password) ."'";
    $result=db_query($sql);
    if (!$result || db_numrows($result) < 1) {
    $feedback .= ' User not found or bad password '.db_error();
    return false;
    } else {
    $sql="UPDATE user SET password='". md5($new_password1). "' ".
    "WHERE user_name='$change_user_name' AND password='". md5($old_password). "'";
    $result=db_query($sql);
    if (!$result || db_affected_rows($result) < 1) {
    $feedback .= ' NOTHING Changed '.db_error();
    return false;
    } else {
    $feedback .= ' Password Changed ';
    return true;
    }
    }
    } else {
    $feedback .= ' Must Provide User Name And Old Password ';
    return false;
    }
    } else {
    $feedback .= ' New Passwords Doesn\'t Meet Criteria ';
    return false;
    }
    } else {
    return false;
    $feedback .= ' New Passwords Must Match ';
    }
    }

    function user_lost_password ($email,$user_name) {
    global $feedback,$hidden_hash_var;
    if ($email && $user_name) {
    $user_name=strtolower($user_name);
    $sql="SELECT * FROM user WHERE user_name='$user_name' AND email='$email'";
    $result=db_query($sql);
    if (!$result || db_numrows($result) < 1) {
    //no matching user found
    $feedback .= ' ERROR - Incorrect User Name Or Email Address ';
    return false;
    } else {
    //create a secure, new password
    $new_pass=strtolower(substr(md5(time().$user_name.$hidden_hash_var),1,14));

    //update the database to include the new password
    $sql="UPDATE user SET password='". md5($new_pass) ."' WHERE user_name='$user_name'";
    $result=db_query($sql);

    //send a simple email with the new password
    mail ($email,'Password Reset','Your Password '.
    'has been reset to: '.$new_pass,'From: noreply@company.com');
    $feedback .= ' Your new password has been emailed to you. ';
    return true;
    }
    } else {
    $feedback .= ' ERROR - User Name and Email Address Are Required ';
    return false;
    }
    }

    function user_change_email ($password1,$new_email,$user_name) {
    global $feedback,$hidden_hash_var;
    if (validate_email($new_email)) {
    $hash=md5($new_email.$hidden_hash_var);
    //change the confirm hash in the db but not the email -
    //send out a new confirm email with a new hash
    $user_name=strtolower($user_name);
    $password1=strtolower($password1);
    $sql="UPDATE user SET confirm_hash='$hash' WHERE user_name='$user_name' AND password='". md5($password1) ."'";
    $result=db_query($sql);
    if (!$result || db_affected_rows($result) < 1) {
    $feedback .= ' ERROR - Incorrect User Name Or Password ';
    return false;
    } else {
    $feedback .= ' Confirmation Sent ';
    user_send_confirm_email($new_email,$hash);
    return true;
    }
    } else {
    $feedback .= ' New Email Address Appears Invalid ';
    return false;
    }
    }

    function user_send_confirm_email($email,$hash) {
    /*
    Used in the initial registration function
    as well as the change email address function
    */

    $message = "Thank You For Registering at PHPBuilder.com".
    "\nSimply follow this link to confirm your registration: ".
    "\n\nhttp://www.phpbuilder.com/account/confirm.php?hash=$hash&email=". urlencode($email).
    "\n\nOnce you confirm, you can use the services on PHPBuilder.";
    mail ($email,'PHPBuilder Registration Confirmation',$message,'From: noreply@phpbuilder.com');
    }

    function user_register($user_name,$password1,$password2,$email,$real_name) {
    global $feedback,$hidden_hash_var;
    //all vars present and passwords match?
    if ($user_name && $password1 && $password1==$password2 && $email && validate_email($email)) {
    //password and name are valid?
    if (account_namevalid($user_name) && account_pwvalid($password1)) {
    $user_name=strtolower($user_name);
    $password1=strtolower($password1);

    //does the name exist in the database?
    $sql="SELECT * FROM user WHERE user_name='$user_name'";
    $result=db_query($sql);
    if ($result && db_numrows($result) > 0) {
    $feedback .= ' ERROR - USER NAME EXISTS ';
    return false;
    } else {
    //create a new hash to insert into the db and the confirmation email
    $hash=md5($email.$hidden_hash_var);
    $sql="INSERT INTO user (user_name,real_name,password,email,remote_addr,confirm_hash,is_confirmed) ".
    "VALUES ('$user_name','$real_name','". md5($password1) ."','$email','$GLOBALS[REMOTE_ADDR]','$hash','0')";
    $result=db_query($sql);
    if (!$result) {
    $feedback .= ' ERROR - '.db_error();
    return false;
    } else {
    //send the confirm email
    user_send_confirm_email($email,$hash);
    $feedback .= ' Successfully Registered. You Should Have a Confirmation Email Waiting ';
    return true;
    }
    }
    } else {
    $feedback .= ' Account Name or Password Invalid ';
    return false;
    }
    } else {
    $feedback .= ' ERROR - Must Fill In User Name, Matching Passwords, And Provide Valid Email Address ';
    return false;
    }
    }

    function user_getid() {
    global $G_USER_RESULT;
    //see if we have already fetched this user from the db, if not, fetch it
    if (!$G_USER_RESULT) {
    $G_USER_RESULT=db_query("SELECT * FROM user WHERE user_name='" . user_getname() . "'");
    }
    if ($G_USER_RESULT && db_numrows($G_USER_RESULT) > 0) {
    return db_result($G_USER_RESULT,0,'user_id');
    } else {
    return false;
    }
    }

    function user_getrealname() {
    global $G_USER_RESULT;
    //see if we have already fetched this user from the db, if not, fetch it
    if (!$G_USER_RESULT) {
    $G_USER_RESULT=db_query("SELECT * FROM user WHERE user_name='" . user_getname() . "'");
    }
    if ($G_USER_RESULT && db_numrows($G_USER_RESULT) > 0) {
    return db_result($G_USER_RESULT,0,'real_name');
    } else {
    return false;
    }
    }

    function user_getemail() {
    global $G_USER_RESULT;
    //see if we have already fetched this user from the db, if not, fetch it
    if (!$G_USER_RESULT) {
    $G_USER_RESULT=db_query("SELECT * FROM user WHERE user_name='" . user_getname() . "'");
    }
    if ($G_USER_RESULT && db_numrows($G_USER_RESULT) > 0) {
    return db_result($G_USER_RESULT,0,'email');
    } else {
    return false;
    }
    }

    function user_getname() {
    if (user_isloggedin()) {
    return $GLOBALS['user_name'];
    } else {
    //look up the user some day when we need it
    return ' ERROR - Not Logged In ';
    }
    }

    function account_pwvalid($pw) {
    global $feedback;
    if (strlen($pw) < 6) {
    $feedback .= " Password must be at least 6 characters. ";
    return false;
    }
    return true;
    }

    function account_namevalid($name) {
    global $feedback;
    // no spaces
    if (strrpos($name,' ') > 0) {
    $feedback .= " There cannot be any spaces in the login name. ";
    return false;
    }

    // must have at least one character
    if (strspn($name,"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ") == 0) {
    $feedback .= "There must be at least one character.";
    return false;
    }

    // must contain all legal characters
    if (strspn($name,"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_")
    != strlen($name)) {
    $feedback .= " Illegal character in name. ";
    return false;
    }

    // min and max length
    if (strlen($name) < 5) {
    $feedback .= " Name is too short. It must be at least 5 characters. ";
    return false;
    }
    if (strlen($name) > 15) {
    $feedback .= "Name is too long. It must be less than 15 characters.";
    return false;
    }

    // illegal names
    if (eregi("^((root)|(bin)|(daemon)|(adm)|(lp)|(sync)|(shutdown)|(halt)|(mail)|(news)"
    . "|(uucp)|(operator)|(games)|(mysql)|(httpd)|(nobody)|(dummy)"
    . "|(www)|(cvs)|(shell)|(ftp)|(irc)|(debian)|(ns)|(download))$",$name)) {
    $feedback .= "Name is reserved.";
    return 0;
    }
    if (eregi("^(anoncvs_)",$name)) {
    $feedback .= "Name is reserved for CVS.";
    return false;
    }

    return true;
    }

    function validate_email ($address) {
    return (ereg('^-!}

    ?>

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>